背景

服务进程活着,不等于已经完成缓存预热或可以稳定接流量。把这些状态混在同一个探针里,可能导致依赖故障时不断重启。

核心判断

  1. readiness 只决定是否接收流量,liveness 判断是否需要重启。
  2. 启动较慢的服务使用 startupProbe,给初始化单独的时间预算。
  3. 检查保持轻量,依赖失效是否摘流量要结合降级能力决定。

最小示例

下面保留核心逻辑;业务类型、调用入口和环境配置按项目补齐。

readinessProbe:
  httpGet: { path: /readyz, port: 8080 }
  periodSeconds: 5
  failureThreshold: 3

边界与误区

配置片段应放在容器字段下。把数据库波动直接绑定 liveness,容易放大故障;把所有外部依赖绑定 readiness,也可能让整个服务同时摘除。

验证方式

分别模拟冷启动、依赖不可用和退出过程,观察探针结果、Service 端点和请求成功率,确认摘流量不会引发重启风暴。

小结

readiness 判断服务是否能接流量,liveness 只判断进程是否需要重启。