Debian 上 Kubernetes(k8s)安装失败的原因非常多,通常在环境准备、系统配置、网络/源、组件兼容性这几个方面踩坑。下面按最常见原因 → 排查方法给你梳理一下。
Kubernetes 官方要求:
✅ 检查:
cat /etc/os-release
uname -a
free -h
kubelet 默认不允许 swap 开启
swapoff -a
sed -i '/swap/d' /etc/fstab
检查:
free -h
Debian 默认可能开了 nftables 或 ufw
✅ 推荐:
systemctl stop ufw
systemctl disable ufw
或放行端口:
timedatectl
✅ 安装:
apt install -y chrony
systemctl enable --now chrony
K8s 现在 不再支持 docker 直接驱动
✅ 正确方式:
检查:
systemctl status containerd
安装 containerd:
apt install -y containerd
containerd config default > /etc/containerd/config.toml
systemctl restart containerd
⚠️ 注意:
SystemdCgroup = true很多人卡在:
NO_PUBKEY
404 Not Found
✅ 正确 k8s 源:
curl -fsSL https://pkgs.k8s.io/core/stable/v1.29/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.29/deb/ /" > /etc/apt/sources.list.d/kubernetes.list
常见错误:
preflight errorsport 6443 is in usecgroup driver mismatch✅ 常用排错:
kubeadm init --v=5
journalctl -xeu kubelet
装完 master 后 必须装 CNI
推荐:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
或 Flannel:
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
ImagePullBackOff
✅ 解决:
docker pull / ctr pull如果你愿意,可以把具体报错贴出来,例如:
kubeadm init 输出journalctl -u kubelet我可以直接告诉你 是哪一条配置错了。
✅ 给你一份 Debian 12 + containerd + kubeadm 一步到位脚本
✅ 或帮你判断 该用 kubeadm / k3s / microk8s
你现在是:
告诉我,我直接按你的环境给你方案。