ASM网关提供了图形化创建目标规则和虚拟服务的功能,无需编写YAML文件,简化流量管理操作。本文介绍如何使用图形化的方式创建流量策略和路由策略。

前提条件

背景信息

本文以Reviews服务为例,使用图形化的方式设置服务的负载均衡、连接池等流量策略,流量策略创建成功后,将自动生成对应目标规则的YAML文件。以Bookinfo服务为例,使用图形化的方式为Bookinfo服务创建/productpage/login等路由策略,从而可以通过/productpage等路径访问到Bookinfo服务。

创建流量策略

  1. 导入上游服务。
    在ASM网关中导入服务,从而关联网关与服务。
    1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
    2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择ASM网关 > 入口网关
    3. 入口网关页面,单击目标网关的名称。
    4. 在网关概览页面左侧导航栏,单击上游服务
    5. 上游服务页面,单击导入服务
    6. 导入服务页面,选择命名空间,选中reviews服务,单击上游服务图标,然后单击确认
      导入服务
  2. 对服务进行版本管理。
    按版本给服务的实例进行分组,本文以reviews服务为例,将reviews服务分为v1、v2、v3。
    1. 上游服务页面,单击reviews服务右侧操作列下的版本管理
    2. 版本管理页面,单击添加版本,输入版本名称v1,单击添加标签,设置标签名version标签值v1
    3. 单击添加版本,输入版本名称v2,单击添加标签,设置标签名version标签值v2
    4. 再次单击添加版本,输入版本名称v3,单击添加标签,设置标签名version标签值v3,然后单击创建
      版本管理
  3. 创建流量策略。
    1. 上游服务页面,单击reviews服务右侧操作列下的流量策略
    2. 流量策略页面,单击添加策略,选择版本流量策略,选择v3版本,打开负载均衡开关,选择简单模式,设置均衡方式随机,然后单击提交
      流量策略
  4. 可选:查看流量策略创建成功后生成的目标规则的YAML文件。
    上游服务页面,单击reviews服务右侧操作列下的YAML,在预览面板查看YAML文件。
    说明 您也可以在网格详情页面左侧导航栏,选择流量管理中心 > 目标规则。在目标规则页面,单击目标规则右侧操作列下的查看YAML。在编辑对话框,查看生成的目标规则的YAML文件。
    apiVersion: networking.istio.io/v1beta1
    kind: DestinationRule
    metadata:
      name: reviews
      namespace: default
      labels:
        provider: asm
    spec:
      host: reviews
      subsets:
        - name: v1
          labels:
            version: v1
        - name: v2
          labels:
            version: v2
        - name: v3
          labels:
            version: v3
          trafficPolicy:
            loadBalancer:
              simple: RANDOM

