立即将 Kubernetes Statefulset/Deployment 扩展到满容量

Ste*_*han 4 scale kubernetes statefulset kubernetes-statefulset

目前,我们将其中一个有状态集扩展为拥有 11 个副本。我们当前的更新策略是

updateStrategy:
  type: RollingUpdate
Run Code Online (Sandbox Code Playgroud)

如果我们从头开始部署有状态集,Kubernetes 会依次启动它们。要启动一个副本,大约需要 5 分钟。因此,我们总共等待了 55 分钟才填满容量。

从头开始有没有办法一次性把容量填满呢?那么所有 11 个副本都会同时启动吗?

出于故障安全考虑,应通过 RollingUpdate 处理现有有状态集的升级。

最好的祝愿,斯蒂芬

Ste*_*han 6

我们在文档深处找到了答案:

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 管理是 StatefulSet 的默认设置。它实现了上述行为。

并行 Pod 管理

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