温馨提示×

centos k8s为什么节点掉线

小樊
48
2026-10-18 01:28:47
栏目: 智能运维

在 CentOS 上运行的 Kubernetes(k8s)节点掉线(Node NotReady / 节点失联),常见原因可以分为 网络、资源、组件、系统层面 几类。下面按最常见 → 较少见给你系统梳理。


一、最常见原因(80% 以上)

1️⃣ kubelet 异常 / 停止

现象

  • 节点状态变成 NotReady
  • kubectl get node 中 STATUS 异常

排查

systemctl status kubelet
journalctl -u kubelet -f

常见原因

  • kubelet 配置错误(kubeconfig、证书)
  • 磁盘满了(见下)
  • 内存不足被 OOM Kill

2️⃣ 节点资源耗尽(CPU / 内存 / 磁盘)

现象

  • 节点突然掉线
  • 系统卡顿或无响应

检查

free -h
top
df -h

重点看

  • /var/lib/(kubelet 数据目录)满
  • inode 满
  • 内存 swap 或 OOM

3️⃣ 网络问题(最常见于 CentOS)

(1)防火墙 / SELinux

CentOS 默认:

  • firewalld
  • SELinux

检查

getenforce
systemctl status firewalld

建议

setenforce 0
systemctl stop firewalld

(生产环境需按需开放端口)


(2)节点之间网络不通

检查

ping master-ip
telnet master-ip 6443

常见原因

  • 安全组 / 网段隔离
  • 多网卡路由问题
  • flannel / calico 网络异常

4️⃣ 容器运行时异常(Docker / containerd)

现象

  • Pod 无法启动
  • kubelet 报错无法连接 runtime

检查

systemctl status docker
# 或
systemctl status containerd

常见问题

  • Docker 版本不兼容
  • containerd 配置错误
  • 镜像拉取失败

二、Kubernetes 自身问题

5️⃣ 证书过期(非常常见)

现象

  • 节点突然全部 NotReady
  • kubelet 日志大量 TLS 错误

检查

openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -dates

解决

  • 重新签发证书
  • kubeadm certs renew

6️⃣ kube-proxy / CNI 插件异常

现象

  • Pod 网络不通
  • 节点状态异常

检查

kubectl get pods -n kube-system

三、系统 & 内核问题(CentOS 特有)

7️⃣ 内核参数问题

常见错误:

  • net.bridge.bridge-nf-call-iptables=0
  • 未加载 br_netfilter

修复

modprobe br_netfilter
sysctl -w net.bridge.bridge-nf-call-iptables=1

8️⃣ 系统重启 / 断电 / 云平台异常

  • 云服务器宕机
  • 内核 panic
  • 磁盘损坏

四、快速排查流程(建议照着做)

# 1. 看节点状态
kubectl get node

# 2. 看 kubelet
systemctl status kubelet
journalctl -u kubelet -n 100

# 3. 看资源
free -h
df -h
top

# 4. 看网络
ping <master>
telnet <master> 6443

# 5. 看容器运行时
systemctl status docker

五、你可以告诉我这些信息,我可以精准判断

  1. 节点是 master 还是 worker
  2. 使用的是 kubeadm / 二进制 / 云厂商
  3. CNI 插件(flannel / calico / weave)
  4. 报错日志(kubelet 或 kubectl describe node)

我可以直接帮你看具体原因和修复方案。

0 踩