2

目前,我们将其中一个 statefulset 扩展为拥有 11 个副本。我们当前的 updateStrategy 是

updateStrategy:
  type: RollingUpdate

如果我们从头开始部署 statefulset,Kubernetes 会一个接一个地启动它们。要启动一个副本,它需要大约 5 分钟。因此,我们总共等待 55 分钟来填满容量。

从头开始有没有办法一次填满容量?那么所有 11 个副本将同时启动?

由于故障安全,应通过 RollingUpdate 处理现有 statefulset 的升级。

最好的祝愿,斯蒂芬

4

2 回答 2

2

我们发现答案隐藏在文档深处:

https://kubernetes.io/docs/tutorials/stateful-application/basic-stateful-set/#parallel-pod-management

https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/#pod-management-policies

Pod 管理策略

在 Kubernetes 1.7 及更高版本中,StatefulSet 允许您放宽其排序保证,同时通过其 .spec.podManagementPolicy 字段保留其唯一性和身份保证。

OrderedReady Pod 管理

OrderedReady pod 管理是 StatefulSets 的默认设置。它实现了上述行为。

并行 Pod 管理

并行 pod 管理告诉 StatefulSet 控制器并行启动或终止所有 Pod,并且在启动或终止另一个 Pod 之前不要等待 Pod 变为 Running 和 Ready 或完全终止。此选项仅影响缩放操作的行为。更新不受影响。

于 2020-03-20T07:54:02.153 回答
2

我不这么认为。StatefulSets 是为安全而设计的,因此控制器一次操作一个 pod。

于 2020-03-19T08:52:10.233 回答