关于Kubernetes-v1.23.6-资源调度-StatefulSet-OnDelete当删除的时候才更新
Posted on 2023-09-24 17:23 520_1351 阅读(106) 评论(0) 编辑 收藏 举报前面提到的普通的滚动更新,都是修改完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 ~]#
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17726284.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!