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 正常关闭。
最后更新于2年前