ASM提供了诊断工具asmctl,用于检测ASM存在的配置问题。本文介绍如何安装诊断工具asmctl,以及使用诊断工具asmctl连接集群和ASM。

兼容性说明

ASM不保证兼容社区Istio社区诊断工具Istioctl,但是ASM提供诊断工具asmctl,该工具当前支持Istioctl部分命令。

诊断工具asmctl支持在以下版本的ACK集群和ASM中使用:
  • v1.8.6.49-gda24841c-aliyun及以上版本的ASM标准版。
  • v1.20.4-aluyun-1及以上版本的ACK Pro托管版集群。

目前,不保证在v1.8.6.49-gda24841c-aliyun以下ASM标准版中使用asmctl时,所有命令的可用性。

安装asmctl

  1. 下载asmctl二进制可执行文件。不同操作系统文件不同,请根据实际情况选择。
  2. 设置asmctl运行环境。
    1. 执行以下命令,创建.istioctl/bin目录。
      # 可以将asmctl与istioctl放在同一目录下,方便管理。
      # 若已按istio官网方式安装istioctl,则此目录无需创建。
      mkdir $HOME/.istioctl/bin
    2. 执行以下命令,将asmctl二进制可执行文件移动到.istioctl/bin目录下。
      # 运行时注意将$PATH_TO_ASMCTL替换为asmctl所在路径。
      mv $PATH_TO_ASMCTL/asmctl $HOME/.istioctl/bin/asmctl
    3. 执行以下命令,将asmctl所在路径添加到PATH。
      # 将asmctl所在路径添加到PATH。                                                                   
      export PATH=$PATH:$HOME/.istioctl/bin
    4. 执行以下命令,为asmctl增加可执行权限。
      # 为asmctl增加可执行权限。
      chmod +x ".istioctl/bin/asmctl"

使用诊断工具asmctl

您需要配置集群连接凭证和服务网格连接凭证,您才可以使用诊断工具asmctl检测服务网格和集群。集群和服务网格连接凭证默认放在$HOME/.kube/config$HOME/.kube/asmconfig,您也可以通过--kubeconfig-c自定义集群凭证位置,通过--asmconfig-m自定义服务网格凭证位置。关于asmctl常用命令,请参见诊断工具asmctl常用命令

使用诊断工具asmctl连接集群

本文以公网访问凭证连接ACK集群为例。

  1. 登录容器服务管理控制台
  2. 在控制台左侧导航栏中,单击集群
  3. 集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情
  4. 在集群信息页面单击连接信息页签,单击公网访问下右上角的复制
  5. $HOME/.kube目录下创建config文件,将复制的公网访问凭证保存到config文件中。
  6. 执行以下命令,验证连接集群是否成功。
    kubectl get ns 

    如果返回命名空间信息,则表示asmctl连接集群成功。

使用诊断工具asmctl连接ASM

本文以公网访问凭证连接ASM为例。

  1. 登录ASM控制台
  2. 在左侧导航栏,选择服务网格 > 网格管理
  3. 网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理
  4. 在网格信息页面单击右上角的连接配置
  5. 连接配置面板公网访问下单击复制,然后单击确定
  6. $HOME/.kube目录下创建asmconfig文件,将复制的公网访问凭证保存到asmconfig文件中。
  7. 执行以下命令,验证连接ASM是否成功。
    kubectl get ns --kubeconfig $HOME/.kube/asmconfig

    如果返回命名空间信息,则表示asmctl连接ASM成功。