Debian 上部署 Kubernetes 的必备条件
一 硬件与系统基线
- 操作系统建议使用 Debian 12(Bookworm)或更高版本,内核不低于 3.10。
- 资源基线(不同场景建议):
- 单节点开发:2 核 CPU / 4GB 内存 / 20GB 存储
- 多节点实验:4 核 CPU / 8GB 内存 / 40GB 存储
- 生产环境:8 核+ CPU / 16GB+ 内存 / 100GB+ 存储
- 具备 sudo 权限 的管理员账户与 稳定网络(节点间互通)。
二 容器运行时与系统内核网络
- 容器运行时(二选一,推荐 containerd):
- containerd:安装并启用服务,完成基础配置。
- Docker(可选):安装 docker-ce / docker-ce-cli / containerd.io。
- 内核模块与 sysctl(桥接与转发):
- 加载模块:overlay、br_netfilter
- 启用转发与桥接流量入 iptables:
- net.bridge.bridge-nf-call-iptables = 1
- net.bridge.bridge-nf-call-ip6tables = 1
- net.ipv4.ip_forward = 1
- 说明:Debian 默认无 SELinux,无需额外关闭步骤。
三 网络连通与防火墙端口
- 节点互通:所有节点在同一网络,建议配置 静态 IP 与 主机名解析(/etc/hosts 或 DNS)。
- 常见端口(示例以 UFW 放行,云环境请同步放通安全组):
- 控制面与节点通信:6443/TCP(API Server)、2379-2380/TCP(etcd)、10250/TCP(kubelet)、10251/TCP(kube-scheduler)、10252/TCP(kube-controller-manager)、10255/TCP(kubelet 只读)
- 节点间/管理:22/TCP(SSH)
- 提示:如使用 Flannel/VXLAN,需确保 8472/UDP 在节点间可达。
四 软件源与组件版本匹配
- 添加 Kubernetes APT 仓库(推荐新版 keyring 方式,示例为 v1.29,可按需替换版本):
- 安装签名密钥:
- sudo mkdir -p -m 755 /etc/apt/keyrings
- curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.29/deb/Release.key | sudo 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.29/deb/ /’ | sudo tee /etc/apt/sources.list.d/kubernetes.list
- 安装并锁定版本:kubelet、kubeadm、kubectl,保持三者版本一致或遵循兼容规则(如 kubelet 版本不高于 API Server,允许相差一个次要版本)。
五 初始化前的关键准备
- 关闭 Swap:
- 临时:sudo swapoff -a
- 永久:注释 /etc/fstab 中的 swap 行
- 主机名与解析:
- hostnamectl 设置唯一主机名
- /etc/hosts 添加 “IP 主机名” 映射
- 时间同步:启用 NTP/chrony,保证节点时间一致
- 镜像与拉取:提前准备或配置镜像仓库,确保 kubeadm 所需镜像可拉取(如国内可配置镜像加速)。