应用服务网格 ASM-为服务添加灰度版本:创建金丝雀发布

时间:2023-11-01 16:16:10

创建金丝雀发布

  1. 登录应用服务网格控制台,在左侧导航栏中选择“灰度发布”。在金丝雀发布下,单击“创建”。
  2. 配置灰度版本基本信息。

    • 灰度发布服务

      单击“选择服务”,选择添加灰度版本的服务。

    • 部署集群

      灰度发布服务所属的集群。

    • 发布任务名称

      系统自动生成,可根据实际需求进行修改。

    • 版本号

      新增服务中灰度版本号。

    • 版本描述

      灰度版本描述信息。

  3. 根据界面提示的流程图,熟悉灰度发布版本流程,单击“创建”。
  4. 部署灰度版本。

    • 实例数量

      灰度版本的实例数量。灰度版本可以有一个或多个实例,用户可根据实际需求进行修改。每个灰度版本的实例都由相同的容器部署而成。

    • 镜像名称

      默认为该服务的镜像。

    • 镜像版本

      请选择需要添加灰度的镜像版本。

  5. 单击“部署灰度版本”,灰度版本开始创建。

    请确保灰度版本的实例状态为正常时,再开始下一步进行灰度策略的配置。

  6. 单击“配置灰度策略”,进行灰度策略配置(可选)。

    策略类型:分为“基于请求内容发布”和“基于流量比例发布”两种类型,通过页签选择确定。

    • 基于请求内容发布
      对当前版本配置相应的请求内容规则,服务流量在满足此规则的情况下,会走此版本。例如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)%的流量会走向默认版本,即从默认版本分走一部分流量。

      • 灰度策略规则描述:当前服务的流量转发的规则描述信息及Yaml的查看。
    • 如果当前服务已有灰度版本并配置了灰度策略,则策略类型不可选(灰度版本只能配置一种策略类型),默认为已经配置的策略类型。
    • 基于请求内容发布策略只对直接访问的入口服务有效。如果希望对所有服务有效,需要业务代码对HTTP请求的header信息进行传播。

      例如:如果您基于review组件,配置了基于请求内容的灰度发布策略,通过访问productpage组件的界面,是无法看到效果的。

      原因为,您的客户端访问productpage组件携带了HTTP请求的header信息,而productpage组件请求reviews组件时,将这些header信息丢失了(详情可参考如何使用Istio调用链埋点),从而失去了基于请求内容的灰度发布效果。

  7. 设置完成后,单击“策略下发”

    灰度策略的生效需要几秒时间,您可以在监测灰度运行状态页面,观察灰度版本的运行状态。

support.huaweicloud.com/usermanual-asm/asm_01_0009.html