在 Debian 上部署 Kubernetes(kubeadm 方式最常见)失败,排查一般遵循**“从下往上”的思路:系统环境 → 容器运行时 → kubeadm 初始化 → 网络/组件。下面给你一套实用排查清单**。
常见失败场景:
kubeadm init 失败NotReadyPending / CrashLoopBackOff先确认你用的是:
kubeadm init
还是其他(如二进制、kubekey、Rancher 等)?下面以 kubeadm + Debian 为主。
cat /etc/debian_version
uname -a
✅ 推荐:Debian 11 / 12
❌ 老版本(如 Debian 9)容易踩坑
free -h
sudo swapoff -a
sudo sed -i '/swap/d' /etc/fstab
systemctl stop firewalld
# 或 iptables 放行 6443、10250 等
timedatectl
不一致会导致证书问题:
apt install -y chrony
systemctl enable --now chrony
which containerd
which docker
Debian 12 默认用 containerd
systemctl status containerd
journalctl -u containerd -n 50
kubeadm 要求一致:
containerd config default > /etc/containerd/config.toml
确认:
SystemdCgroup = true
然后:
systemctl restart containerd
kubeadm init --v=5
ss -lntp | grep 6443
ls /etc/kubernetes/pki
重置重来:
kubeadm reset -f
kubeadm config images pull
失败说明:
kubectl get nodes
systemctl status kubelet
journalctl -u kubelet -n 100
kubectl get pods -n kube-system
如果没有 calico / flannel:
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
kubectl describe pod <pod>
kubectl logs <pod>
常见:
#!/bin/bash
swapoff -a
systemctl status containerd
systemctl status kubelet
kubectl get nodes
kubectl get pods -A
你可以贴:
kubeadm init 的报错全文journalctl -u kubelet -n 50kubectl get nodes / pods -A我可以按你的具体错误一步步帮你修。