在 CentOS 上部署 Kubernetes(k8s)时,报错原因很多,需要看具体报错信息才能精确定位。不过我可以先给你总结一下 CentOS 部署 k8s 最常见报错及原因,你可以对照排查。
K8s 对系统有硬性要求:
必须操作:
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭 SELinux
setenforce 0
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 关闭 swap
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
❌ 常见报错:
running with swap on is not supportedFailed to create sandboxcat <<EOF > /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
sysctl --system
❌ 常见报错:
proc/sys/net/bridge/bridge-nf-call-iptablesCentOS 常见:
检查:
systemctl status docker
systemctl status containerd
kubeadm 推荐配置:
# /etc/containerd/config.toml
SystemdCgroup = true
❌ 常见报错:
failed to run Kubeletcgroup driver mismatch典型原因:
--pod-network-cidr示例正确命令:
kubeadm init \
--pod-network-cidr=10.244.0.0/16 \
--image-repository=registry.aliyuncs.com/google_containers
❌ 常见报错:
Unable to fetch the kubeadm configimage pull failedtimedatectl set-ntp true
❌ 报错:
certificate has expiredkubeadm 初始化后 必须装 CNI:
❌ 现象:
NotReadyPending请把以下信息贴出来(脱敏即可):
cat /etc/redhat-release
kubeadm version
docker version / ctr version
如果你愿意,可以直接把 报错截图或日志贴出来,我可以一步一步帮你排到能 kubectl get nodes 出结果。