StatefulSet 创建 Pod 的流程

StatefulSet 管理的 Pod 部署和扩展规则如下:

  • 对于一个拥有 n 个副本的 StatefulSet,Pod 被部署时是按照 {0 .. n-1} 的序号顺序创建的

  • 当删除 Pod 时,将按照 n‒1 到 0 的反顺序终止。

  • 在缩放 Pod 之前,必须保证当前的 Pod 是 Running(运行中)或者 Ready(就绪)。

  • 在终止 Pod 之前,它所有的继任者必须是完全关闭状态。

注意

StatefulSet 的 pod.Spec.TerminationGracePeriodSeconds(终止 Pod 的等待时间)不应该指定为 0,设置为 0 对 StatefulSet 的 Pod 是极其不安全的做法,优雅地删除 StatefulSet 的Pod 是非常有必要的,而且是安全的,因为它可以确保在 Kubelet 从 APIServer 删除之前,让 Pod 正常关闭。

最后更新于