预约咨询 提交工单

Kubernetes 故障响应:节点故障与集群可靠性实践指南

本文提供处理 Kubernetes 节点故障的详细实战指导,包括场景、症状、诊断命令、风险控制、回滚步骤、验证方法以及何时提交 OpsGlobal 工单。

Kubernetes 故障响应:节点故障与集群可靠性实践指南
Kubernetes 6min 57 浏览 2026-07-01
KubernetesSRE故障响应节点排空Pod 驱逐

场景

某节点因硬件故障或内核崩溃宕机,导致该节点上的 Pod 无法正常运行,服务出现延迟或中断。

症状

  • kubectl get nodes 显示节点状态为 NotReady。
  • 受影响 Pod 状态为 Pending 或 Unknown。
  • 监控告警触发(如 NodeDown、PodCrashLoopBackOff)。
  • 用户报告服务不可用。

诊断

  1. 确认节点状态:kubectl get nodes 查看异常节点。
  2. 查看节点详情:kubectl describe node <node-name>,关注 Conditions 部分,如 Ready 为 False 及原因(例如 KubeletNotReadyNodeStatusUnknown)。
  3. 查看集群事件:kubectl get events --sort-by='.lastTimestamp' 寻找相关事件。
  4. 如果节点仍可访问(通过 SSH 或带外管理),检查 kubelet 日志:journalctl -u kubelet -n 100
  5. 检查控制平面组件(如 etcd、kube-scheduler)是否受影响。

操作命令

安全封锁节点(阻止新调度)

kubectl cordon <node-name>

排空节点(驱逐 Pod)

kubectl drain <node-name> --ignore-daemonsets --delete-emptydir-data 风险注意: - 如果 Pod 没有控制器(如裸 Pod),排空后不会自动重建。 - 如果 StatefulSet 副本数为 1,排空可能导致数据丢失。 - 确保误删除 emtpyDir 数据可接受。

解除封锁

kubectl uncordon <node-name>

风险控制

  • 提前为工作负载配置 PodDisruptionBudget (PDB),确保排空时不会中断关键服务。
  • 为有状态应用设置合理的副本数和反亲和性。
  • 定期测试排空流程,并备份 etcd。
  • 排空前检查是否有 PVC 处于 RWO 模式且仅挂载在该节点。

回滚

  • 如果排空导致服务异常,立即执行 kubectl uncordon <node-name> 并停止排空(用 Ctrl+C 中断 drain 命令)。
  • 若节点已彻底损坏且无法修复,删除节点对象:kubectl delete node <node-name>,集群将自动重新调度 Pod。

验证

  • 节点恢复后,执行 kubectl get nodes 确认状态为 Ready。
  • kubectl get pods -o wide 确认所有 Pod 已在正常节点上运行。
  • 检查服务负载和延迟,确认恢复正常。

何时提交 OpsGlobal 工单

  • 多个节点同时故障或持续出现节点不健康状态。
  • 控制平面组件异常(如 etcd 不可用)。
  • 涉及持久化数据丢失风险。
  • 排空后 Pod 无法在新节点启动,需人工介入。
  • 需要审计和事后复盘。

适用场景

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

问题背景

本文提供处理 Kubernetes 节点故障的详细实战指导,包括场景、症状、诊断命令、风险控制、回滚步骤、验证方法以及何时提交 OpsGlobal 工单。

排查步骤

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

命令示例

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

风险说明

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

回滚方案

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

交付清单

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

!

遇到类似技术问题?

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

工单 WhatsApp 联系 咨询