温馨提示×

Kubernetes部署在Debian上需要哪些依赖

小樊
35
2025-12-21 01:28:42
栏目: 智能运维

Kubernetes 在 Debian 上的依赖清单与准备

一 系统级依赖与内核模块

  • 容器运行时依赖:安装并启用 containerd(或 Docker,其内置 containerd)。containerd 提供符合 CRI 的容器运行能力,是 kubelet 与容器交互的底层依赖。建议通过官方仓库安装并配置 systemd cgroup 驱动。对于使用 Docker 的场景,仍需确保 containerd 正确安装与启用。
  • 基础系统与网络工具:安装 apt-transport-https、ca-certificates、curl、gnupg2/software-properties-common,用于安全获取软件包与添加仓库。
  • 内核模块与网络栈:加载并持久化 overlay、br_netfilter;开启桥接流量进入 iptables 与 IPv4 转发,保证 Pod 网络与 Service 转发正常。
  • 可选但常用:安装 ipvsadm、ipset、sysstat、conntrack、libseccomp2,便于后续使用 kube-proxy 的 IPVS 模式、连接跟踪与资源监控。

二 软件包依赖与版本建议

  • 容器运行时:
    • containerd(推荐):提供 CRI 能力,kubelet 通过 CRI 与之通信。
    • Docker CE(可选):若使用 Docker,仍需确保 containerd 可用并配置为 systemd cgroup 驱动。
  • Kubernetes 组件:安装 kubelet、kubeadm、kubectl。建议固定版本以避免升级漂移,例如 v1.26.0 等稳定版本。
  • 仓库与密钥:添加 Kubernetes APT 仓库GPG 公钥 与源列表,确保能获取签名包;Debian 11/12/13 均可按此方式配置。

三 系统配置与前置要求

  • 关闭 Swap:执行 swapoff -a 并在 /etc/fstab 中注释 swap 条目,kubelet 要求无 swap 才能正常调度。
  • 内核参数与模块:
    • 模块加载:创建 /etc/modules-load.d/containerd.conf,写入 overlay、br_netfilter 并加载。
    • sysctl 配置:创建 /etc/sysctl.d/99-k8s-cri.conf,设置 net.bridge.bridge-nf-call-iptables=1、net.bridge.bridge-nf-call-ip6tables=1、net.ipv4.ip_forward=1,执行 sysctl --system 生效。
  • 主机与网络:各节点间网络互通,建议设置 主机名与 /etc/hosts 解析;如启用防火墙,放行 6443、10250 等必要端口。

四 快速安装依赖命令示例 Debian 12/13

  • 安装基础工具与密钥:
    • sudo apt-get update && sudo apt-get install -y apt-transport-https ca-certificates curl gnupg2 software-properties-common
    • curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.33/deb/Release.key | gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg
    • echo “deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.33/deb/ /” | tee /etc/apt/sources.list.d/kubernetes.list
  • 安装容器运行时(containerd 示例):
    • sudo apt-get update && sudo apt-get install -y containerd
    • sudo mkdir -p /etc/containerd && containerd config default | tee /etc/containerd/config.toml
    • 在配置中设置 SystemdCgroup = true,并修改 sandbox_image = “registry.k8s.io/pause:3.10”(与所用 K8s 版本匹配)
    • sudo systemctl enable --now containerd
  • 安装 Kubernetes 组件:
    • sudo apt-get update && sudo apt-get install -y kubelet kubeadm kubectl
    • sudo apt-mark hold kubelet kubeadm kubectl(避免被意外升级)
  • 关闭 Swap 与加载内核模块:
    • sudo swapoff -a && sudo sed -i ‘/ swap / s/^/#/’ /etc/fstab
    • echo -e “overlay\nbr_netfilter” | sudo tee /etc/modules-load.d/containerd.conf && sudo modprobe overlay br_netfilter
    • cat <<EOF | sudo tee /etc/sysctl.d/99-k8s-cri.conf
      net.bridge.bridge-nf-call-iptables=1
      net.bridge.bridge-nf-call-ip6tables=1
      net.ipv4.ip_forward=1
      EOF
    • sudo sysctl --system

0