Kubernetes Stefulsets 中的最后一个 Pod 在重启 3 次后准备就绪

Last Pod In Kubernetes Stefulsets is ready after 3 times restarting

我正在使用 Helm 在 Kubernetes 中部署 cassandra。在启动状态集时,例如。 6 pods,最后一个 pod 在 3 次重启后启动(crashloopbackoff:退避重启失败的容器)。但是在 3 次重启后,pod 就准备好了。在此之前,我使用了PodManagementPolicy: OrderedReady。我当时没有遇到这个问题。我想同时启动所有 pods。所以我给 PodManagementPolicy: Parallel。现在我遇到了这个问题。

您不能并行启动多个 Cassandra 实例。每个 Cassandra 节点都必须 bootstrap(流数据)并加入集群。如果加入节点注意到另一个节点已经加入,它将崩溃(停止 Cassandra)。这就是您收到 crashbackoff 消息的原因。

我建议您反转 PodManagementPolicy 并设置 readinessProbe。示例脚本:https://github.com/instaclustr/cassandra-operator/blob/ace024626c9339650a5a76861f36af48423a35be/docker/cassandra/readiness-probe.sh