CCE 节点 NotReady 排查实战:从节点状态到组件健康的五步流程
【摘要】 背景CCE 集群中某个节点突然变为 NotReady,节点上的 Pod 无法调度,业务受影响。本文记录一次真实的排查过程,从节点状态入手,五步定位到 kubelet 证书过期问题。 一、确认节点状态与事件kubectl get nodeskubectl describe node <node-name>查看节点的 Conditions,重点关注 Ready、MemoryPressure、D...
背景
CCE 集群中某个节点突然变为 NotReady,节点上的 Pod 无法调度,业务受影响。本文记录一次真实的排查过程,从节点状态入手,五步定位到 kubelet 证书过期问题。
一、确认节点状态与事件
kubectl get nodes
kubectl describe node <node-name>
查看节点的 Conditions,重点关注 Ready、MemoryPressure、DiskPressure、PIDPressure。kubectl describe 的 Events 会给出节点异常的直接线索。
二、检查 kubelet 服务状态
systemctl status kubelet
journalctl -u kubelet -n 100 --no-pager
kubelet 是节点上最关键的组件。服务未运行或频繁重启,节点必然 NotReady。日志里重点关注证书、PLEG、镜像拉取三类错误。
三、核对节点证书有效期
openssl x509 -in /etc/kubernetes/kubelet.crt -noout -dates
ls -l /etc/kubernetes/pki/
kubelet 与 apiserver 通信依赖证书。证书过期是最常见的 NotReady 原因之一,表现为 kubelet 日志里大量 certificate has expired 报错。确认过期后按集群文档轮换证书并重启 kubelet。
四、排查磁盘与内存压力
df -h
free -g
kubectl top node <node-name>
磁盘满或内存耗尽会触发 kubelet 的驱逐逻辑,节点被标记为 DiskPressure 或 MemoryPressure。清理无用的镜像与日志,释放空间后节点通常自动恢复。
五、验证节点恢复并观察
kubectl get nodes -w
kubectl get pods -o wide --field-selector spec.nodeName=<node-name>
节点恢复 Ready 后,确认 Pod 重新调度正常,并持续观察十分钟,确认状态不再反复。
小结
节点 NotReady 的排查顺序是:节点状态与事件、kubelet 服务、证书有效期、磁盘与内存压力、恢复验证。多数情况下问题出在 kubelet 或证书上,按这个顺序走,五步内基本能定位。
【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)