Fehlerbehebung bei Deployments des Cloud Service Mesh GKE Service Mesh

Diese Anleitung enthält Informationen zum Beheben von Problemen bei Service-Mesh-Bereitstellungen mit der Gateway API.

Informationen im Feld status

Alle Gateway API-Ressourcen haben ein Feld status, das den Status von Ressourcen aus Sicht des Controllers widerspiegelt. Zusätzlich zum Feld status hängt der Controller Ereignisse an Gateway API-Ressourcen an, um Informationen zu den Vorgängen für diese Ressourcen bereitzustellen.

Verwenden Sie beispielsweise die folgenden Befehle, um den Status und die Ereignisse eines TDMesh zu prüfen:

kubectl describe tdmesh td-mesh

Die Ausgabe sieht etwa so aus:

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

Der vorherige Status gibt an, dass der Controller noch nicht begonnen hat, dieses Mesh-Netzwerk abzugleichen. Wenn dieser Status länger als 5 Minuten andauert, ohne dass Ereignisse angehängt werden, lesen Sie den folgenden Abschnitt Controller scheint keine TDMesh-Ressource abzugleichen, um die Fehlerbehebung fortzuführen.

Sie können eine ähnliche Methode verwenden, um Probleme im Zusammenhang mit anderen Ressourcen wie HTTPRoute, TCPRoute und anderen Routingressourcen zu beheben.

Normalerweise zeigen die Status und Ereignisse das zugrunde liegende Problem an.

Controller scheint keine TDMesh-Ressource abzugleichen

Um das Problem zu diagnostizieren, prüfen Sie, ob eine gke-td-GatewayClass vorhanden ist:

kubectl get gatewayclasses

Die Ausgabe sollte eine GatewayClass namens gke-td enthalten.

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

Wenn keine GatewayClass mit diesem Namen zurückgegeben wird, folgen Sie Installieren Sie die erforderlichen benutzerdefinierten Ressourcendefinitionen. Prüfen Sie, ob alle erforderlichen CRDs im Konfigurationscluster installiert sind, und aktivieren Sie sie dann noch einmal das Hub-Feature für das Cloud Service Mesh Google Kubernetes Engine Service Mesh mit dem folgenden Befehle:

  1. Deaktivieren Sie das Feature:

    gcloud container hub ingress disable
    
  2. Aktivieren Sie das Feature wieder:

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