Kubernetes中liveness probe(存活探针)的重试时机规则是什么?
Kubernetes Liveness Probe 重试行为结论
核心结论
你给出的第二种逻辑是符合Kubernetes官方设计的预期行为。
探针执行规则说明
Kubernetes 存活探针的三个核心参数作用如下:
periodSeconds:连续两次探针执行的间隔时间,从上一次探针启动的时间点开始计算,和上一次探针的执行结果(成功/失败)、执行耗时无关timeoutSeconds:单次探针执行的最大超时时间,超过该时长未返回成功则判定为本次探针失败failureThreshold:连续失败次数达到该阈值后,才会触发Pod重启操作
结合配置的时间线推演
你的配置如下:
periodSeconds: 60 timeoutSeconds: 15 failureThreshold: 3
服务完全宕机的场景下,执行时间线为:
- 0秒:第一次存活探针启动
- 15秒:第一次探针超时,判定为第1次失败,不会立刻触发重试,等待下一个探测周期
- 60秒:距离第一次探针启动刚好满
periodSeconds=60,第二次探针启动 - 75秒:第二次探针超时,判定为第2次失败
- 120秒:距离第一次探针启动满120秒(第二次间隔60秒),第三次探针启动
- 135秒:第三次探针超时,累计失败次数达到
failureThreshold=3,触发Pod重启流程
误区澄清
第一种逻辑里提到的「失败后立刻重试」的行为不存在,Kubernetes 不会因为探针失败就缩短探测间隔,所有探测行为的间隔严格遵循periodSeconds配置,仅在连续失败次数达到阈值后才会触发对应的重启操作。
内容的提问来源于stack exchange,提问作者Aditya Dara
相关产品推荐
相关产品推荐

