3.4.6.4. 缩减
若要缩减副本集,可以将成员从 5 个缩减到 3 个,或从 3 个缩减到 1 个。
虽然当满足条件(存储可用性、现有数据库的大小和 oplogSize
)时,可以在不需要人工干预的情况下进行扩展,但缩减总是需要人工干预。
缩减:
使用
oc scale
命令设置新副本数:$ oc scale --replicas=3 statefulsets/mongodb
如果新副本数仍为前一个数字中的大多数,则副本集可能会选择一个新的 PRIMARY,如果删除的 pod 中的一个具有 PRIMARY 成员角色。例如,从 5 个成员缩减到 3 个成员时。
或者,缩减到较低数字可临时导致副本集只有 SECONDARY 成员,且处于只读模式。例如,从 5 个成员缩减到只有 1 个成员时。
更新 replica set 配置,以删除不存在的成员。
这在以后可能会有所改进,一个可能的实现是设置
PreStop
pod hook 来检查副本数(通过 Downward API 获得),并确定 pod 已从 StatefulSet 中删除,并且由于其他原因不会重启。- 清除已弃用 pod 使用的卷。