在 CentOS 上部署 Kubernetes(k8s)时报错很常见,但排查思路是通用的。下面我按「先看什么 → 常见错误 → 解决套路」给你讲,基本能覆盖 90% 的情况。
cat /etc/centos-release
uname -a
✅ 推荐:
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
systemctl status docker
systemctl status kubelet
journalctl -xeu kubelet
kubeadm init 卡住 / 失败常见原因
解决
kubeadm reset -f
Docker 配置(CentOS 必改):
cat > /etc/docker/daemon.json <<EOF
{
"exec-opts": ["native.cgroupdriver=systemd"]
}
EOF
systemctl restart docker
报错示例
failed to pull image k8s.gcr.io/...
解决(使用国内镜像)
kubeadm init \
--image-repository registry.aliyuncs.com/google_containers \
--pod-network-cidr=10.244.0.0/16
NotReadykubectl get nodes
原因
解决(Flannel 示例)
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
k8s 需要端口:
netstat -tunlp | grep -E '6443|10250'
journalctl -u kubelet -f
kubectl get pods -A
kubectl describe pod <pod-name> -n kube-system
如果你愿意,可以:
kubeadm init 后的输出journalctl -u kubelet 的关键错误直接贴出来,我可以 逐行帮你分析并给出精确解决方案(包括版本兼容问题)。
你现在是 单节点还是多节点?用的 kubeadm 还是二进制?