Debian与Kubernetes(K8s)的安装兼容性整体良好,但需满足特定版本要求及系统配置条件,以下是详细说明:
sudo swapoff -a;永久禁用需编辑/etc/fstab文件,注释掉swap对应的行。Swap会导致kubelet无法正常管理Pod资源,引发集群不稳定。sudo apt install containerd),并通过containerd config default生成默认配置文件,修改/etc/containerd/config.toml中的SystemdCgroup = true以符合Kubernetes要求。sudo modprobe overlay # 加载overlay模块(支持容器网络)
sudo modprobe br_netfilter # 加载bridge模块(支持Pod间通信)
echo "net.bridge.bridge-nf-call-iptables = 1" | sudo tee /etc/sysctl.d/99-kubernetes.conf
echo "net.ipv4.ip_forward = 1" | sudo tee -a /etc/sysctl.d/99-kubernetes.conf
sudo sysctl --system # 生效配置
这些参数确保Kubernetes的网络插件(如Calico、Flannel)能正常工作。curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee /etc/apt/sources.list.d/kubernetes.list
sudo apt update
注意:kubernetes-xenial是Kubernetes针对Debian/Ubuntu的通用仓库代号,无需修改。kubeadm config images set docker命令将Kubernetes镜像切换为Docker兼容版本,并确保Docker版本符合Kubernetes要求(如Kubernetes 1.27需Docker 24.0.2及以上)。但建议优先迁移到containerd,避免未来兼容性问题。kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
安装后需检查Pod状态:kubectl get pods -n calico-system,确保所有Pod处于Running状态。apt-mark hold命令锁定版本:sudo apt-mark hold kubelet kubeadm kubectl
升级时需手动检查兼容性后再解除锁定。安装完成后,需通过以下命令验证集群状态:
kubectl get nodes # 查看节点状态(应为Ready)
kubectl cluster-info # 查看集群信息(API服务器地址)
若节点状态为Ready,则说明Debian与Kubernetes安装兼容,集群可正常使用。