在 CentOS 上部署 Kubernetes(k8s)失败 的原因非常多,需要结合具体报错来判断。下面我按最常见原因给你一个系统性的排查清单,你可以对照看看是哪一种。
✅ 建议:
cat /etc/centos-release
kubectl version --short
kubelet 默认不允许 swap 开启
free -m
✅ 解决:
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
CentOS 默认:
✅ 解决:
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
证书校验失败会导致部署直接失败
timedatectl
✅ 解决:
yum install -y chrony
systemctl enable --now chronyd
k8s 1.24+:
检查:
systemctl status containerd
crictl info
常见错误:
/etc/containerd/config.toml✅ 修复:
containerd config default > /etc/containerd/config.toml
sed -i 's/SystemdCgroup = false/SystemdCgroup = true/' /etc/containerd/config.toml
systemctl restart containerd
常见报错:
failed to pull imageconnection refusedpreflight errors✅ 排查:
journalctl -xeu kubelet
kubeadm config images list
✅ 国内加速:
kubeadm init --image-repository registry.aliyuncs.com/google_containers
没有 CNI 插件:
✅ 示例(Calico):
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
nproc
free -h
hostnamectl set-hostname master
/etc/hosts 示例:
192.168.1.10 master
192.168.1.11 node1
请告诉我以下信息,我可以直接帮你精准判断:
kubeadm init 或 kubectl get nodes 的输出)如果你愿意,可以直接把 报错日志贴出来,我可以一步一步帮你排到能跑起来。