关于Kubernetes-v1.23.6-资源调度-StatefulSet-实现金丝雀发布
Posted on 2023-09-24 16:23 520_1351 阅读(72) 评论(0) 编辑 收藏 举报StatefulSet 也可以采用滚动更新策略,同样是修改 pod template 属性后会触发更新,但是由于 pod 是有序的,在 StatefulSet 中更新时是基于 pod 的顺序倒序更新的
利用滚动更新中的 partition 属性,可以实现简易的灰度发布的效果,记录一下,updateStrategy: 更新策略是与replicas 和 template 同级的位置
例如我们有 5 个 pod,如果当前 partition 设置为 3,那么此时滚动更新时,只会更新那些 序号 >= 3 的 pod
利用该机制,我们可以通过控制 partition 的值,来决定只更新其中一部分 pod,确认没有问题后再主键增大更新的 pod 数量,最终实现全部 pod 更新
1、还是先将sts的副本数更新为5,即一共会有5个pods,可以使用如下命令(版本我们可以使用1.7.9):
kubectl patch sts web --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/containers/0/image", "value":"nginx:1.7.9"}]'
kubectl scale statefulset web --replicas=5
2、此时我们再修改上图位置的,partition的值为3, 图上的值为0,代表滚动更新所有序号的pod,注意序号是从0开始的,可以看到第一个pod的名称为 web-0
使用 kubectl edit sts web 命令,修改 partition的值为3,也顺便将nginx的版本更新到 1.9.1 , 这样也即是只会更新web-3 和 web-4 两个pod
3、然后可以通过查看pods的描述,看到效果和变化,可以看到,只是更新了序号 >=3 的pods 到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 ~]# kubectl describe po web-0 | grep Image: Image: nginx:1.7.9 [root@k8s-master ~]# kubectl describe po web-1 | grep Image: Image: nginx:1.7.9 [root@k8s-master ~]# kubectl describe po web-2 | grep Image: Image: nginx:1.7.9 [root@k8s-master ~]#
4、如果发现新版本没有问题,我们就可以继续修改 partition的值为0,就可以完成所有的pod的版本更新了
[root@k8s-master ~]# kubectl edit sts web statefulset.apps/web edited [root@k8s-master ~]# kubectl get sts NAME READY AGE web 5/5 22h [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 ~]#
尊重别人的劳动成果 转载请务必注明出处:https://www.cnblogs.com/5201351/p/17726150.html
作者:一名卑微的IT民工
出处:https://www.cnblogs.com/5201351
本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。
由于博主的水平不高,文章没有高度、深度和广度,只是凑字数,不足和错误之处在所难免,希望大家能够批评指出。
博主是利用读书、参考、引用、复制和粘贴等多种方式打造成自己的文章,请原谅博主成为一个卑微的IT民工!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)
2022-09-24 关于tkinter中lambda函数使用的陷阱分析与注意事项
2020-09-24 windows服务器注册表的备份与子项键值的修改