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 |
Mindestens eine Konfiguration konnte aufgrund eines internen Fehlers nicht angewendet werden. | Bitte kontaktieren Sie 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. Bei benutzerdefinierten Istio-Ressourcen werden die ungültigen Konfigurationen vollständig aus der Übersetzung entfernt. | 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. Bei benutzerdefinierten Istio-Ressourcen werden bestimmte ungültige Felder ignoriert, die Gesamtkonfigurationen werden aber verarbeitet. Es kann 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 mindestens einem Befehl 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 zum Istio Ingress Gateway migriert werden müssen, um Best Practices zu entsprechen. | 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. |
MISSING_CONTROL_PLANE_CONFIG |
Für den Cluster fehlt die Konfiguration für Cloud Service Mesh. | Folgen Sie der Anleitung in der Dokumentation zur fehlenden Konfiguration der Steuerungsebene , um diese Konfiguration zu erstellen. Ihr Service Mesh funktioniert weiterhin , muss aber aktualisiert werden. |
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.
Verhalten bei der Konfigurationsvalidierung
Cloud Service Mesh verwendet einen zweistufigen Prozess zur Konfigurationsvalidierung:
- Synchronous Validation (Synchronous Validation): Ein Validierungs-Webhook führt erste Syntaxprüfungen durch. Wenn eine Konfiguration grundlegend falsch formatiert ist, wird die Aktualisierung auf der Kubernetes API-Ebene abgelehnt und
kubectl applyschlägt sofort fehl. - Asynchronous Validation (Asynchronous Validation): Die semantische Überprüfung erfolgt im Hintergrund während der Übersetzung. Wenn in dieser Phase eine ungültige Konfiguration erkannt wird, verwirft das System die benutzerdefinierte Ressource asynchron, um zu verhindern, dass sie den Rest des Mesh beschädigt. Die übrigen gültigen Konfigurationen werden weiterhin angewendet.
Weitere Informationen zu diesem Verhalten finden Sie im Abschnitt Konfigurationsvalidierung.
Ungültige Konfigurationen finden
Da ungültige benutzerdefinierte Ressourcen asynchron verworfen werden, müssen Sie ihren Status aktiv prüfen. Viele Fehlerdetails für eine Ressource werden in das Statusfeld der entsprechenden Ressource zurückgeschrieben und im Flottenfeature-Status angezeigt.
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"
}
]
}