“CentOS 上 Kubernetes 连不上”是个比较宽泛的问题,需要先明确连不上的具体表现,不过我可以先给你一套最常见原因 + 排查思路,你可以对照看看。
请先判断是下面哪一种:
kubectl get node 报错The connection to the server xxx:6443 was refusedkubectl get node 显示 NotReadyCentOS 默认 firewalld 开着。
systemctl status firewalld
✅ 解决:
systemctl stop firewalld
systemctl disable firewalld
或者放行端口(6443、10250、30000–32767 等)
getenforce
如果是 Enforcing:
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
K8s 对时间非常敏感。
date
✅ 解决:
yum install -y chrony
systemctl enable --now chronyd
systemctl status kubelet
journalctl -u kubelet -f
常见问题:
✅ 关 swap:
swapoff -a
sed -i '/swap/d' /etc/fstab
ss -lntp | grep 6443
如果没监听,说明 apiserver 没起。
网络插件没装或崩了,会导致:
kubectl get pod -n kube-system
CentOS 常有多网卡。
检查:
ip addr
初始化时指定正确 IP:
kubeadm init --apiserver-advertise-address=192.168.x.x
# 1. 防火墙
systemctl stop firewalld
# 2. SELinux
setenforce 0
# 3. swap
swapoff -a
# 4. 时间
date
# 5. 组件状态
systemctl status kubelet
kubectl get nodes
kubectl get pods -A
如果你愿意,把下面内容发我:
kubectl get nodeskubectl get pods -Ajournalctl -u kubelet | tail -50我可以直接告诉你是哪里断了。