解决通过 Google Cloud 控制台启用 Cloud Service Mesh 时遇到的问题

本部分介绍常见的 Cloud Service Mesh 问题以及如何解决这些问题。如果您需要其他帮助,请参阅获取支持

确保您拥有足够的权限

如需在创建 GKE 集群时启用 Cloud Service Mesh,您必须拥有以下所有角色:

如需了解如何授予角色,请参阅授予或撤消单个角色

未能通过 Google Cloud 控制台启用 Cloud Service Mesh

在集群上启用 Cloud Service Mesh 时,可能会启用失败。如果启用失败,Google Cloud 控制台会显示一条消息:“Cloud Service Mesh 安装失败”。

通过 Google Cloud 控制台启用 Cloud Service Mesh 时会在集群中创建 ControlPlaneRevision 自定义资源。预配代管式控制层面或预配失败后,此资源的状态会更新;此外,如果启用失败,还会包含一则错误消息。

kubectl describe controlplanerevision -n istio-system

输出类似于以下内容:

    Name:         asm-managed

    …

    Status:
      Conditions:
        Last Transition Time:  2021-08-05T18:56:32Z
        Message:               The provisioning process has not completed successfully
        Reason:                NotProvisioned
        Status:                False
        Type:                  Reconciled
        Last Transition Time:  2021-08-05T18:56:32Z
        Message:               Provisioning has finished
        Reason:                ProvisioningFinished
        Status:                True
        Type:                  ProvisioningFinished
        Last Transition Time:  2021-08-05T18:56:32Z
        Message:               Unsupported Kubernetes version: v1.14.10
        Reason:                PreconditionFailed
        Status:                True
        Type:                  Stalled

如果 Type: Reconciled Status 字段为 True,则表示控制层面已成功运行。如果代管式控制层面预配过程出错,则 Type: Stalled Status 字段将为 True。如果 StalledMessage 字段将包含有关具体错误的详细信息。如需详细了解可能的错误,请参阅停止代码

系统会每隔 15 分钟重试一次安装,并会更新 ControlPlaneRevision 自定义资源以反映最新状态。但是,即便后续安装成功,Google Cloud 控制台中显示的错误消息也不会予以更新。您可以通过在集群上运行上述命令来检查当前状态(每隔 15 分钟检查一次)。

如果在处理错误消息并等待 15 分钟后,安装仍然失败,那么您可以执行使用 asmcli 配置代管式 Cloud Service Mesh 中的步骤来启用 Cloud Service Mesh。

此外,如果在 GKE 集群创建期间安装失败,那么您可以删除集群并进行重试。