云容器引擎 CCE-使用ASM实现灰度发布和蓝绿发布:步骤3:实现灰度发布
步骤3:实现灰度发布
本步骤将为Bookinfo应用的“reviews”服务添加新的灰度版本,并配置相应的灰度策略,将原有生产环境的默认版本的流量引流一部分到新版本中。
下面将以为“reviews”服务添加一个v3新版本,且v3新版本接收Bookinfo应用的20%流量为例进行配置。
部署灰度版本
- 在左侧导航中选择“灰度发布”,在金丝雀发布下,单击“创建”。
- 配置灰度版本发布基本信息,单击“创建”。
- 灰度发布服务:单击“选择服务”,选择reviews,单击“确定”。
- 部署集群:选择网格所在集群。
- 发布任务名称:用户自定义,可直接采用默认值。此处设置为reviews-v3。
- 版本号:配置为v3。
- 版本描述:可不填写。
- 部署灰度版本。
- 实例数量:使用默认。
- 实例配置:镜像版本选择1.5.2,其他参数保持默认。
- 单击“部署灰度版本”,待版本启动进度为100%,表明灰度版本部署成功。
图6 查看灰度版本状态
配置灰度策略
为灰度版本设置灰度策略,灰度版本会根据配置的流量配比引流老版本中的部分或全部流量。
- 灰度版本部署成功后,单击“配置灰度策略”。
- 设置灰度策略。
策略类型分为“基于流量比例”和“基于请求内容”,通过页签选择确定。
- 基于流量比例:根据流量比例配置规则,将从原版本中切分指定比例的流量到灰度版本。例如80%的流量走原版本,20%的流量走灰度版本。
- 基于请求内容:根据请求内容配置规则,只有请求内容中满足特定条件的流量会切分到灰度版本上。例如只有在Windows操作系统上的用户可以访问灰度版本。
以“基于流量比例”为例,且v3版本流量配比为20%。更多策略内容请参见为服务添加灰度版本。
图7 灰度策略
- 单击“策略下发”。
灰度策略的生效需要几秒的时间,您需要在“监测灰度运行状态”页面开通免费体验APM,或者购买APM套餐包,否则无法观测到原版本和灰度版本的流量监控数据。
图8 开通免费体验APM
监测灰度运行状态
- 在“服务列表”页面,单击productpage服务中的“访问地址”。不断刷新页面,页面在v1和v3版本之间来回切换。
图9 v1版本页面
图10 v3版本页面
- 您也可以在一台已连接公网的机器上执行如下命令,持续访问productpage服务。
while true;do wget -q -O- http://ip:port/productpage; done
返回控制台的“监测灰度运行状态”页面查看v1和v3版本的实时流量监控情况。
图11 流量监控详情
- 在“流量监控”页面,您可以查看Bookinfo应用各微服务之间的实时拓扑。ASM提供的流量监控功能,可监控微服务之间的拓扑、会话请求调用链、各环节耗时和RPS、RT等性能状态。
图12 流量监控拓扑
从拓扑图可以看出,reviews-v1和reviews-v3服务的调用次数分别为706和167,比例大致接近4:1,符合设定的流量比例策略。成功实现了灰度发布。
灰度版本切换
确认v3版本能够承接v1的所有流量后,即可将v1流量全部切换到v3。
- 在“灰度发布”页面,单击灰度任务“reviews-v3”。
- 单击v3版本后的“接管所有流量”。
图13 接管所有流量
- 单击“确定”。
刷新页面,查看流量切换情况,数据每隔5秒会刷新一次。图14 v3接收全部流量
在Bookinfo应用页面,不断刷新页面,页面仅显示v3版本信息,即星形图标全部为红色。
图15 v3版本页面
将原版本下线
v3承接v1版本所有流量后,即可删除v1版本,释放v1版本的资源。
- 在“灰度发布”页面,单击灰度任务“reviews-v3”。
- 在“监测灰度运行状态”页面中,当v3版本中的流量占比为100%时,表明v3已承接v1所有流量。单击v1版本后的“版本下线”。
- 确认无误后,输入“DELETE”,单击“确定”。
下线服务版本,会将包含的工作负载和Istio相关配置资源全部删除。