温馨提示×

centos k8s为啥连不上

小樊
43
2026-09-12 06:53:26
栏目: 智能运维

“CentOS 上 Kubernetes 连不上”是个比较宽泛的问题,需要先明确连不上的具体表现,不过我可以先给你一套最常见原因 + 排查思路,你可以对照看看。


一、先确认“连不上”是哪种情况

请先判断是下面哪一种:

  1. kubectl 连不上 apiserver
    • kubectl get node 报错
    • The connection to the server xxx:6443 was refused
  2. 节点连不上(Node NotReady)
    • kubectl get node 显示 NotReady
  3. Pod 之间 / 外部连不上服务
    • Service 访问不通
  4. 集群内部访问外网不通

二、最常见原因(CentOS 环境)

1️⃣ 防火墙没关(非常常见)

CentOS 默认 firewalld 开着。

systemctl status firewalld

✅ 解决:

systemctl stop firewalld
systemctl disable firewalld

或者放行端口(6443、10250、30000–32767 等)


2️⃣ SELinux 导致异常

getenforce

如果是 Enforcing

setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

3️⃣ 时间不同步(证书报错)

K8s 对时间非常敏感。

date

✅ 解决:

yum install -y chrony
systemctl enable --now chronyd

4️⃣ kubelet 没起来(Node NotReady 主因)

systemctl status kubelet
journalctl -u kubelet -f

常见问题:

  • swap 没关
  • cgroup 驱动不一致(systemd vs cgroupfs)

✅ 关 swap:

swapoff -a
sed -i '/swap/d' /etc/fstab

5️⃣ 端口被占用 / 监听异常

ss -lntp | grep 6443

如果没监听,说明 apiserver 没起。


6️⃣ 网络插件问题(flannel / calico)

网络插件没装或崩了,会导致:

  • Node NotReady
  • Pod 不通
kubectl get pod -n kube-system

7️⃣ 多网卡 / IP 不对(非常坑)

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

四、你可以贴这些信息,我帮你精准定位

如果你愿意,把下面内容发我:

  1. kubectl get nodes
  2. kubectl get pods -A
  3. journalctl -u kubelet | tail -50
  4. 报错截图或完整错误

我可以直接告诉你是哪里断了

0