Cloud Service Mesh GKE サービス メッシュのデプロイのトラブルシューティング

このガイドでは、Gateway API サービス メッシュのデプロイに関する問題を解決する方法について説明します。

status フィールドの情報

すべての Gateway API リソースには、コントローラの観点からリソースのステータスを反映する status フィールドがあります。コントローラは、status フィールドに加えて Gateway API リソースにイベントを追加し、これらのリソースに対するオペレーションの情報を提供します。

たとえば、TDMesh のステータスとイベントを調べるには、次のコマンドを使用します。

kubectl describe tdmesh td-mesh

出力は次のようになります。

...
Status:
  Conditions:
    Last Transition Time:  1970-01-01T00:00:00Z
    Message:               Waiting for controller
    Reason:                NotReconciled
    Status:                False
    Type:                  Scheduled
Events:
...

前のステータスは、コントローラがこの特定のメッシュの調整を開始していないことを示します。このステータスが 5 分以上続いて、イベントが追加されていない場合は、次のコントローラが TDMesh リソースを調整していないように見える場合を参照して、問題のトラブルシューティングを行ってください。

同様の方法で、HTTPRouteTCPRoute、その他のルーティング リソースなど、他のリソースに関連する問題もデバッグできます。

通常、ステータスとイベントは根本的な問題を示します。

コントローラが TDMesh リソースを調整していないように見える場合

問題を診断するには、gke-td GatewayClass が存在することを確認します。

kubectl get gatewayclasses

出力には、gke-td という名前の GatewayClass が含まれます。

NAME             CONTROLLER
gke-td           networking.gke.io/gateway

この名前の GatewayClass が返されない場合は、必要なカスタム リソース定義をインストールし、必要なクラスタにすべての CRD がインストールされていることを確認します。その後、次のコマンドを使用して、Cloud Service Mesh Google Kubernetes Engine サービス メッシュのハブ機能を再度有効にします。

  1. 機能を無効にします。

    gcloud container hub ingress disable
    
  2. この機能を再度有効にします。

    gcloud container hub ingress enable \
      --config-membership=/projects/PROJECT_ID/locations/global/memberships/gke-1