
# 灰度版本基本操作
您可以对现有的服务进行多个版本的管理，针对不同版本配置不同的策略，从而达到流量管理的目的。
#### 使用说明
对灰度版本的相关基本操作，其原理是修改Istio的destinationrule和virtualservice两个资源的配置信息，修改完成后，需要等待10秒左右，新的策略规则才会生效。
#### 为灰度版本添加灰度策略
如果您在添加灰度版本时，未配置灰度策略，可以基于以下步骤创建策略。
1. 登录[应用服务网格控制台](https://console.huaweicloud.com/istio/?locale=zh-cn)，在左侧导航栏中选择"灰度发布"。
2. 单击已创建灰度任务的名称，进入查看灰度版本状态页面。
3. 单击"查看/配置灰度策略"。在灰度策略配置中，单击策略类型下的"基于请求内容"策略或"基于流量比例"策略。
   
   - **基于请求内容发布**
     对当前版本配置相应的请求内容规则，服务流量在满足此规则的情况下，会走此版本。例如http请求，请求头cookie必须满足"访问条件"走版本A。
     - Cookie内容：
       - 完全匹配：当且仅当表达式完全符合此情况时，流量才会走到这个版本
       
       - 正则匹配：此处需要您使用正则表达式来匹配相应的规则
        
     
     - 自定义Header：
       - 完全匹配：当且仅当表达式完全符合此情况时，流量才会走到这个版本
       
       - 正则匹配：此处需要您使用正则表达式来匹配相应的规则 可以自定义请求头的key和value，value支持完全匹配和正则匹配。
         
        
     
     - 允许访问的操作系统：请选择允许访问的操作系统。
     
     - 允许访问的浏览器：请选择允许访问的浏览器。
     
     - 灰度策略规则描述：当前服务的流量转发的规则描述信息及Yaml的查看。
       
   
   - **基于流量比例发布**
     对当前版本配置相应的流量权重，服务流量将会按照权重比率以对应的概率分发当前版本。例如10%的流量走版本A，90%的流量走版本B。
     - 流量配比：根据输入的流量配比来确定流量分发的比重。 范围限制为\[0,默认版本权重w\]，例如，当您配置为10，则10%的服务流量会走向此版本，(w-10)%的流量会走向默认版本，即从默认版本分走一部分流量。
       
     
     - 灰度策略规则描述：当前服务的流量转发的规则描述信息及Yaml的查看。
       
   
   
   
   
4. 单击"策略下发"，灰度策略会自动生效。
 
#### 修改版本的灰度策略
- 修改基于流量比例的策略： 基于流量比例的策略（又称为AB TEST策略）所有版本的权重之和为100，即：假设默认版本的权重为x，当前待修改版本的权重为y，则x+y=100。
  当您此时将待修改版本的权重从y改成y1，则默认版本的权重会自动改为x-y1+y，即待修改版本的权重会影响到默认版本的权重。
  
- 修改基于请求内容的策略： 基于请求内容的策略（又称为金丝雀策略）会遍历除默认版本外的全部金丝雀规则，如果满足某个版本的规则，则流量走向此版本，如果全部不满足，则流量会走到默认版本，即：假设当您此时将待修改版本的匹配策略为x。
  当您此时将待修改版本的匹配策略从x改成x1，则原本满足x规则的流量将会走到默认版本，而满足新规则x1的流量将会走到当前的待修改版本。
  
 
#### 切换灰度策略类型
您可以在"基于请求内容"的策略和"基于流量比例"的策略之间切换。策略完成切换后，原本配置的规则将全部失效，所有的流量，会根据配置的新策略重新分配。
![](https://support.huaweicloud.com/usermanual-asm/public_sys-resources/notice_3.0-zh-cn.png)
只有**发布中**的任务才支持灰度策略变更，版本发布完成后（即新版本完全接管旧版本流量，且旧版本已下线），将不支持重新配置灰度策略。
1. 登录[应用服务网格控制台](https://console.huaweicloud.com/istio/?locale=zh-cn)，在左侧导航栏中选择"灰度发布"。
2. 单击已创建灰度版本的名称。
3. 在监测灰度运行状态页面，单击"查看/配置灰度策略"。
4. 参照[配置灰度策略]重新配置灰度策略。
5. 配置完成后，单击"策略下发"。
#### 切为默认流量版本
执行某个版本（如V2版本）后的"接管所有流量"，V2版本将获取到原默认版本的全部流量。原默认版本流量将变为0。
#### 下线灰度版本
如果下线了原默认版本，则该版本的流量会被新创建的灰度版本完全接管。
1. 登录[应用服务网格控制台](https://console.huaweicloud.com/istio/?locale=zh-cn)，在左侧导航栏中选择"灰度发布"。
2. 单击已创建灰度任务的名称。
3. 单击待下线版本后的"版本下线"，下线该版本。
 
