1.4 灰度发布
1.4.2 为服务添加灰度版本
一个服务仅支持发布一个灰度版本,并支持为版本添加灰度策略。
基本概念
● 灰度版本
一个服务仅支持发布一个灰度版本,可以对灰度版本配置相应的灰度策略。
● 灰度策略
当您需要在生产环境发布一个新的待上线版本时,您可以选择添加一个灰度版 本,并配置相应的灰度策略,将原有的生产环境的默认版本的流量引流一部分至 此。经过评估稳定后,可以将此灰度版本接管所有流量,下线原来的版本,从而 接管原有的生产环境的版本上的流量。
创建金丝雀发布
步骤1 登录应用服务网格控制台,在左侧导航栏中选择“灰度发布”。在金丝雀发布下,单 击“创建”。
步骤2 配置灰度版本基本信息。 版本。例如http请求,请求头cookie必须满足“访问条件”走版本A。
– Cookie内容:
▪
完全匹配:当且仅当表达式完全符合此情况时,流量才会走到这个版 本。▪
正则匹配:此处需要您使用正则表达式来匹配相应的规则。– 自定义Header:
▪
完全匹配:当且仅当表达式完全符合此情况时,流量才会走到这个版 本。▪
正则匹配:此处需要您使用正则表达式来匹配相应的规则。可以自定义请求头的key和value,value支持完全匹配和正则匹配。
– 允许访问的操作系统:请选择允许访问的操作系统,包括iOS、android、
windows、macOS。
– 允许访问的浏览器:请选择允许访问的浏览器,包括Chrome、IE。
– 灰度策略规则描述:当前服务的流量转发的规则描述信息及Yaml的查看。
● 基于流量比例发布
对当前版本配置相应的流量权重,服务流量将会按照权重比率以对应的概率分发 当前版本。例如10%的流量走版本A,90%的流量走版本B。
– 版本流量配比:根据输入的流量配比来确定流量分发的比重。
范围限制为[0,默认版本权重w]。例如,当您配置为10,则10%的服务流量会 走向此版本,(w-10)%的流量会走向默认版本,即从默认版本分走一部分流 量。 代码对HTTP请求的header信息进行传播。
例如:如果您基于review组件,配置了基于请求内容的灰度发布策略,通过访问 productpage组件的界面,是无法看到效果的。
原因为,您的客户端访问productpage组件携带了HTTP请求的header信息,而productpage 组件请求reviews组件时,将这些header信息丢失了(详情可参考如何使用Istio调用链埋 点),从而失去了基于请求内容的灰度发布效果。
● 实例数量
对灰度版本的相关基本操作,其原理是修改Istio的destinationrule和virtualservice两个 资源的配置信息,修改完成后,需要等待10秒左右,新的策略规则才会生效。 版本。例如http请求,请求头cookie必须满足“访问条件”走版本A。
– Cookie内容:
▪
完全匹配:当且仅当表达式完全符合此情况时,流量才会走到这个版本▪
正则匹配:此处需要您使用正则表达式来匹配相应的规则 – 自定义Header:▪
完全匹配:当且仅当表达式完全符合此情况时,流量才会走到这个版本▪
正则匹配:此处需要您使用正则表达式来匹配相应的规则可以自定义请求头的key和value,value支持完全匹配和正则匹配。
– 允许访问的操作系统:请选择允许访问的操作系统。