事件探针应该触发失败容器的重新启动。他们是否尊重默认的状态集deployment and scaling guarantees 。例如。如果同一状态集中的多个 pod 的 active 探测同时失败,K8S 会尝试一次重新启动一个容器还是并行地重新启动所有容器?
最佳答案
根据https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/ active 探针是在 kubelet
中实现的一项功能:
The kubelet uses liveness probes to know when to restart a container.
这意味着任何需要了解多个 Pod 的调度决策都不会被考虑在内。
因此,如果您的所有有状态集的 Pod 同时有失败的事件探测,它们将大约在同一时间重新安排,而不尊重任何部署级别的保证。
关于Kubernetes StatefulSets 和 livenessProbes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67001521/