创建路由策略

  1. 导入上游服务。
    在ASM网关中导入服务,从而关联网关与服务。
    1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
    2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择ASM网关 > 入口网关
    3. 入口网关页面,单击目标网关的名称。
    4. 在网关概览页面左侧导航栏,单击上游服务
    5. 上游服务页面,单击导入服务
    6. 导入服务页面,选择命名空间,选中productpage服务,单击上游服务图标,然后单击确认
  2. 创建路由策略。
    1. 创建/productpage路由。
      1. 在网关概览页面左侧导航栏,单击路由管理,然后单击创建
      2. 设置路由信息配置向导,进行相关配置,单击下一步路由管理
        配置项说明
        路由类型选择路由类型,本文配置为http
        命名空间选择命名空间,本文配置为default
        路由名称输入路由名称,本文配置为productpage-route
        描述输入路由描述,本文配置为productpage路由
        优先级路由配置存在优先级关系,优先级数字越小,表示优先级越高,如果URI被多个路由规则都能进行匹配,优先匹配高优先级的,本文配置为3
        域名选择域名,本文配置为*
        匹配请求的URL

        设置URL匹配,只有符合要求的URL才能路由到目标服务。

        打开匹配请求的URL开关,配置匹配方式精确匹配内容/productpage
        说明 您也可以单击添加Header匹配规则,设置Header匹配。
      3. 设置路由目的地配置向导,单击添加路由目的地,进行相关配置,然后单击下一步路由管理2
        配置项说明
        选择上游服务设置路由策略生效的服务。本文选择productpage
        端口非必填项。设置上游服务中暴露出来的指定端口。上游服务可能暴露多个端口,如果有多个端口,需要进行指定。
        版本设置路由策略生效的版本。
        权重设置路由的目标服务的流量权重。
      4. 高级选项配置向导,打开故障注入开关,打开请求延时开关,设置延时值4s故障注入百分比100,单击下一步高级选项
      5. 路由配置确认配置向导,确认配置的路由信息。确认无误后,单击创建
    2. 创建/static路由。
      1. 路由管理页面,单击创建
      2. 设置路由信息配置向导,进行相关配置,单击下一步static
        配置项说明
        路由类型选择路由类型,本文配置为http
        命名空间选择命名空间,本文配置为default
        路由名称输入路由名称,本文配置为static
        描述输入路由描述,本文配置为static资源
        优先级路由配置存在优先级关系,优先级数字越小,表示优先级越高,如果URI被多个路由规则都能进行匹配,优先匹配高优先级的,本文配置为0
        域名选择域名,本文配置为*
        匹配请求的URL

        设置URL匹配,只有符合要求的URL才能路由到目标服务。

        打开匹配请求的URL开关,配置匹配方式前缀匹配内容/static

      3. 创建/static路由的后续步骤与创建/productpage路由相同,具体操作,请参见创建productpage路由
    3. 创建/login路由。
      1. 路由管理页面,单击创建
      2. 设置路由信息配置向导,进行相关配置,然后单击下一步login
        配置项说明
        路由类型选择路由类型,本文配置为http
        命名空间选择命名空间,本文配置为default
        路由名称输入路由名称,本文配置为login
        描述输入路由描述,本文配置为登录请求路由
        优先级路由配置存在优先级关系,优先级数字越小,表示优先级越高,如果URI被多个路由规则都能进行匹配,优先匹配高优先级的,本文配置为0
        域名选择域名,本文配置为*
        匹配请求的URL

        设置URL匹配,只有符合要求的URL才能路由到目标服务。

        打开匹配请求的URL开关,配置匹配方式前缀匹配内容/login

      3. 创建/login路由的后续步骤与创建/productpage路由相同,具体操作,请参见创建productpage路由
    4. 创建/logout路由。
      1. 路由管理页面,单击创建
      2. 设置路由信息配置向导,进行相关配置,然后单击下一步logout
        配置项说明
        路由类型选择路由类型,本文配置为http
        命名空间选择命名空间,本文配置为default
        路由名称输入路由名称,本文配置为logout
        描述输入路由描述,本文配置为登出路由
        优先级路由配置存在优先级关系,优先级数字越小,表示优先级越高,如果URI被多个路由规则都能进行匹配,优先匹配高优先级的,本文配置为0
        域名选择域名,本文配置为*
        匹配请求的URL

        设置URL匹配,只有符合要求的URL才能路由到目标服务。

        打开匹配请求的URL开关,配置匹配方式前缀匹配内容/logout

      3. 创建/logout路由的后续步骤与创建/productpage路由相同,具体操作,请参见创建productpage路由
    5. 创建/api/v1/products路由。
      1. 路由管理页面,单击创建
      2. 设置路由信息配置向导,进行相关配置,然后单击下一步前缀
        配置项说明
        路由类型选择路由类型,本文配置为http
        命名空间选择命名空间,本文配置为default
        路由名称输入路由名称,本文配置为products-route
        描述输入路由描述,本文配置为product信息
        优先级路由配置存在优先级关系,优先级数字越小,表示优先级越高,如果URI被多个路由规则都能进行匹配,优先匹配高优先级的,本文配置为0
        域名选择域名,本文配置为*
        匹配请求的URL

        设置URL匹配,只有符合要求的URL才能路由到目标服务。

        打开匹配请求的URL开关,配置匹配方式前缀匹配内容/api/v1/products

      3. 创建/api/v1/products路由的后续步骤与创建/productpage路由相同,具体操作,请参见创建productpage路由
  3. 验证路由策略是否生效。
    1. 在谷歌浏览器地址栏,输入http://{入口网关的IP地址}/productpage
      示例效果如下。访问服务
    2. 在Bookinfo页面右上角,单击Sign in
    3. Please sign in输入任意账号和密码,单击Sign in
      可以看到能够正常登录到Bookinfo。登录bookinfo

      您还可以自行使用/logout/static/api/v1/products访问Bookinfo服务进行验证。

    4. 在谷歌浏览器右上角,单击更多图标,选择更多工具 > 开发者工具
    5. 刷新http://{入口网关服务的IP地址}/productpage
      Network页签,可以看到约4s的延迟。延迟
  4. 可选:查看路由策略创建成功后生成的虚拟服务的YAML文件。
    1. 在网格详情页面左侧导航栏,选择流量管理中心 > 虚拟服务
    2. 虚拟服务页面,单击目标虚拟服务右侧操作列下的查看YAML
    3. 编辑对话框,查看生成的虚拟服务的YAML文件。确认无误后,单击确定

相关操作

查看服务详情

查看导入服务的是否注入Sidecar、地域等信息。

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择ASM网关 > 入口网关
  3. 入口网关页面,单击目标网关的名称。
  4. 在网关概览页面左侧导航栏,单击上游服务
  5. 上游服务页面,单击目标服务右侧操作列下的服务详情
  6. 服务详情页面,查看服务是否注入Sidecar、地域等信息。

路由下线

下线路由策略,使该路由策略失效。

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择ASM网关 > 入口网关
  3. 入口网关页面,单击目标网关的名称。
  4. 在网关概览页面左侧导航栏,单击路由管理
  5. 路由管理页面,单击login路由右侧操作列下的下线
  6. 确认对话框,单击确定
  7. 验证路由下线是否成功。
    1. 在谷歌浏览器地址栏,输入http://{入口网关的IP地址}/productpage
    2. 在Bookinfo页面右上角,单击Sign in
    3. Please sign in输入任意账号和密码,单击Sign in
      路由下线

      可以看到页面显示“找不到网页”,说明login路由策略失效,路由下线成功。

说明 您可以通过以下方式上线路由策略,使路由策略中重新生效:

路由管理页面,单击目标路由右侧操作列下的上线,然后在确认对话框,单击确定。