Node故障处理
提示
本文介绍关于 k3s/k8s Node节点异常问题的诊断流程、排查思路、常见问题及解决方案。
本文目录
诊断流程

- 查看节点是否处于异常状态。具体操作,请参见检查节点的状态。
- 若节点处于NotReady状态,可参考如下步骤进行排查:
- 检查节点状态信息,查看PIDPressure、DiskPressure、MemoryPressure等节点类型的状态是否为True。若某一节点类型的状态为True,则根据相应异常状态关键字进行排查。具体操作,请参见Dockerd异常处理-RuntimeOffline、节点内存不足-MemoryPressure和节点索引节点不足-InodesPressure等进行解决。
- 检查节点的关键组件和日志。
- Kubelet
- 检查Kubelet的状态、日志、配置等是否存在异常。具体操作, 请参见检查节点的关键组件。
- 若Kubelet存在异常,请参见Kubelet异常处理操作。
- Dockerd
- 检查Dockerd的状态、日志、配置等是否存在异常。具体操作,请参见检查节点的关键组件。
- 若Dockerd存在异常,请参见Dockerd异常处理-RuntimeOffline操作。
- Containerd
- 检查Containerd的状态、日志、配置等是否存在异常。具体操作,请参见检查节点的关键组件。
- 若Containerd存在异常,请参见Containerd异常处理-RuntimeOffline操作。
- NTP
- 检查NTP服务的状态、日志、配置等是否存在异常。具体操作,请参见检查节点的关键组件。
- 若NTP服务存在异常,请参见NTP异常处理-NTPProblem操作。
- Kubelet
- 检查节点的诊断日志。
- 检查节点的监控,查看节点CPU、内存、网络等资源负载情况是否存在异常。具体操作,请参见检查节点的监控。若节点负载异常,请参见节点CPU不足和节点内存不足-MemoryPressure等解决。
- 若节点处于Unknown状态,可参考如下步骤进行排查。
- 检查节点服务器实例状态是否为开机 运行中。
- 检查节点的关键组件。
- Kubelet
- 检查Kubelet的状态、日志、配置等是否存在异常。具体操作,请参见检查节点的关键组件。
- 若Kubelet存在异常,请参见Kubelet异常处理操作。
- Dockerd
- 检查Dockerd的状态、日志、配置等是否存在异常。具体操作,请参见检查节点的关键组件。
- 若Dockerd存在异常,参见Dockerd异常处理-RuntimeOffline操作。
- Containerd
- 检查Containerd的状态、日志、配置等是否存在异常。具体操作,请参见检查节点的关键组件。
- 若Containerd存在异常,请参见Containerd异常处理-RuntimeOffline操作。
- NTP
- 检查NTP服务的状态、日志、配置等是否存在异常。具体操作,请参见检查节点的关键组件。
- 若NTP服务存在异常,请参见NTP异常处理-NTPProblem操作。
- Kubelet
- 检查节点的网络连通性。具体操作,请参见检查节点防火墙及安全组。若节点网络存在异常,请参见节点网络异常解决。
- 检查节点的诊断日志。
- 检查节点的监控,查看节点CPU、内存、网络等资源负载情况是否存在异常。具体操作,请参见检查节点的监控。若节点负载异常,请参见节点CPU不足和节点内存不足-MemoryPressure解决。
- 若节点处于NotReady状态,可参考如下步骤进行排查:
- 若问题仍未解决,请提交工单排查。
常见排查方法
检查节点的状态
当节点出现故障时,您可以通过登录服务器,确保服务器是在线可连通状态,硬件及其他不可抗拒因素导致故 障,不再排查范围内。
-
登录运维操作服务器,检查常规指标;CPU/内存/负载状态。
top -
进入ONES运维工具箱容器。
ones-ai-k8s.sh # 进入ones运维操作容器 -
查询K3S/K8S集群节点状态。
kubectl get node # 查看全部节点基本信息,检查节点状态是否为:Ready状态
kubectl describe node <node-name>- 若状态为Ready说明节点运行正常。