対象物のステータスの条件について

注: 正規サービスは Cloud Service Mesh バージョン 1.6.8 以降で自動的にサポートされます。

このページでは、Cloud Service Mesh クラスタまたはフリートで報告された Condition を解釈して対処する方法について説明します。

条件を確認するには、次のコマンドを実行します。

  gcloud container fleet mesh describe --project FLEET_PROJECT

出力には、クラスタの membershipStatesconditions が含まれる場合があります。次に例を示します。

  ...
  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 Federation を有効にするの手順に沿って操作する必要があります。有効化は、具体的なクラスタのケースによって異なる場合があります。

有効にすると、エラー メッセージは自動的に削除され、クラスタは 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 カスタマー サポートにお問い合わせください。