我的理解是,等待 45 秒后,Kubernetes 将访问 /heartbeat 并等待响应 5 秒。如果没有得到响应,它将尝试 5 次(每 60 秒)。5x60seconds=5 分钟过去后,Kubernetes 是否会继续进行就绪检查?如果服务在 6 分钟后启动,这个 pod 是否会被标记为就绪?第二个问题是,它是否会继续使用 FailureThreshold 和其他就绪设置?
readinessProbe:
httpGet:
path: /heartbeat
port: 8080
initialDelaySeconds: 45
timeoutSeconds: 5
periodSeconds: 60
failureThreshold: 5
livenessProbe:
httpGet:
path: /summary
port: 8080
initialDelaySeconds: 180
timeoutSeconds: 1
periodSeconds: 60
failureThreshold: 5
答案1
总体来说,这是正确的:
准备探测将在 initialDelaySeconds: 45 之后启动#(延迟)容器启动后,在发起活性或就绪探测之前的秒数。
periodSeconds: 60 # 执行探测的频率(以秒为单位)。默认为 10 秒。最小值为 1。
timeoutSeconds: 5 #(响应时间)探测超时后经过的秒数。默认为 1 秒。最小值为 1,
FailureThreshold: 5 #(放弃之前会尝试多少次)如果发生就绪探测,Pod 将被标记为未就绪。默认值为 3。最小值为 1,
什么时候将达到 livenes 探测的失败阈值 - kubelet将自动执行根据 Pod 的 restartPolicy 采取正确的操作,
一旦达到 readinesprobe 的失败阈值,Pod 将被标记为未准备好. (默认为 3。最小值为 1。)
根据文件:
- 当 Pod 未准备好时,它将从服务负载均衡器中删除。
- 注意:就绪探测在容器的整个生命周期内运行。
资源: