Konfigurationsprobleme beheben

In diesem Abschnitt werden häufig auftretende Cloud Service Mesh-Probleme und deren Behebung erläutert. 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 für den Mitgliedschaftsstatus für einen Cluster meldet, konnten Mesh-Konfigurationen (z. B. benutzerdefinierte Istio-Ressourcen) möglicherweise nicht angewendet werden. In den folgenden Beschreibungen der Fehlercodes finden Sie weitere Informationen zur Behebung.

Fehlercode Ursache Auflösung
CONFIG_APPLY_INTERNAL_ERROR Mindestens eine Konfiguration konnte aufgrund eines internen Fehlers nicht angewendet werden. Wende dich an den Kundensupport.
QUOTA_EXCEEDED_* Die Anwendung einer oder mehrerer Konfigurationen ist fehlgeschlagen, da das Kontingent für die Ressourcen erreicht wurde. Informationen zu den einzelnen Kontingenten und dazu, wie Sie sie erhöhen können, finden Sie unter Kontingente.
CONFIG_VALIDATION_ERROR Mindestens eine Konfiguration konnte aufgrund einer ungültigen Konfiguration nicht angewendet werden. Spezifische Fehler werden in die Konfigurationen geschrieben, die sie verursacht haben. Weitere Informationen zur Diagnose dieser Fehler finden Sie im Abschnitt Fehler bei der Konfigurationsvalidierung.
CONFIG_VALIDATION_WARNING Bei einer oder mehreren Konfigurationen sind potenzielle Probleme aufgetreten. Diese Änderungen wurden möglicherweise nicht angewendet. Falls doch, kann es zu unerwarteten Verhaltensweisen 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. Die Einrichtung der Multi-Cluster-Endpunkterkennung in die deklarative Implementierung verschieben. 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 Verwaltete CNI ist für diesen Cluster nicht aktiviert. Aktivieren Sie die verwaltete CNI, um Best Practices in Ihrem Mesh einzuhalten. Weitere Informationen finden Sie auf der Seite Verwaltete 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 Nicht unterstützte Binärnutzung.
UNSUPPORTED_GATEWAY_CLASS_USAGE Der Cluster ist mit Gateway-Klassen (Istio und Anthos Service Mesh) konfiguriert, die gemäß Best Practices zum Istio Ingress Gateway migriert werden müssen. Eine ausführliche Anleitung finden Sie in der Dokumentation.

Fehler bei der Konfigurationsvalidierung

Die Codes CONFIG_VALIDATION_WARNING und CONFIG_VALIDATION_ERROR weisen darauf hin, dass Probleme mit Mesh-Konfigurationen (Istio- oder benutzerdefinierte Kubernetes-Ressourcen) gefunden wurden und dass einige Konfigurationen möglicherweise nicht richtig angewendet wurden.

Viele Fehlerdetails pro Ressource werden in die entsprechende Ressource geschrieben. Mit dem folgenden Befehl können Sie die ungültigen Konfigurationen finden und die entsprechenden Fehlermeldungen aufrufen. Hinweis: Diese gelten speziell für Istio-Ressourcen und es werden möglicherweise 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"
    }
  ]
}