背景
服务进程活着,不等于已经完成缓存预热或可以稳定接流量。把这些状态混在同一个探针里,可能导致依赖故障时不断重启。
核心判断
- readiness 只决定是否接收流量,liveness 判断是否需要重启。
- 启动较慢的服务使用 startupProbe,给初始化单独的时间预算。
- 检查保持轻量,依赖失效是否摘流量要结合降级能力决定。
最小示例
下面保留核心逻辑;业务类型、调用入口和环境配置按项目补齐。
readinessProbe:
httpGet: { path: /readyz, port: 8080 }
periodSeconds: 5
failureThreshold: 3
边界与误区
配置片段应放在容器字段下。把数据库波动直接绑定 liveness,容易放大故障;把所有外部依赖绑定 readiness,也可能让整个服务同时摘除。
验证方式
分别模拟冷启动、依赖不可用和退出过程,观察探针结果、Service 端点和请求成功率,确认摘流量不会引发重启风暴。
小结
readiness 判断服务是否能接流量,liveness 只判断进程是否需要重启。