Konfigurationsprobleme beheben

In diesem Abschnitt werden häufig auftretende Probleme bei Cloud Service Mesh und deren Behebung beschrieben. Weitere Informationen finden Sie unter Support.

„MembershipState“ prüfen

Sie können den aktuellen Status des Mesh jederzeit mit dem folgenden Befehl prüfen:

gcloud container fleet mesh describe

Die Ausgabe sieht etwa so aus:

...
membershipSpecs:
  projects/project_id/locations/global/memberships/cluster:
    mesh:
      management: MANAGEMENT_AUTOMATIC
membershipStates:
  projects/project_id/locations/global/memberships/cluster:
    servicemesh:
      ...
      conditions:
        - code: CONFIG_VALIDATION_WARNING
          documentationLink: https://cloud.google.com/...
          details: Application of one or more configs has failed. Error details are shown on individual config resources. See documentation link for more detail.
          severity: WARNING
...

Fehlercodes für „MembershipState“

Wenn Cloud Service Mesh Bedingungen zum „MembershipState“ eines Clusters meldet, kann dies bedeuten, dass Mesh-Konfigurationen (z. B. benutzerdefinierte Istio-Ressourcen) nicht angewendet werden konnten. Die folgenden Beschreibungen für Fehlercodes enthalten weitere Informationen zur Behebung der Fehler.

Fehlercode Ursache Lösung
CONFIG_APPLY_INTERNAL_ERROR Mindesten eine Konfiguration konnte aufgrund eines internen Fehlers nicht angewendet werden. Bitte kontaktiere den Kundensupport.
QUOTA_EXCEEDED_* Mindestens eine Konfiguration konnte nicht angewendet werden, da das Kontingent für Ressourcen ausgeschöpft wurde. Informationen zu den einzelnen Kontingenten und wie Sie diese erhöhen können, finden Sie unter Kontingente.
CONFIG_VALIDATION_ERROR Mindestens eine Konfiguration konnte aufgrund einer ungültigen Konfiguration nicht angewendet werden. Die einzelnen Fehler werden in die Konfigurationen geschrieben, in denen sie aufgetreten sind. Weitere Informationen zur Diagnose dieser Fehler finden Sie im Abschnitt Fehler bei der Konfigurationsvalidierung.
CONFIG_VALIDATION_WARNING In mindestens einer Konfiguration sind potenzielle Probleme aufgetreten. Sie wurden möglicherweise nicht angewendet. Wenn sie doch angewendet wurden, kann es zu unerwartetem Verhalten kommen. Weitere Informationen zur Diagnose dieser Fehler finden Sie im Abschnitt Fehler bei der Konfigurationsvalidierung.
MULTICLUSTER_SECRET_WARNING Der Cluster verwendet ein manuell erstelltes Istio-Multi-Cluster-Secret anstelle der deklarativen Multi-Cluster-API für die Endpunkterkennung. Richten Sie die Multi-Cluster-Endpunkterkennung mit der deklarativen Implementierung ein. Weitere Informationen finden Sie auf der Seite Multi-Cluster-Secrets.
WORKLOAD_IDENTITY_REQUIRED Workload Identity ist für den Cluster oder mindestens einen der Knotenpools nicht aktiviert. Aktivieren Sie Workload Identity auf Cluster- und Knotenpoolebene. Eine Anleitung finden Sie auf der Seite Workload Identity aktivieren.
MANAGED_CNI_NOT_ENABLED Managed CNI ist für diesen Cluster nicht aktiviert. Aktivieren Sie Managed CNI, um Best Practices in Ihrem Mesh einzuhalten. Weitere Informationen finden Sie auf der Seite Managed CNI aktivieren.
NON_STANDARD_SIDECAR_BINARY_USAGE In einem oder mehreren Befehlen in Istio-Containern werden andere Binärdateien als `envoy`, `pilot_agent` oder `iptables` verwendet. Entfernen Sie die Abhängigkeit von nicht unterstützten Binärdateien. Weitere Informationen finden Sie auf der Seite Verwendung nicht unterstützter Binärdateien.
UNSUPPORTED_GATEWAY_CLASS_USAGE Der Cluster ist mit Gateway-Klassen (Istio und Anthos Service Mesh) konfiguriert, die zur Einhaltung von Best Practices zum Istio Ingress Gateway migriert werden müssen. Eine detaillierte Anleitung finden Sie in der Dokumentation.
UNSUPPORTED_MULTIPLE_CONTROL_PLANES Für den Cluster wurden mehrere Versionen der Steuerungsebene bereitgestellt. Cloud Service Mesh unterstützt nur eine Version pro Cluster. Weitere Informationen finden Sie unter Mehrere Steuerungsebenen beheben.
REQUIRED_ORG_POLICY_DISABLED Eine deaktivierte Organisationsrichtlinie muss aktiviert werden. Deaktivieren Sie diese Richtlinie für das Projekt, um die Cloud Service Mesh-Funktionalität zu gewährleisten. Weitere Informationen finden Sie unter Erforderliche Organisationsrichtlinie aktivieren.

Fehler bei der Konfigurationsvalidierung

CONFIG_VALIDATION_WARNING und CONFIG_VALIDATION_ERROR Codes weisen auf Probleme in Mesh-Konfigurationen (Istio- oder benutzerdefinierte Kubernetes Ressourcen) und darauf hin, dass eine Teilmenge der Konfigurationen möglicherweise nicht richtig angewendet wurde.

Viele Fehlerdetails für eine Ressource werden in die entsprechende Ressource geschrieben. Mit dem folgenden Befehl können Sie die ungültigen Konfigurationen finden und die spezifischen Fehlermeldungen aufrufen. Hinweis: Die Befehle gelten speziell für Istio-Ressourcen. Möglicherweise werden hier nicht alle Validierungsfehler angezeigt.

for resource in serviceentries destinationrules virtualservices gateways peerauthentications authorizationpolicies requestauthentications sidecars telemetries envoyfilters;
  do kubectl get $resource --all-namespaces --output=json | \
   jq  '.items[] | select(.status.conditions != null and any(.status.conditions[]; .type == "Accepted" and .status == "False")) | {"name": .metadata.name, "namespace": .metadata.namespace, "kind": .kind, "conditions": .status.conditions}';
done

Die Ausgabe sieht etwa so aus:

{
  "name": "demo-envoy-filter",
  "namespace": "default",
  "kind": "EnvoyFilter",
  "conditions": [
    {
      "lastTransitionTime": "2024-04-04T21:10:18.046975988Z",
      "message": "This API is not supported",
      "reason": "Invalid",
      "status": "False",
      "type": "Accepted"
    }
  ]
}