Kubernetes详解(四十七)——statefulset扩展

今天继续给大家介绍Linux运维相关知识,本文主要内容是statefulset扩展。
在上文Kubernetes详解(四十五)——statefulset控制器原理Kubernetes详解(四十六)——statefulset控制器实战中,我们分别介绍了StatefulSet控制器的原理和创建实战。今天,我们来介绍一下StatefulSet控制器的滚动更新、域名解析、扩容缩容以及更新策略。

一、statefulset滚动更新

我们修改StatefulSet的资源清单,将StatefulSet控制器下Pod的image修改为v2v版本。之后,我们使用修改后的资源清单重新创建StatefulSet,同时,打开其他的终端,动态的观察StatetfulSet控制器的更新过程,结果如下所示:
在这里插入图片描述
从上图中可以看出,我们的StatefulSet控制器在更新时也是有顺序的,会严格按照序号从大到小的顺序进行更新。

二、statefulset解析

在StatefuSet控制器中,每个Pod都是可以解析的。
我们在运行StatefulSet控制器后,进入该控制器下的Pod,并执行命令:

nslookup statefulset-exp-0.headless-svc.default.svc.cluster.local

尝试解析该控制器,结果如下所示:
在这里插入图片描述
从上图中可以看出,我们在进行Pod后,对该StatefulSet控制器下的不同的Pod都是可以解析到该Pod的IP地址的。

三、statefulset扩容和缩容

StatefulSet控制器支持扩容和缩容。
在StatefulSet扩容时,会创建一个新的Pod,该Pod与之前的所有Pod都是有顺序的,并且新Pod的序号最大。在缩容时,StatefulSet控制器删除的也是序号最大的Pod。
执行命令:

kubectl scale sts statefulset-exp --replicas=4

即可指定该StatefulSet控制器下的容器副本数为4,该命令执行结果以及扩容后的状态如下所示:
在这里插入图片描述
如果我们在其他终端上动态观察扩容结果,则如下所示:
在这里插入图片描述

四、Statefulset更新策略

StatefulSet可以使用partition参数来实现金丝雀更新,partition参数可以控制StatefulSet控制器更新的Pod。下面,我们就进行StatefulSet控制器的金丝雀更新实战。
首先,执行命令:

kubectl patch sts statefulset-exp -p '{"spec":{"updateStrategy":{"rollingUpdate":{"partition":2}}}}'

该命令使用patch参数来指定了StatefulSet控制器的partition参数为2,表示当更新时,只有Pod的编号大于等于2的才更新。
之后,我们执行命令:

kubectl set image sts/statefulset-exp myapp=ikubernetes/myapp:v3

来控制StatefulSet下的Pod更新到v3版本的myapp镜像。
之后,我们执行命令:

kubectl get pods -o custom-columns=Name:metadata.name,Image:spec.containers[0].image

来查看更新情况。
上述过程如下所示:
在这里插入图片描述
从上图中我们可以看出,在StatefulSet控制器更新后,我们的2和3的Pod变成了v3版本,而0和1的Pod仍旧是v2版本。
之后,如果我们想要设置StatefulSet下的控制器全部更新,我们需要首先将partition参数更改为0,执行命令:

 kubectl patch sts statefulset-exp -p '{"spec":{"updateStrategy":{"rollingUpdate":{"partition":0}}}}'

之后,我们再执行命令:

kubectl set image sts/statefulset-exp myapp=ikubernetes/myapp:v3

来设置Pod的镜像版本。这样,就可以实现StatefulSet控制器的全部更新了,上述过程如下所示:
在这里插入图片描述
在此过程中,我们查看Pod更新的动态过程,结果如下:
在这里插入图片描述
从以上结果可以看出,我们的StatefulSet控制器金丝雀更新成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远是少年啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值