预约咨询 提交工单

Linux SRE 生产故障排查手册:Kubernetes 节点不可用

本文为 SRE 团队提供一份详尽的 Linux 生产环境故障排查手册,以 Kubernetes 节点状态异常为例,涵盖症状、诊断、命令、风险控制、回滚、验证及何时提交工单。

Linux SRE 生产故障排查手册:Kubernetes 节点不可用
DevOps 6min 45 浏览 2026-07-10
KubernetesSRELinux故障排查

场景

生产 Kubernetes 集群中,一个或多个节点状态变为 NotReady,导致工作负载被驱逐或无法调度。

症状

  • 节点状态:kubectl get nodes 显示 NotReady
  • kubelet 日志报错:journalctl -u kubelet -f 显示连接超时或资源不足
  • 节点 CPU/内存使用率极高(通过 topfree -hdf -h 查看)
  • 节点上的 Pod 处于 Pending 或 Unknown 状态

诊断步骤

  1. 检查节点状态kubectl get nodes -o wide 查看详情
  2. 查看节点描述kubectl describe node <node-name> 获取事件和条件
  3. 检查 kubelet 日志journalctl -u kubelet --since "10 min ago" 寻找错误
  4. 检查系统资源tophtopfree -mdf -hiostat -x 查看 CPU、内存、磁盘 I/O
  5. 检查容器运行时crictl psdocker ps 确认容器状态
  6. 检查网络插件kubectl get pods -n kube-system 确认 CNI 插件正常运行

常用命令

# 节点健康检查
kubectl get nodes
kubectl describe node <node-name>
kubectl get pods --all-namespaces -o wide | grep <node-name>

# 系统资源
top -c -o %CPU
free -h
vmstat 1 5

# kubelet 日志
journalctl -u kubelet --no-pager -n 100

# 重启 kubelet(风险操作)
systemctl restart kubelet

# 驱逐节点(谨慎)
kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data

风险控制

  • 在操作前,确认节点是否为主节点(Master)——切勿随意重启 Master 节点上的 kubelet 或进行驱逐,可能导致集群控制面不可用。
  • 保持带外管理访问(如 IPMI、BMC)以防 SSH 中断。
  • 确保有备份或快照,尤其是持久化数据。
  • 执行 kubectl drain 前,评估工作负载可用性,避开业务高峰期。

回滚步骤

如果故障由 recent 变更引起(如配置更新): 1. 恢复 kubelet 配置:systemctl stop kubelet; cp /etc/kubernetes/kubelet.conf.bak /etc/kubernetes/kubelet.conf; systemctl start kubelet 2. 如果重启 kubelet 后问题依旧,且节点资源耗尽,考虑内存/磁盘扩容或清理临时文件。 3. 作为最后手段,重启节点:reboot(需谨慎,可能导致数据丢失)。

验证

  • 节点状态变为 Ready:kubectl get nodes
  • 被驱逐的 Pod 重新调度:kubectl get pods -o wide
  • kubelet 日志无新错误
  • 业务监控恢复正常

何时提交 OpsGlobal 工单

  • 节点在尝试所有诊断步骤(包括重启 kubelet 和节点)后仍未恢复
  • 需要硬件供应商介入(如磁盘故障、内存错误)
  • 节点数据泄露或安全事件
  • 需要基础设施团队扩容或替换节点时

适用场景

适合正在处理 DevOps、Kubernetes, SRE, Linux, 故障排查 相关问题的团队,用于快速建立排查路径和交付标准。

问题背景

本文为 SRE 团队提供一份详尽的 Linux 生产环境故障排查手册,以 Kubernetes 节点状态异常为例,涵盖症状、诊断、命令、风险控制、回滚、验证及何时提交工单。

排查步骤

先确认影响范围和最近变更,再收集日志、配置、指标和链路数据,最后按风险从低到高执行修复。

命令示例

示例命令请替换为你的真实资源名,并使用环境变量保存账号、密码、token 等敏感信息。

风险说明

生产环境操作前需要确认备份、权限边界、变更窗口和回滚路径,避免扩大故障影响。

回滚方案

保留原配置和发布版本;如修复后指标异常,立即回退配置、镜像或数据库变更并复核日志。

交付清单

问题定位记录、关键命令、修复步骤、验证结果、后续优化建议。

!

遇到类似技术问题?

如果你的服务器、K8s、Docker、CI/CD、数据库或监控系统出现类似问题,可以提交日志和配置文件,我们帮你远程诊断。

工单 WhatsApp 联系 咨询