Kubernetes StatefulSets 和 livenessProbes

Kubernetes StatefulSets and livenessProbes

Liveness 探测应该会触发失败容器的重启。他们是否尊重默认的有状态集 deployment and scaling guarantees。例如。如果在同一个状态集中多个 pods 的 liveness 探测同时失败,K8S 会尝试一次重启一个容器还是并行重启所有容器?

根据 https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/,活性探测是 kubelet 中实现的一项功能:

The kubelet uses liveness probes to know when to restart a container.

这意味着任何需要了解多个 pods 的调度决定都不会被考虑在内。

因此,如果您的所有 statefulset pods 同时有失败的活性探测,它们将在大约同一时间重新安排,而不尊重任何部署级别的保证。