
# （可选）配置工作负载标签实现灰度发布
灰度发布是服务发布策略之一，旨在通过调整流量分配权重，逐步将流量从旧版本引导到新版本实例上。服务发布升级过程中可以逐步验证版本是否符合预期，如果版本符合预期，则可以逐渐加大新版本实例流量占比，减小旧版本实例流量占比，直至将新版本服务权重增加到100，旧版本服务权重减少至0，完成从旧版本到新版本服务的引流。
图1灰度发布示意图   
![](https://support.huaweicloud.com/bestpractice-apig/zh-cn_image_0000002236449918.png "点击放大")
云容器引擎CCE工作负载根据Pod标签的标签选择器配置实现灰度发布，实现原理请参见[使用Service实现简单的灰度发布和蓝绿发布](https://support.huaweicloud.com/bestpractice-cce/cce_bestpractice_10002.html)，帮助用户实现新功能的快速上线与验证，进而完成流量引导与服务器切换。
下文完成特性从V1版本到V2版本的切换，保证服务升级的过程中流量平稳切换，通过灰度发布逐步将流量从V1版本迁移到V2版本。
1. 新建工作负载并设置"Pod标签"，且app值与已创建工作负载的app值一致。具体步骤请参考[已创建的工作负载](https://support.huaweicloud.com/bestpractice-apig/apig-bp-0058.html#apig-bp-0058__zh-cn_topic_0000001389171733_li205511159103215)。
   
   您可以在"高级配置 \> 标签与注释"中设置"Pod标签"，此处为"app=deployment-demo"，"version=v2"。如果您是通过导入YAML创建工作负载，也可以在yaml中添加"Pod标签"。
   
   
2. 调整Pod标签为"version= v1"的服务器分组的权重**。**
   
   1. 在API网关控制台的左侧导航栏上方选择实例。
   
   2. 在左侧导航栏中选择"API管理 \> API策略"。
   
   3. 在"负载通道"页签中，单击[已创建的负载通道名称](https://support.huaweicloud.com/bestpractice-apig/apig-bp-0059.html#apig-bp-0059__zh-cn_topic_0000001389171733_li127521942071)。
   
   4. 在"后端服务器地址"区域，单击"编辑"。
   
   5. 将"权重分配"改为"100"，并单击"确定"。 权重分配即为流量转发的权重。此时，全部流量都将转发到服务器分组"server_group_v1"中的实例IP上。
      
   
   
   
   
3. 创建Pod标签为"version= v2"的服务器分组并设置权重分配**。**
   
   1. 在"后端服务器地址"区域，单击"创建服务器分组"。
      表1服务器分组配置 
      | 参数      | 配置说明                    |
      |:---|:---|
      | 服务器分组名称 | 此处填写为"server_group_v2"。 |
      | 权重分配    | 此处填写为"1"。               |
      | 后端服务端口  | 此处填写为"80"。              |
      | 标签      | 此处选择Pod标签"version=v2"   |
         
      
   
   2. 单击"确定"。
   
   
   
   
4. 刷新后端服务器地址**。**
   
   通过刷新页面来刷新后端服务器的地址，负载通道将自动监测工作负载下的实例IP地址并动态添加到后端服务地址中。如下图所示，根据标签"app=deployment-demo"，"version=v2"能够自动匹配到[已创建工作负载]的实例IP，即后端服务器地址。
   图2自动匹配工作负载的实例IP   
   ![](https://support.huaweicloud.com/bestpractice-apig/zh-cn_image_0000002271249225.png "点击放大")
   此时流量权重分配到"server_group_v1"分组的比例为100/101（服务器分组权重/服务器分组权重之和），分配到"server_group_v2"分组的比例为1/101（服务器分组权重/服务器分组权重之和），将有小部分请求被引流到"server_group_v2"分组的新版本上。
   图3单击页面右上角编辑查看   
   ![](https://support.huaweicloud.com/bestpractice-apig/zh-cn_image_0000002236290102.png "点击放大")
   
   
5. 验证新特性通过灰度发布到V2版本是否运行稳定。
   
   您可以自行验证新版本功能是否符合预期，如果符合预期请执行[6]。否则，新特性发布失败。
   
   
6. 逐步调整不同版本服务器分组的权重配置**。**
   
   逐步减小"server_group_v1"分组的权重，增大"server_group_v2"分组的权重。重复[5]\~[6]，直到"server_group_v1"分组的权重为"0"，"server_group_v2"分组的权重为"100"。
   ![](https://support.huaweicloud.com/bestpractice-apig/zh-cn_image_0000002271329309.png "点击放大")
   如图，表示请求转发时，分配到服务器分组"server_group_v1"的比例为0，服务器分组"server_group_v2"的比例为100%，即请求将全部转发到服务器分组"server_group_v2"上，完成从"version=v1"的工作负载"deployment-demo"到"version=v2"的工作负载"deployment-demo2"之间的切换，进而实现了新特性从V1版本到V2版本的灰度发布。（注意：请求转发的流量权重分配比例可自行设置与调整）
   
   
7. 删除Pod标签为"version= v1"的服务器后端分组server_group_v1**。**
   
   现已将全部流量引导到"version= v2"的服务器后端分组的后端服务地址上，因此，可将V1版本所在服务器后端分组删除。
   1. 进入API网关控制台的负载通道详情页面，在"后端服务器地址"区域逐个将V1版本后端服务器地址列表中的IP地址移除。
   
   2. 然后单击"后端服务器地址"区域右侧的"移除"，删除"version= v1"的服务器后端分组。 保留Pod标签为"version= v2"的服务器后端分组"server_group_v2"分组。
      
   
   
   
   
