Kubernetes StatefulSet 扩缩容与升级

Kubernetes StatefulSet 扩缩容与升级

StatefulSet 扩容

kubectl scale sts stateful-set-web --replicas=5
root@k8s-master1:~# kubectl get pods --watch -l app=pod-nginx
NAME                 READY   STATUS    RESTARTS   AGE
stateful-set-web-0   1/1     Running   0          7h23m
stateful-set-web-1   1/1     Running   0          7h23m
stateful-set-web-2   0/1     Pending   0          0s
stateful-set-web-2   0/1     Pending   0          0s
stateful-set-web-2   0/1     Pending   0          2s
stateful-set-web-2   0/1     ContainerCreating   0          2s
stateful-set-web-2   0/1     ContainerCreating   0          2s
stateful-set-web-2   1/1     Running             0          3s
stateful-set-web-3   0/1     Pending             0          0s
stateful-set-web-3   0/1     Pending             0          0s
stateful-set-web-3   0/1     Pending             0          2s
stateful-set-web-3   0/1     ContainerCreating   0          2s
stateful-set-web-3   0/1     ContainerCreating   0          2s
stateful-set-web-3   1/1     Running             0          3s
stateful-set-web-4   0/1     Pending             0          0s
stateful-set-web-4   0/1     Pending             0          0s
stateful-set-web-4   0/1     Pending             0          2s
stateful-set-web-4   0/1     ContainerCreating   0          2s
stateful-set-web-4   0/1     ContainerCreating   0          2s
stateful-set-web-4   1/1     Running             0          2s

StatefulSet 缩容

kubectl patch sts stateful-set-web -p '{"spec":{"replicas":3}}'
root@k8s-master1:~# kubectl get pods --watch -l app=pod-nginx
NAME                 READY   STATUS    RESTARTS   AGE
stateful-set-web-0   1/1     Running   0          9h
stateful-set-web-1   1/1     Running   0          9h
stateful-set-web-2   1/1     Running   0          107m
stateful-set-web-3   1/1     Running   0          107m
stateful-set-web-4   1/1     Running   0          107m
stateful-set-web-4   1/1     Terminating   0          107m
stateful-set-web-4   1/1     Terminating   0          107m
stateful-set-web-4   0/1     Terminating   0          107m
stateful-set-web-4   0/1     Terminating   0          107m
stateful-set-web-4   0/1     Terminating   0          107m
stateful-set-web-4   0/1     Terminating   0          107m
stateful-set-web-3   1/1     Terminating   0          107m
stateful-set-web-3   1/1     Terminating   0          107m
stateful-set-web-3   0/1     Terminating   0          107m
stateful-set-web-3   0/1     Terminating   0          107m
stateful-set-web-3   0/1     Terminating   0          107m
stateful-set-web-3   0/1     Terminating   0          107m

StatefulSet 更新

RollingUpdate 定义与使用

滚动更新将会以倒叙的方式逐次更新 Pod , 同时我们也可以用partition字段来分割更新部分与不更新部分。假设partition为2,副本数为3,则副本索引为 0,1,2。即更新部分为副本数(3-1)至 2,索引 2 更新;不更新部分索引 0 和 1。

kubectl patch statefulset stateful-set-web --type='json' -p='[{"op":
"replace", "path": "/spec/template/spec/containers/0/image", "value":"registry.k8s.io/ngi
nx-slim:0.7"}]'
root@k8s-master1:~# kubectl get pods --watch -l app=pod-nginx
NAME                 READY   STATUS    RESTARTS   AGE
stateful-set-web-0   1/1     Running   0          9h
stateful-set-web-1   1/1     Running   0          9h
stateful-set-web-2   1/1     Running   0          112m
stateful-set-web-2   1/1     Terminating   0          122m
stateful-set-web-2   1/1     Terminating   0          122m
stateful-set-web-2   0/1     Terminating   0          122m
stateful-set-web-2   0/1     Terminating   0          122m
stateful-set-web-2   0/1     Terminating   0          122m
stateful-set-web-2   0/1     Terminating   0          122m
stateful-set-web-2   0/1     Pending       0          0s
stateful-set-web-2   0/1     Pending       0          0s
stateful-set-web-2   0/1     ContainerCreating   0          0s
stateful-set-web-2   0/1     ContainerCreating   0          1s
stateful-set-web-2   1/1     Running             0          8s
stateful-set-web-1   1/1     Terminating         0          9h
stateful-set-web-1   1/1     Terminating         0          9h
stateful-set-web-1   0/1     Terminating         0          9h
stateful-set-web-1   0/1     Terminating         0          9h
stateful-set-web-1   0/1     Terminating         0          9h
stateful-set-web-1   0/1     Terminating         0          9h
stateful-set-web-1   0/1     Pending             0          0s
stateful-set-web-1   0/1     Pending             0          0s
stateful-set-web-1   0/1     ContainerCreating   0          0s
stateful-set-web-1   0/1     ContainerCreating   0          1s
stateful-set-web-1   1/1     Running             0          5s
stateful-set-web-0   1/1     Terminating         0          9h
stateful-set-web-0   1/1     Terminating         0          9h
stateful-set-web-0   0/1     Terminating         0          9h
stateful-set-web-0   0/1     Terminating         0          9h
stateful-set-web-0   0/1     Terminating         0          9h
stateful-set-web-0   0/1     Terminating         0          9h
stateful-set-web-0   0/1     Pending             0          0s
stateful-set-web-0   0/1     Pending             0          0s
stateful-set-web-0   0/1     ContainerCreating   0          0s
stateful-set-web-0   0/1     ContainerCreating   0          0s
stateful-set-web-0   1/1     Running             0          0s

OnDelete 定义与使用

OnDelete 指的是不直接更新 Pod,只有在 Pod 被删除后才会被更新。

kubectl patch statefulset web -p '{"spec":{"updateStrategy":{"type":"OnDelete"}}}'
  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值