K8S项目发布

本文介绍了在IT技术背景下,蓝绿发布、金丝雀发布(灰度发布)和滚动发布三种应用程序升级策略。蓝绿发布利用集群分组逐步升级,而金丝雀发布仅部分用户试用新版本,滚动更新则是逐个实例更新。文中还提到了这些方法的优缺点及在Kubernetes中的实现过程。
摘要由CSDN通过智能技术生成

蓝绿发布

金丝雀发布(灰度发布)

滚动发布

应用程序升级,面临的最大困难就是新旧业务之间的切换。立项---定稿---需求发布---开发---测试---发布,测试之后上线,再完美也会有问题,为了不让发生的问题影响所有用户,也就产生了上述的三种发布方式。

蓝绿发布:把应用服务集群标记为两个组,蓝组和绿组,先升级蓝组,要把蓝组从负载均衡中移除,绿组继续提供服务

蓝组升级完毕,再把绿组从负载均衡中移除,绿组升级,然后都加入回负载均衡当中去,完成对外服务

这种发布对于硬件资源要求比较高,但是现在有了云计算和微服务,现在的成本也降低下来了

蓝绿发布的特点:

1、一旦出现问题,受到影响的范围很大

2、发布策略较为简单

3、基于现在的云计算技术和微服务,用户是无感知的

4、升级和回滚都比较方便

缺点:

在发布升级的过程中,只有一部分集群在对外提供服务,可能会使集群的负载能力下降,响应变慢,需要注意给这个集群增加负载能力(现在一般来说没有什么特殊需求,都是大半夜开始升级的服务)

在短时间内可能会浪费一定的资源成本

金丝雀发布(灰度发布):

deployment(控制器创建的服务才可以使用这种发布方式)

暂停:发布的过程中,暂时停止,只有一部分的pod先升级

其他的pod还是处于老的版本。只有一部分用户可以访问新的版本,绝大多数用户还是在老版本。确定无问题之后,再把剩下的老版本,升级成新的版本,把暂停取消,继续发布。如果有问题可以立即回滚,暂停不是回滚,一旦取消暂停只能全部升级完毕之后,再回滚。

[root@master01 ~]# kubectl set image deployment nginx2 nginx=nginx:1.24 --record && kubectl rollout pause deployment nginx2 
deployment.apps/nginx2 image updated
deployment.apps/nginx2 paused

[root@master01 ~]# kubectl get pod
NAME                      READY   STATUS              RESTARTS   AGE
nginx2-5fc4444698-nrx5m   1/1     Running             0          37m
nginx2-5fc4444698-vgqwt   1/1     Running             0          37m
nginx2-7d97dbbb8c-jhtxf   0/1     ContainerCreating   0          25s

[root@master01 ~]# kubectl rollout status deployment nginx2 
Waiting for deployment "nginx2" rollout to finish: 1 out of 2 new replicas have been updated...

取消暂停,全部更新 
[root@master01 ~]# kubectl set image deployment nginx2 nginx=nginx:1.24 --record && kubectl rollout pause deployment nginx2 
deployment.apps/nginx2 image updated
deployment.apps/nginx2 paused

[root@master01 ~]# curl -I 192.168.211.10:31000
HTTP/1.1 200 OK
Server: nginx/1.24.0
Date: Tue, 02 Jan 2024 01:49:33 GMT
Content-Type: text/html
Content-Length: 615
Last-Modified: Tue, 11 Apr 2023 01:45:34 GMT
Connection: keep-alive
ETag: "6434bbbe-267"
Accept-Ranges: bytes

所有POD已全部更新为1.24版本

灰度发布:

1、自动化的要求比较,对运维人员的要求比较高

2、方便发现问题,及时解决。影响范围比较小

3、用户无感知,平滑过度,节约资源

4、发布策略比较复杂

5、不易回滚,必须要等到全部发布成功后才能回滚

滚动更新:

deployment默认的就是滚动更新

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

早上的星星

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

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

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

打赏作者

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

抵扣说明:

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

余额充值