关于Kubernetes-v1.23.6-资源调度-StatefulSet-OnDelete当删除的时候才更新

本文详细描述了在Kubernetes中如何使用OnDelete更新策略,仅在Pod被删除时更新StatefulSet的Pod副本。通过实例展示了如何修改nginx版本并观察删除Pod后的更新效果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前面提到的普通的滚动更新,都是修改完sts立即就会发生更新操作

而还有一种更新的策略为, OnDelete,即只有在 pod 被删除时会进行更新操作

还是先看一下web这个sts的当前更新策略如下:

这里我们修改,更新策略,kubectl edit sts web 命令,更新后保存,更新策略的块配置如下: 

  updateStrategy:
    type: OnDelete

1、更新nginx的版本为 1.7.9 ,然后可以通过如下看到,所有pod都没有进行更新

复制代码

[root@k8s-master ~]# kubectl patch sts web --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"nginx:1.7.9"}]'
statefulset.apps/web patched
[root@k8s-master ~]#
[root@k8s-master ~]#
[root@k8s-master ~]# kubectl describe po web-0 | grep Image:
    Image:          nginx:1.9.1
[root@k8s-master ~]# kubectl describe po web-1 | grep Image:
    Image:          nginx:1.9.1
[root@k8s-master ~]# kubectl describe po web-2 | grep Image:
    Image:          nginx:1.9.1
[root@k8s-master ~]# kubectl describe po web-3 | grep Image:
    Image:          nginx:1.9.1
[root@k8s-master ~]# kubectl describe po web-4 | grep Image:
    Image:          nginx:1.9.1
[root@k8s-master ~]#

复制代码

2、此时我们可以删除一个pod,如web-2,再进行观察,可以看到,只有被删除的web-2,才会重新生成,更新到指定的版本

复制代码

[root@k8s-master ~]# kubectl delete po web-2
pod "web-2" deleted
[root@k8s-master ~]# kubectl describe po web-0 | grep Image:
    Image:          nginx:1.9.1
[root@k8s-master ~]# kubectl describe po web-1 | grep Image:
    Image:          nginx:1.9.1
[root@k8s-master ~]# kubectl describe po web-2 | grep Image:
    Image:          nginx:1.7.9
[root@k8s-master ~]# kubectl describe po web-3 | grep Image:
    Image:          nginx:1.9.1
[root@k8s-master ~]# kubectl describe po web-4 | grep Image:
    Image:          nginx:1.9.1
[root@k8s-master ~]#

复制代码

3、最后,没有问题的,再依次将所有的pod进行删除,完成所有的更新

[root@k8s-master ~]# kubectl delete po web-0 web-1 web-3 web-4
pod "web-0" deleted
pod "web-1" deleted
pod "web-3" deleted
pod "web-4" deleted
[root@k8s-master ~]#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值