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

前提条件

背景信息

本文介绍通过ASM控制台开启或关闭Kiali for ASM。如果您希望以应用目录的方式安装Kiali for ASM,请参考通过应用目录开启Kiali的可观测性
注意 不可以同时使用应用目录和ASM控制台安装Kiali for ASM。

启用Kiali for ASM

在创建ASM实例时启用Kiali for ASM

  1. 登录ASM控制台
  2. 在左侧导航栏,选择服务网格 > 网格管理
  3. 网格管理页面单击创建新网格
  4. 在创建新网格面板选中开启采集Prometheus监控指标,然后选中启用Kiali,其他参数配置,请参见创建ASM实例,最后单击确定
    说明
    • 选中开启采集Prometheus监控指标,只是开启采集服务网格实例指标功能,并不会自动创建ARMS实例或者自建的Prometheus实例。
    • 去掉选中开启采集Prometheus监控指标启用Kiali,就可以关闭Kiali for ASM。此时再重新开启Kiali for ASM,将会是全新的Kiali for ASM。

在编辑ASM实例时启用Kiali for ASM。

  1. 登录ASM控制台
  2. 在左侧导航栏,选择服务网格 > 网格管理
  3. 网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理
  4. 在网格管理详情页面右上角单击功能设置
  5. 功能设置更新对话框中选中开启采集Prometheus监控指标,然后选中启用Kiali,最后单击确定
    说明 去掉选中开启采集Prometheus监控指标启用Kiali,就可以关闭Kiali for ASM。此时再重新开启Kiali for ASM,将会是全新的Kiali for ASM。

访问Kiali for ASM

使用Ingress Gateway访问Kiali for ASM

  1. 添加入口网关服务。具体操作,请参见添加入口网关服务自定义入口网关服务
  2. 为入口网关添加以下端口配置,以支持Kiali访问。具体操作,请参见修改入口网关服务
    - name: http-kiali
      port: 20001
      protocol: TCP
      targetPort: 20001
    Kiali
  3. 创建Gateway,以下为Gateway配置。具体操作,请参见管理Gateway
    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
  4. 创建VirtualService,以下为VirtualService。具体操作,请参见管理VirtualService
    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
    在网格管理详情页面基本信息区域启用Kiali右侧显示通过入口网关访问链接,单击该链接,即可访问启用Kiali。

使用Service访问Kiali for ASM

  1. 通过kubectl连接Kubernetes集群
  2. 部署Service。
    1. 创建service.yaml
      apiVersion: v1
      kind: Service
      metadata:
        name: kiali-svc
        namespace: istio-system
        labels:
          app: kiali-svc
      spec:
        ports:
          - name: http
            port: 20001
            targetPort: 20001
            protocol: TCP
        selector:
          istio: kiali
        type: LoadBalancer
    2. 执行以下命令,部署Service。
      kubectl apply -f service.yaml