Kiali for ASM是一个服务网格可观测性工具,提供了查看相关服务与配置的可视化界面。您可以在ACK的应用目录页面开启Kiali的可观测性。本文介绍如何通过应用目录开启Kiali的可观测性。

前提条件

步骤一:安装Kiali for ASM

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,选择市场 > 应用目录
  3. 阿里云应用页签下单击运维/可观测性,找到ack-kiali,然后单击ack-kiali
  4. 应用目录 - ack-kiali页面右侧的创建区域选择目标集群,单击创建
    在控制台左侧导航栏中,单击集群。在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。在集群管理页左侧导航栏中,单击工作负载。单击容器组页签,您可以在容器组页签下查看到运行正常的Kiali Pod。

步骤二:部署Bookinfo

  1. 执行以下命令,部署Bookinfo。
    # ISTIO_HOME: istio所在路径
    # KUBE_CONFIG: ack实例kubeconfig路径
    # MESH_CONFIG: servicemsh实例kubeconfig路径
    cd $ISTIO_HOME
    alias k="kubectl --kubeconfig $KUBE_CONFIG"
    alias m="kubectl --kubeconfig $MESH_CONFIG"
    k label namespace default istio-injection=enabled
    # 部署数据平面
    k apply -f samples/bookinfo/platform/kube/bookinfo.yaml
    # 验证从ratings pod请求productpage service
    k exec "$(k get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c ratings -- curl -s productpage:9080/productpage | grep -o "<title>.*</title>"
    # 部署控制平面
    m apply -f samples/bookinfo/networking/bookinfo-gateway.yaml
    # 获取入口网关IP
    INGRESS_HOST=$(k -n istio-system get service istio-ingressgateway -o jsonpath='{.status.loadBalancer.ingress[0].ip}')
    echo "http://$INGRESS_HOST/productpage"
  2. 执行以下命令,持续请求Bookinfo,用于后续验证Kiali for ASM的可观测性。
    说明 在键盘上键入Ctrl+C,可以结束请求Bookinfo。
    echo "http://$INGRESS_HOST/productpage"
    siege -c 5 http://$INGRESS_HOST/productpage

步骤三:开启Prometheus

  1. 登录ASM控制台
  2. 在左侧导航栏,选择服务网格 > 网格管理
  3. 网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理
  4. 在网格实例管理页面单击右上角的功能设置
  5. 功能设置更新面板中选中开启采集Prometheus监控指标,单击确定
    当网格实例管理页面基本信息区域的状态显示运行中,再在控制平面区域单击EnvoyFilter页签,可以看到自动生成和采集指标相关的EnvoyFilter配置列表。enovy
  6. 执行以下命令,验证Envoy是否已经采集相关监控指标。若返回数据,则说明Envoy已采集相关监控指标。若没有返回数据,则说明Envoy没有采集相关监控指标。
    说明 执行以下命令,若发现Envoy没有采集相关监控指标,请检查自建Prometheus或集成ARMS Prometheus。具体操作,请参见集成自建Prometheus实现网格监控集成ARMS Prometheus实现网格监控
    k exec "$(k get pod -l app=ratings -o jsonpath='{.items[0].metadata.name}')" -c istio-proxy -- curl -s localhost:15090/stats/prometheus |grep istio_requests_total

步骤四:访问Kiali

通过ACK控制台获取Token,然后登录Kiali。

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群管理页左侧导航栏中,单击配置管理
  5. 配置管理页面左上角设置命名空间为istio-system,然后单击保密字典
  6. 保密字典页面单击kiali-token-5zv74,单击token行的token,获取Token。
  7. 在Kiali控制台登录页面输入Token,单击log in,登录Kiali控制台。

通过命令行获取Token,然后登录Kiali。

  1. 执行以下命令,获取Token。
    alias k="kubectl --kubeconfig $USER_CONFIG"
    k get secrets -o jsonpath="{.items[?(@.metadata.annotations['kubernetes\.io/service-account\.name']=='kiali')].data.token}" -n istio-system | base64 --decode
  2. 在Kiali控制台登录页面输入Token,单击log in,登录Kiali控制台。

验证Kiali for ASM的可观测性

在Kiali控制台单击Graph,看到以下页面,说明成功通过ASM实现Kiali for ASM的可观测性。可观测性