StatefulSet 扩容和缩容

和 Deployment 类似,可以通过更新 replicas 字段扩容/缩容 StatefulSet,也可以使用 kubectl scalekubectl 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

最后更新于