通过ECS方式接入的应用,以及部署在阿里云容器服务ACK集群中的Spring Cloud或Dubbo微服务应用,为了确保其升级的安全性,可以使用金丝雀发布(即灰度发布)进行小规模验证,验证通过后再全量升级。
前提条件
已在ACK集群中安装MSE治理中心组件,并为ACK授予MSE治理中心的访问权限。具体操作,请参见ACK微服务应用接入MSE治理中心。
背景信息
金丝雀发布的过程如下:

- 初始状态:假设有2个服务Order-Service和Pay-Service,Order-Service作为Consumer服务会去调用Pay-Service提供的服务。在您没有接入MSE治理中心之前,Order-Service和Pay-Service都对应一个Deployment应用,并且没有设置任何标签。
- 部署灰度版本:为Pay-Service部署灰度版本,此时Pay-Service新建一个Deployment应用表示灰度版本,并设置标签。具体操作,请参见在ACK中为应用接入MSE微服务治理并设置标签。
说明 默认情况下,MSE治理中心会让100%的流量转发至没有打标签的Deployment应用。
- 设置流量规则:为Pay-Service设置流量规则:HTTP HEADER中env=test。此时满足该规则的流量会转发至灰度Deployment应用,其他流量转发至正常Deployment应用。
- 调整流量比例:为灰度版本调整流量比例,让更多的流量转发至灰度Deployment应用。
注意 满足流量规则的流量还是会转发至灰度Deployment应用,不满足流量规则的流量有20%的概率转发至灰度Deployment应用。
- 完成灰度发布:灰度验证完毕之后,将稳定版本的Deployment应用更新为最新的镜像,单击发布完成,此时100%的流量转发至稳定版本Deployment应用。
说明 建议您将灰度的Deployment应用副本数改为0,无需重复创建Deployment应用。
使用限制
金丝雀发布功能只适合在单个应用的金丝雀发布场景下使用,若有更复杂的场景,请使用标签路由。具体操作,请参见配置标签路由。
操作步骤
本文主要介绍的是配置流量规则的步骤,其他步骤请根据金丝雀发布页面的提示完成。
执行结果
金丝雀验证成功 :单击发布完成按钮,未打标版本的流量比例会被调整为100%,配置的流量规则会被暂时关闭。此时所有的流量都会被转发到未打标的Deployment应用。
说明 发布完成后,建议您将灰度的Deployment应用副本数设置为0,无需重复创建Deployment应用。
金丝雀验证失败:单击回滚按钮,灰度版本的流量比例会被调整为0%,配置的流量规则会被清除。此时所有的流量都会被转发到正常Deployment应用,然后可以删除灰度版本的应用。