网格拓扑是一个服务网格可观测性工具,提供查看相关服务与配置的可视化界面。ASM从1.7.5.25版本开始支持内置网格拓扑。本文介绍如何通过ASM控制台开启网格拓扑的可观测性。

前提条件

步骤一:启用网格拓扑

新建ASM实例

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
  2. 网格管理页面,单击创建新网格
  3. 可观测性区域,选中开启采集 Prometheus 监控指标,按需选择Prometheus类型并进行相关操作。
    Prometheus类型操作
    ARMS Prometheus选中使用ARMS Prometheus采集监控指标,然后选中启用ASM网格拓扑提升网格可观测
    自建Prometheus选中集成自建Prometheus实现监控,然后选中启用ASM网格拓扑提升网格可观测,输入ASM网格拓扑使用的Prometheus服务地址(即自建Prometheus服务的访问地址)。
    说明
    • 选中开启采集 Prometheus 监控指标,表示开启采集服务网格实例指标功能,不会自动创建ARMS实例或者自建的Prometheus实例。
    • 取消选中开启采集 Prometheus 监控指标启用ASM网格拓扑提升网格可观测,表示关闭网格拓扑。
  4. 配置相关信息,然后在页面下方,单击创建服务网格

    关于配置项的说明,请参见创建ASM实例

使用已有ASM实例

ASM版本为1.12.4.50以下
  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择网格实例 > 基本信息,然后在页面右侧,单击功能设置
  3. 功能设置更新面板,选中开启采集 Prometheus 监控指标,按需选择Prometheus类型并进行相关操作。
    Prometheus类型操作
    ARMS Prometheus选中使用ARMS Prometheus采集监控指标,然后选中启用ASM网格拓扑提升网格可观测
    自建Prometheus选中集成自建Prometheus实现监控,然后选中启用ASM网格拓扑提升网格可观测,输入ASM网格拓扑使用的Prometheus服务地址(即自建Prometheus服务的访问地址)。
  4. 配置完成后,在功能设置更新面板下方,单击确定
ASM版本为1.12.4.50及以上
说明 网格拓扑依赖服务网格集成Prometheus监控指标。如果您尚未集成Prometheus实现网格监控,请先对Prometheus进行集成。具体操作,请参见集成ARMS Prometheus实现网格监控集成自建Prometheus实现网格监控
  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择可观测管理中心 > 网格拓扑,按照Prometheus类型进行相关操作。
    Prometheus类型操作
    ARMS Prometheus启用ASM网格拓扑区域,单击开始启用
    自建Prometheus启用ASM网格拓扑区域,输入ASM网格拓扑使用的Prometheus服务地址,然后单击开始启用

步骤二:访问网格拓扑

直接访问网格拓扑

如果您的ASM版本为1.12.4.50及以上,您可以选择自动创建SLB访问ASM网格拓扑,并直接访问网格拓扑服务。

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择可观测管理中心 > 网格拓扑
  3. 访问方式区域,进行如下配置。
    • ASM版本为1.15.3.120以下:选中自动创建公网负载均衡SLB访问ASM网格拓扑
    • ASM版本为1.15.3.120及以上:打开自动创建公网负载均衡SLB访问ASM网格拓扑右侧的开关,在弹出的对话框,单击确定

    开启访问网格拓扑后,服务网格将进入短暂的更新状态。

  4. 查看服务网格是否更新完成。
    1. 在左侧导航栏,选择网格实例 > 基本信息
    2. 基本信息区域,查看服务网格的状态

      状态更新中,表示正在更新;若状态运行中,表示更新完成。

  5. 网格拓扑页面的访问方式区域,单击点击此处在新页面访问ASM网格拓扑,进入网格拓扑的登录页面。

使用ASM网关访问网格拓扑

  1. 创建入口网关,并为入口网关添加支持网格拓扑访问的端口配置。具体操作,请参见创建入口网关服务使用KubeAPI管理入口网关

    端口配置的YAML示例如下。

    - name: http-kiali
      port: 20001
      protocol: TCP
      targetPort: 20001
    端口配置
  2. 使用以下YAML,创建网关规则。具体操作,请参见管理网关规则
    apiVersion: networking.istio.io/v1alpha3
    kind: Gateway
    metadata:
      name: kiali-gateway
      namespace: istio-system
    spec:
      selector:
        istio: ingressgateway
      servers:
        - hosts:
            - '*'
          port:
            name: http
            number: 20001
            protocol: HTTP
  3. 使用以下YAML,创建虚拟服务。具体操作,请参见管理虚拟服务
    apiVersion: networking.istio.io/v1alpha3
    kind: VirtualService
    metadata:
      name: kiali-vs
      namespace: istio-system
    spec:
      gateways:
        - kiali-gateway
      hosts:
        - '*'
      http:
        - route:
            - destination:
                host: kiali
                port:
                  number: 20001
  4. 登录网格拓扑。
    1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
    2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择网格实例 > 基本信息
    3. 配置信息区域,单击启用ASM网格拓扑右侧的通过入口网关访问,进入网格拓扑的登录页面。

