StatefulSet 扩容和缩容
和 Deployment 类似,可以通过更新 replicas 字段扩容/缩容 StatefulSet,也可以使用 kubectl scale、kubectl edit 和 kubectl patch 来扩容/缩容一个 StatefulSet。
扩容
$ kubectl scale sts web --replicas=5
statefulset.apps/web scaled
如同 StatefulSet 创建 Pod 的流程中所述,StatefulSet 按序号索引顺序创建各个 Pod,并且会等待前一个 Pod 变为 Running 和 Ready 才会启动下一个 Pod。
$ kubectl get pod -w -l app=nginx
NAME READY STATUS RESTARTS AGE
web-0 1/1 Running 0 12m
web-1 1/1 Running 0 12m
web-2 0/1 Pending 0 0s
web-2 0/1 Pending 0 0s
web-2 0/1 ContainerCreating 0 0s
web-2 0/1 ContainerCreating 0 1s
web-2 1/1 Running 0 2s
web-3 0/1 Pending 0 0s
web-3 0/1 Pending 0 0s
web-3 0/1 ContainerCreating 0 0s
web-3 0/1 ContainerCreating 0 1s
web-3 1/1 Running 0 2s
web-4 0/1 Pending 0 0s
web-4 0/1 Pending 0 0s
web-4 0/1 ContainerCreating 0 0s
web-4 0/1 ContainerCreating 0 1s
web-4 1/1 Running 0 1s
缩容
$ kubectl patch sts web -p '{"spec":{"replicas":3}}'
statefulset.apps/web patched
如同 StatefulSet 创建 Pod 的流程中所述,StatefulSet 控制器会按照与 Pod 序号索引相反的顺序每次删除一个 Pod。在删除下一个 Pod 前会等待上一个被完全关闭。
kubectl get pod -w -l app=nginx
NAME READY STATUS RESTARTS AGE
web-0 1/1 Running 0 15m
web-1 1/1 Running 0 15m
web-2 1/1 Running 0 2m35s
web-3 1/1 Running 0 2m33s
web-4 1/1 Running 0 2m31s
web-4 1/1 Terminating 0 3m45s
web-4 1/1 Terminating 0 3m45s
web-4 0/1 Terminating 0 3m45s
web-4 0/1 Terminating 0 3m46s
web-4 0/1 Terminating 0 3m46s
web-4 0/1 Terminating 0 3m46s
web-3 1/1 Terminating 0 3m48s
web-3 1/1 Terminating 0 3m48s
web-3 0/1 Terminating 0 3m49s
web-3 0/1 Terminating 0 3m50s
web-3 0/1 Terminating 0 3m50s
web-3 0/1 Terminating 0 3m50s
最后更新于
这有帮助吗?