全部场景Scene 02

探针失败无流量与 CrashLoop

故障信号有两类:Pod Running 但 READY 0/1,或 RESTARTS 持续上升。你将用 Endpoints、Events 与 logs --previous 区分 readiness 和 liveness,最后恢复探针并写出证据链。

中阶阶段 · 10 min · 5 步 · explain · apply · get · describe · endpoints

演练前检查

环境
可安全改动清单的本地实验集群;仓库根目录可访问 examples/probes/。
初始故障
先建立健康基线,再故意制造 READY 0/1 或 RESTARTS 上升,禁止在生产工作负载上注入故障。
成功标准
能说明 readiness 失败导致 endpoints 为空、过激 liveness 导致 CrashLoop,并各自给出一条证据命令
清理
恢复仓库原清单后执行 kubectl delete -f examples/probes/。

场景判断

探针不是「再加一层健康检查装饰」,而是 Kubernetes 把流量与自愈拆开的两把刀。readinessProbe 决定:这个容器现在能不能接 Service 流量——失败时 Pod 仍可 Running,但不会进入 Endpoints,表现为「有 Pod、无流量」。livenessProbe 决定:进程是否已经卡死到必须重启——失败时 kubelet 杀容器并按重启策略拉起,过激配置会把「启动慢」误判成「已死」,最终落入 CrashLoopBackOff。

仓库样例 examples/probes/deployment.yaml 在最小闭环基础上挂了合理探针:httpGet path=/、port=80,readiness 短延迟高频探测,liveness 稍晚启动、间隔更长。本场景的重点不是「会抄字段」,而是故意把它配错一次,用 get / describe / get endpoints 把因果链钉死。对照 kubectl explain probe,确认 httpGet、initialDelaySeconds、periodSeconds、failureThreshold 各自在时间轴上扮演什么角色。

复现步骤

本机勾选备忘(localStorage),不代表你已在集群里跑过,也不连接任何 API。只是帮你对照步骤,别当成「学会了」的勋章。

— / 5本机勾选

  1. 01
  2. 02
  3. 03
  4. 04
  5. 05

关键配置

YAMLdeployment.yaml
readinessProbe:
  httpGet:
    path: /
    port: 80
  initialDelaySeconds: 2
  periodSeconds: 5
  failureThreshold: 3
livenessProbe:
  httpGet:
    path: /
    port: 80
  initialDelaySeconds: 10
  periodSeconds: 10
  failureThreshold: 3

读这段字段时,按时间线想,不要按「开关」想。容器启动后:前 2 秒 readiness 还不急着判失败;之后每 5 秒探一次,连续 3 次失败才摘流量。liveness 则故意晚 10 秒再动手,给启动与预热留窗口。生产里最常见的误配是:把业务级「依赖下游超时」塞进 liveness——下游抖动时 kubelet 连环杀进程,事故从「慢」升级成「全员重启」。另一类是 readiness path 写错或依赖尚未就绪的内部接口,导致滚动发布期间新副本永远进不了 Endpoints,Service 只剩旧副本甚至零后端。

readiness 管「能不能接客」,liveness 管「该不该重开店」——把启动慢当成卡死,是探针事故的经典剧本。

实验结束后务必 kubectl delete -f examples/probes/ 清理,或把清单恢复为仓库原样再 apply。把这次对照写成两行笔记就够用:readiness 失败 = 副本在、流量无;liveness 过激 = 启动中被杀、CrashLoop。中阶后续的发布回滚与排障决策树,都会反复问你同一句话:现在是流量问题,还是进程生死问题?

现场记录

先写自己的证据,再看参考答案。输入只留在当前页面,本站不会读取或验证你的集群。

探针失败:无流量与 CrashLoop

Evidence Receipt · 执行凭证

只填写你实际运行过的环境;stdout / Events 请脱敏后写入下方证据句。

这是你的手动确认,不代表本站已检测命令执行结果。

关联命令

跳转图鉴并展开对应条目(可复制示例)。

对应路径课节

Kubernetes 图鉴 · 场景剧本 · probes-failure