自适应配置推送优化功能可以根据网格内服务的访问日志分析服务之间的依赖关系,自动为服务生成Sidecar资源,优化该服务工作负载的配置推送。本文介绍如何使用自适应配置推送优化提升控制平面推送效率。

前提条件

已部署Istio资源实现流量路由

背景信息

在默认情况下,由于不能确定网格内服务之间的调用依赖关系,Sidecar的配置中保存了数据平面内所有服务的信息。每次针对控制平面或数据平面的修改(例如在控制平面新建一条虚拟服务规则),都会导致控制平面向数据平面的所有Sidecar推送新的配置。

您可以通过开启自适应配置推送优化功能,为服务自动创建用于配置推送优化的Sidecar资源。功能开启后,集群中会部署名为istio-axds-egressgateway的出口网关,所有HTTP流量初始都将导向该出口网关,并通过网关记录的访问日志自动分析服务之间的依赖关系,无需您手动管理。关于应用Sidecar资源的配置推送优化效果,请参见应用Sidecar资源后的配置推送优化效果

注意事项

  • ASM实例需为1.15.3.63及以上版本。关于升级实例的具体操作,请参见升级ASM实例
  • 自适应配置推送优化功能仅支持基于HTTP协议访问的服务。

步骤一:开启自适应配置推送优化功能

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择网格优化中心 > 自适应配置推送优化
  3. 自适应配置推送优化页面,打开启用自适应配置推送优化开关,在确认对话框,单击确定
    单击 确定后,在 启用自适应配置推送优化开关下方,会显示 更新中。更新完毕后,您可以看到 启用自适应配置推送优化开关已打开,在开关下方会显示可自适应优化的命名空间列表。

步骤二:为命名空间开启自适应配置推送优化

为命名空间开启自适应配置推送优化后,命名空间内的服务都将自动地进行基于Sidecar资源的配置推送优化。您也可以在服务的annotations中增加asm.alibabacloud.com/asm-adaptive-xds: true注解,单独为服务启用自适应配置推送优化。

  1. 在网格详情页面左侧导航栏,选择网格优化中心 > 自适应配置推送优化
  2. 自适应配置推送优化页面的选择自适应优化命名空间列表,在目标服务所在的命名空间右侧(本文以default为例),打开状态开关,然后在确认对话框,单击确定
  3. 在网格详情页面左侧导航栏,选择流量管理中心 > Sidecar资源
  4. Sidecar资源页面,查看Sidecar资源详情。
    您可以看到自动创建且名称以 axds开头的Sidecar资源。每个Sidecar资源对应已部署的 Bookinfo应用中的一个服务。 Sidecar资源

步骤三:访问应用,触发自适应配置推送优化

  1. 获取入口网关服务的IP地址。
    1. 登录容器服务管理控制台,在左侧导航栏中选择集群
    2. 集群列表页面中,单击目标集群名称,然后在左侧导航栏中,选择网络 > 服务
    3. 服务页面上方,选择命名空间istio-system,在istio-ingressgateway服务右侧的外部端点列下方,查看80端口的IP地址。
      80端口的IP地址即为入口网关服务的IP地址。
  2. 在浏览器地址栏,输入http://{入口网关服务的IP地址}/productpage地址,访问Bookinfo应用。
  3. 查看自适应优化的Sidecar资源。
    1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
    2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择流量管理中心 > Sidecar资源
    3. Sidecar资源页面的axds-productpage右侧,单击操作列下方的查看YAML
      YAML示例如下。
      apiVersion: networking.istio.io/v1beta1
      kind: Sidecar
      metadata:
        annotations:
          adapted-svc: productpage.default.svc.cluster.local
        labels:
          asm-adaptive-xds-system: 'true'
          asm-system: 'true'
          provider: asm
        name: axds-productpage
        namespace: default
      spec:
        egress:
          - hosts:
              - default/details.default.svc.cluster.local
              - default/kubernetes.default.svc.cluster.local
              - default/reviews.default.svc.cluster.local
              - istio-system/*
              - kube-system/*
        workloadSelector:
          labels:
            app: productpage

      从上述示例代码中可以看出:在访问Bookinfo应用后,为优化productpage服务生成的Sidecar资源axds-productpage,已经自适应地添加了productpage服务所依赖的details服务与reviews服务,无需您手动配置。

相关操作

关闭自适应配置推送优化功能

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择网格优化中心 > 自适应配置推送优化
  3. 自适应配置推送优化页面,关闭启用自适应配置推送优化开关,在确认对话框,单击确定
    单击 确定后,在 启用自适应配置推送优化开关下方,会显示 更新中。更新完毕后,您可以看到 启用自适应配置推送优化开关已关闭。
  4. 在网格详情页面左侧导航栏,选择流量管理中心 > Sidecar资源
    您可以看到由自适应配置推送优化功能创建出的Sidecar资源已被删除。