Probleme bei der Trafficverwaltung in Anthos Service Mesh beheben

In diesem Abschnitt werden häufig auftretende Anthos Service Mesh-Probleme und deren Behebung erläutert. Weitere Informationen finden Sie unter Support.

API-Server-Verbindungsfehler in Istiod-Logs

Istiod kann keine Verbindung zum apiserver herstellen, wenn Fehler angezeigt werden, die in etwa so aussehen:

error k8s.io/client-go@v0.18.0/tools/cache/reflector.go:125: Failed to watch *crd.IstioSomeCustomResource`…dial tcp 10.43.240.1:443: connect: connection refused

Sie können den regulären Ausdruck /error.*cannot list resource/ verwenden, um diesen Fehler in den Logs zu finden.

Dieser Fehler ist in der Regel nur vorübergehend. Wenn Sie die Proxylogs mit kubectl erreicht haben, ist das Problem möglicherweise bereits behoben. Dieser Fehler wird normalerweise durch Ereignisse verursacht, die den API-Server vorübergehend nicht verfügbar machen, z. B. wenn ein API-Server, der sich nicht in einer Hochverfügbarkeitskonfiguration befindet, für ein Upgrade oder eine Autoscaling-Änderung neu gestartet wird.

Der istio-init-Container stürzt ab

Dieses Problem kann auftreten, wenn die Pod-iptables-Regeln nicht auf den Namespace des Pod-Netzwerks angewendet werden. Mögliche Ursachen:

  • Übermäßig restriktive Pod-Sicherheitsrichtlinie (PSP)
  • Unvollständige Installation von istio-cni
  • Unzureichende Arbeitslast-Pod-Berechtigungen (fehlende CAP_NET_ADMIN-Berechtigung)

Wenn Sie eine Pod-Sicherheitsrichtlinie mit der Berechtigung CAP_NET_ADMIN verwenden, wechseln Sie stattdessen zum Istio CNI-Plug-in.

Wenn Sie das Istio CNI-Plug-in verwenden, prüfen Sie, ob Sie die Anleitung vollständig befolgt haben. Prüfen Sie, ob der istio-cni-node-Container bereit ist, und kontrollieren Sie die Logs. Wenn das Problem weiterhin besteht, stellen Sie eine sichere Shell (SSH) im Hostknoten her und suchen Sie in den Knotenlogs nach nsenter-Befehlen und prüfen Sie, ob Fehler vorhanden sind.

Wenn Sie nicht das Istio CNI-Plug-in oder eine Pod-Sicherheitsrichtlinie verwenden, achten Sie darauf, dass der Arbeitslast-Pod die Berechtigung CAP_NET_ADMIN hat, die vom Sidecar-Injektor automatisch festgelegt wird.