步骤三:登录网格拓扑

您可以通过Token或者OIDC的方式登录网格拓扑。OIDC方式登录需ASM版本为1.15.3.120及以上。

通过Token方式登录网格拓扑

ASM版本为1.12.4.50以下

您可以登录ACK控制台获取Token,然后通过Token方式登录网格拓扑。

  1. 登录容器服务管理控制台,在左侧导航栏单击集群
  2. 集群列表页面,单击目标集群名称,然后在左侧导航栏,选择配置管理 > 保密字典
  3. 保密字典页面,命名空间选择istio-system,单击kiali-service-account-token-****,然后单击token行的token图标,复制Token。
  4. 在网格拓扑的登录页面,粘贴Token,单击Log in,进入网格拓扑控制台。
ASM版本为1.12.4.50及以上

您可以登录ASM控制台获取Token,然后通过Token方式登录网格拓扑。

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择可观测管理中心 > 网格拓扑
  3. 网格拓扑页面的访问方式区域,单击复制Token并在新页面打开ASM网格拓扑
  4. 在网格拓扑的登录页面,粘贴Token,单击登录,进入网格拓扑控制台。

通过OIDC方式登录网格拓扑

OIDC(OpenID Connect)是一种身份认证与授权的协议,通常用于实现单点登录(SSO)。您可以通过OIDC协议与IdP(身份提供商)对接,登录网格拓扑。使用该方式,ASM版本需为1.15.3.120及以上。关于升级ASM版本的具体操作,请参见升级ASM实例

  1. 配置IdP。具体操作,请参见ASM集成阿里云IDaaS实现网格内应用单点登录的步骤一和步骤二。
    登录 Redirect URI配置为网格拓扑的负载均衡SLB的IP访问地址(直接通过SLB访问网格拓扑)或者ASM网关的地址(使用ASM网关访问网格拓扑)。配置示例如下:
    • 如果通过SLB访问网格拓扑,且网格拓扑的负载均衡SLB的IP为xxx.xxx.xxx.xxx,则登录 Redirect URI配置为http://xxx.xxx.xxx.xxx:2000120001末尾不能携带//xxx等路径。
    • 如果通过ASM网关访问网格拓扑,且ASM网关的IP为yyy.yyy.yyy.yyy,则登录 Redirect URI配置为http://yyy.yyy.yyy.yyy:2000120001末尾不能携带//xxx等路径。
  2. 通过OIDC方式登录网格拓扑。
    1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
    2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择可观测管理中心 > 网格拓扑
    3. 登录鉴权方式区域,选中OIDC登录,配置相关信息,单击保存网格拓扑配置,然后单击在新页面打开ASM网格拓扑
    4. 在网格拓扑的登录页面,单击Login with OpenID,跳转到OIDC应用的登录页面进行登录。

FAQ

为什么使用ARMS Prometheus采集监控指标,网格拓扑无法加载?

如果您的服务网格ASM选择使用ARMS Prometheus采集监控指标,并为ARMS Prometheus实例开启了鉴权Token,网格拓扑将会无法访问您的ARMS Prometheus实例,造成网格拓扑无法加载。更多信息,请参见将阿里云Prometheus监控数据接入本地Grafana

如果遇到此问题,您可以选择将ARMS Prometheus鉴权Token配置到网格拓扑,以对接ARMS Prometheus实例。该操作需ASM版本为1.15.3.120及以上。如果您的ARMS Prometheus实例未开启鉴权Token,则无需操作。

  1. 登录ASM控制台,在左侧导航栏,选择服务网格 > 网格管理
  2. 网格管理页面,单击目标实例名称,然后在左侧导航栏,选择可观测管理中心 > 网格拓扑
  3. 对接ARMS Prometheus监控实例区域的文本框,输入ARMS Prometheus配置的鉴权Token,然后单击保存网格拓扑配置,为网格拓扑配置访问ARMS Prometheus实例的鉴权Token。