标准答案

  1. 先确认影响范围,暂停自动发布、非关键 CronJob 和可能放大故障的重试,必要时摘除异常流量。
  2. 保留集群版本、对象状态、events、节点条件、控制器日志、资源和业务指标时间线。
  3. 按层区分 API Server/etcd、调度、kubelet/运行时、CNI/CSI、Ingress、应用和下游故障。
  4. 止血动作要有回滚条件;恢复后验证发布、调度、网络、存储、业务数据和告警链路。

题目解析

集群故障时先保护系统:暂停高风险发布、批任务和无上限重试,必要时摘除异常流量;同时记录控制面、节点、网络、存储、对象状态和业务指标。排查按 API Server/etcd、调度与控制器、kubelet/runtime、CNI/CSI、Ingress、应用和下游逐层收敛,避免同时修改多个变量。

止血动作必须有回滚条件和观察指标,恢复不应只看 Node Ready 或集群健康探针。要验证 Pod readiness、EndpointSlice、请求成功率/P99、数据对账、消息积压、存储读写和告警链路,并保留事件时间线,才能确认平台恢复没有掩盖业务损失。

常见误区

  • 误区:故障时继续滚动发布。改正:冻结会放大故障的变更和任务,先划定影响范围并保留现场。
  • 误区:只重启控制器不保留现场。改正:先采集 events、日志、版本、资源和业务指标,再做有边界的重启或回滚。
  • 误区:恢复后不检查数据和积压。改正:验证业务指标、数据完整性、消息积压、存储和告警闭环。

作者信息