k8s 金丝雀发布 (灰度)

背景

线上发布,如果直接将预发或者测试环境的jar或war包发布到线上,如果出现问题,那么就会出现大面积瘫痪,无法正常使用
引入金丝雀发布,先优先发布一台,或者比例较小。主要用来流量验证,如果通过,那么可以快速将其他版本全部更新,失败的话,则回退,只影响小部分用户。

优缺点

优点: 用户体验影响小,发布只影响少部分用户

缺点: 自动化流程不够,发布期间需要人为去操作,可能会引起服务中断等

实战

1、快速构建 deployment、 service

在这里插入图片描述
查看namespace为demo下所有资源
kubectl get all -n demo
通过curl -I 获取当前nginx版本
curl -I 10.1.176.133
在这里插入图片描述

2、更新镜像并暂停升级

kubectl set image deployment/web nginx=nginx:1.7.9 -n demo && kubectl rollout pause deployment web -n demo
在这里插入图片描述
查看当前deployment状态
在这里插入图片描述

3、验证更新

for i in {1…20};do curl -I 10.1.176.133;done
在这里插入图片描述

4、确认更新成功,解除暂停,并查看相关更新状态

kubectl rollout resume deployment web -n demo && kubectl rollout status deployment/web -n demo
在这里插入图片描述

5、查看历史版本

在这里插入图片描述
备注: 这里发现CHANGE-CAUSE中都是。那么无法得知变更原因,可以在更新镜像时候,在末尾加上 --record
kubectl set image deployment/web nginx=nginx:1.7.9 -n demo --record
在这里插入图片描述

6、回滚

kubectl rollout undo deployment web -n demo --to-revision=3
&& kubectl rollout status deployment/web -n demo
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值