标准答案

  1. 先看 Deployment conditions、ReplicaSet、Pod 状态和 events,确定卡在创建、调度、启动还是就绪阶段。
  2. 区分 Pending、ImagePullBackOff、CrashLoopBackOff、Running/NotReady 和 Terminating,它们对应不同排查路径。
  3. 检查资源请求、节点容量、污点、镜像权限、配置、探针、Service 和应用日志。
  4. 止血可暂停发布、回滚或降低流量,但要保留失败版本、事件和配置证据,修复后再继续。

题目解析

rollout status 只描述 Deployment 是否达到进度条件,根因可能在 ReplicaSet 创建、调度、镜像、入口、配置、探针、资源或旧 Pod 排空。应先确认新 ReplicaSet 的期望/实际副本,再按 Pod 状态和 events 把故障定位到调度、启动或就绪阶段。

Running 只说明容器进程存在,NotReady、Service 后端为空或应用返回错误时业务仍不可用。止血可以暂停、降低流量或回滚,但要保留失败 digest、对象 YAML、events、日志和发布时间线,修复后再继续发布。

常见误区

  • 误区:只反复执行 rollout restart。改正:先读取 conditions、ReplicaSet、Pod events 和退出原因,避免重复触发同一故障。
  • 误区:看到 Pod Running 就认为发布成功。改正:验证 readiness、EndpointSlice、业务请求、错误率和数据兼容。

作者信息