灰度发布是什么? 如何使用Kubernetes(k8s)现有的资源实现灰度发布?

無名 发表于: 2021-07-27   最后更新时间: 2021-07-27 16:02:17   1,621 游览

灰度发布是什么?
如何使用k8s现有的资源实现灰度发布?

发表于 2021-07-27

灰度发布是什么?

灰度测试,又名金丝雀,发布一般是先发1台机器,或者一个小比例,例如2%的服务器,主要做流量验证用,也称为金丝雀 (Canary) 测试。以前旷工下矿前,会先放一只金丝雀进去用于探测洞里是否有有毒气体,看金丝雀能否活下来,金丝雀发布由此得名。简单的金丝雀测试一般通过手工测试验证,复杂的金丝雀测试需要比较完善的监控基础设施配合,通过监控指标反馈,观察金丝雀的健康状况,作为后续发布或回退的依据。如果金丝测试通过,则把剩余的 V1 版本全部升级为 V2 版本。如果金丝雀测试失败,则直接回退金丝雀,发布失败。

灰度介绍出自:蓝绿、ABTest、滚动部署、灰度发布、金丝雀发布介绍

如何使用Kubernetes(k8s)现有的资源实现灰度发布?

1、更新镜像,并暂停升级

kubectl set image deployment myapp-deploy myapp:v2 -n test && kubectl rollout pause deployment myapp-deploy -n test

把myapp这个容器的镜像更新到myapp:v2版本,更新镜像之后,创建一个新的pod就立即暂停,这就是我们说的金丝雀发布;如果暂停几个小时之后没有问题,那么取消暂停,就会依次执行后面步骤,把所有pod都升级。

2、解除暂停

确认新版本没问题,则解除暂停

kubectl rollout resume deployment myapp-deploy -n test

完整步骤,参考:Kubernetes(k8s)之金丝雀发布(灰度)

你的答案

查看kubernetes相关的其他问题或提一个您自己的问题