了解功能状态条件

注意:Cloud Service Mesh 1.6.8 及更高版本会自动支持规范化服务。

本页介绍了如何解读 Cloud Service Mesh 集群或服务器群组中报告的条件并采取相应措施。

如需检查条件,请运行以下命令:

  gcloud container fleet mesh describe --project FLEET_PROJECT

输出中可能包含集群的 membershipStates 中的 conditions,例如:

  ...
  membershipStates:
    projects/test-project/locations/us-central1/memberships/my-membership:
      servicemesh:
        conditions:
          - code: <CONDITION_CODE>
            details: ...
            documentationLink: ....
            severity: ...

本页面详细介绍了 code 的值。

NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED

您可能会在会员资格的 Conditions 字段中看到 NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED 错误代码:

    membershipStates:
      projects/test-project/locations/us-central1/memberships/my-membership:
        servicemesh:
          conditions:
          - code: NODEPOOL_WORKLOAD_IDENTITY_FEDERATION_REQUIRED
            details: One or more node pools have workload identity federation disabled.
            documentationLink: https://cloud.google.com/kubernetes-engine/docs/how-to/workload-identity
            severity: ERROR
          controlPlaneManagement:
            details:
            - code: REVISION_FAILED_PRECONDITION
              details: Required in-cluster components are not ready. This will be retried
                within 15 minutes.
            implementation: TRAFFIC_DIRECTOR
            state: FAILED_PRECONDITION

如果 GKE 集群的所有节点池都未启用 Workload Identity Federation,系统会显示此错误,因为这是安装 Cloud Service Mesh 的前提条件。

如需解决此错误消息,您必须按照说明在所有节点池上启用 Workload Identity 联合。请注意,启用方式可能会因您的具体集群情况而异。

启用后,错误消息应会自动移除,集群应会恢复为 ACTIVE 状态。如果问题仍然存在,并且您需要其他帮助,请参阅获取支持

MESH_IAM_PERMISSION_DENIED

此错误表示服务账号没有足够的权限来访问您的车队项目。请按照以下步骤进行问题排查:

  1. 验证您的服务账号是否已授予 Anthos Service Mesh Service Agent 角色。如需详细了解如何验证和添加 IAM 权限,请参阅修订版本报告运行状况不佳错误,然后按照其中的步骤操作。

  2. 如果问题仍然存在,请与 Google 客户支持团队联系,获取进一步的帮助。

MESH_IAM_CROSS_PROJECT_PERMISSION_DENIED

此错误表示舰队项目服务账号没有足够的权限来访问其他项目(集群项目或网络项目)。

对于共享 VPC,请务必在共享 VPC 网络项目中向所有舰队项目服务账号授予 Anthos Service Mesh Service Agent 角色。

对于 GKE 舰队项目和集群项目场景,请务必在集群项目中向舰队项目服务账号授予 Anthos Service Mesh Service Agent 角色。

问题排查命令示例:

  1. 验证您的网络项目或集群项目服务账号是否已向舰队项目服务账号授予 Anthos Service Mesh Service Agent 角色。如果没有,请运行以下命令:

    gcloud projects add-iam-policy-binding NETWORK_OR_CLUSTER_PROJECT_ID  \
        --member "serviceAccount:service-FLEET_PROJECT_NUMBER@gcp-sa-servicemesh.iam.gserviceaccount.com" \
        --role roles/anthosservicemesh.serviceAgent
    

    此外,请确认您没有任何会移除此绑定的自动化操作。

  2. 如果问题仍然存在,请与 Google 客户支持团队联系,获取进一步的帮助。