扩缩 StatefulSet

    • 不是所有 Stateful 应用都能很好地执行扩缩操作。 如果你不是很确定是否要扩缩你的 StatefulSet,可先参阅 或者 StatefulSet 教程

    • 仅当你确定你的有状态应用的集群是完全健康的,才可执行扩缩操作.

    更改 StatefulSet 中副本个数:

    另外, 你可以就地更新 StatefulSet。

    如果你的 StatefulSet 最初通过 或 kubectl create --save-config 创建, 你可以更新 StatefulSet 清单中的 .spec.replicas,然后执行命令 :

    或者使用 kubectl patch

    当 Stateful 所管理的任何 Pod 不健康时,你不能对该 StatefulSet 执行缩容操作。 仅当 StatefulSet 的所有 Pod 都处于运行状态和 Ready 状况后才可缩容。

    如果 大于 1,Kubernetes 无法判定 Pod 不健康的原因。 Pod 不健康可能是由于永久性故障造成也可能是瞬态故障。 瞬态故障可能是节点升级或维护而引起的节点重启造成的。

    如果由于瞬态故障而导致 Pod 不健康并且 Pod 可能再次变为可用,那么瞬态错误可能会干扰你对 StatefulSet 的扩容/缩容操作。一些分布式数据库在同时有节点加入和离开时会遇到问题。 在这些情况下,最好是在应用级别进行分析扩缩操作的状态,并且只有在确保 Stateful 应用的集群是完全健康时才执行扩缩操作。