Fehlerbehebung in Anthos Service Mesh Schritt-für-Schritt-Anleitung

In diesem Abschnitt wird beschrieben, wie Sie Probleme bei der Verwendung von Anthos Service Mesh beheben. Weitere Informationen finden Sie unter Support.

Schritte zur Fehlerbehebung

Folgen Sie diesen allgemeinen Schritten, um Probleme mit Anthos Service Mesh möglichst effizient zu beheben:

  1. Verwenden Sie die automatisierten Tools zur Validierung der Konfiguration.
  2. Prüfen Sie, ob ein häufig auftretendes Problem mit einer bekannten Lösung vorliegt.
  3. Grenzen Sie den Umfang des Problems ein.
  4. Prüfen Sie relevante Logs und Informationen.
  5. Erstellen Sie Diagnoselogs und holen Sie sich Hilfe.

kpt-Fehler während der Installation

Wenn Sie Anthos Service Mesh mit install_asm mit einer nicht unterstützten Version von kpt installieren, gibt install_asm die folgenden Fehlermeldungen aus:

    2021-07-14T15:54:58.380312 install_asm_1_9_3: Downloading ASM..
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 41.7M  100 41.7M    0     0  31.1M      0  0:00:01  0:00:01 --:--:-- 31.1M
    2021-07-14T15:54:59.777425 install_asm_1_9_3: Downloading ASM kpt package...
    2021-07-14T15:54:59.805267 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm'
    2021-07-14T15:54:59.832100 install_asm_1_9_3: -------------
    error: unknown flag: --auto-set
    2021-07-14T15:54:59.907493 install_asm_1_9_3: [WARNING]: Failed, retrying...(1 of 3)
    2021-07-14T15:55:01.936275 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm'
    2021-07-14T15:55:01.963543 install_asm_1_9_3: -------------
    error: unknown flag: --auto-set
    2021-07-14T15:55:02.043638 install_asm_1_9_3: [WARNING]: Failed, retrying...(2 of 3)
    2021-07-14T15:55:04.074541 install_asm_1_9_3: Running: '/usr/bin/kpt pkg get --auto-set=false https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages.git/asm@release-1.9-asm asm'
    2021-07-14T15:55:04.101990 install_asm_1_9_3: -------------
    error: unknown flag: --auto-set
    2021-07-14T15:55:04.176750 install_asm_1_9_3: [WARNING]: Failed, retrying...(3 of 3)
    

Wenn diese Fehler angezeigt werden, laden Sie die neueste Version von install_asm herunter. Das Skript install_asm muss mindestens eine der folgenden Versionen haben:

  • Für Version 1.8 bis 1.8.6-asm.5+config1
  • Für Version 1.9 bis 1.9.6-asm.2+config1
  • Für Version 1.10 bis 1.10.2-asm.3+config1

Wenn Sie anthos-service-mesh-package herunterladen, um Anthos Service Mesh mit istioctl install zu installieren, und wenn Sie eine nicht unterstützte Version von kpt haben, werden die folgenden Fehlermeldungen angezeigt:

    Package "asm":
    Fetching https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages@release-1.10-asm
    From https://github.com/GoogleCloudPlatform/anthos-service-mesh-packages
     * branch            release-1.10-asm -> FETCH_HEAD
    Error: Kptfile at "https:/github.com/GoogleCloudPlatform/anthos-service-mesh-packages/asm@release-1.10-asm" has an old version ("v1alpha1") of the Kptfile schema.
    Please update the package to the latest format by following https://kpt.dev/installation/migration.
    

Für die Installation von Anthos Service Mesh ist eine kpt-Version vor 1.x erforderlich. Die Shell-Sitzung muss die kpt-Version 0.39.2 verwenden. Mit dem folgenden Befehl rufen Sie die kpt-Version ab:

   kpt version

Die Ausgabe sieht in etwa so aus:

    0.39.2

Wenn Ihnen eine Version von kpt angezeigt wird, die älter als Version 1.0 ist, lesen Sie den Abschnitt Umgebung einrichten, um die erforderliche Version für Ihr Betriebssystem herunterzuladen.

Automatisierte Validierungstools verwenden

Anthos Service Mesh umfasst automatisierte Tools zur Diagnose und Konfigurationsvalidierung, mit denen Probleme behoben und in Zukunft vermieden werden können. In den folgenden Abschnitten wird die Verwendung dieser Tools beschrieben.

istioctl analyze

Mit dem Diagnosetool istioctl analyze können häufig auftretende Konfigurationsprobleme ermittelt werden. Installieren Sie istioctl gemäß instructions.

istioctl analyze liest eine Clusterkonfiguration. Wenn ein Problem festgestellt wird, werden Informationsmeldungen angezeigt und Abhilfemaßnahmen vorgeschlagen. Das Tool kann für einen Live-Cluster oder eine Gruppe lokaler Konfigurationsdateien ausgeführt werden. Es kann auch für eine Kombination aus beiden ausgeführt werden. So können Sie Probleme ermitteln, bevor Sie Änderungen auf einen Cluster anwenden. Weitere Informationen finden Sie unter Diagnose your Configuration with istioctl analyze. Weitere Informationen zu den Fehlern, die istioctl analyze erkennt, finden Sie unter Configuration Analysis Messages.

Live-Cluster analysieren

Analysieren Sie einen Live-Cluster mit dem folgenden Befehl:

istioctl analyze -A

Wenn istioctl analyze ein Problem bei Ihrer Konfiguration erkennt, wird eine Meldung mit nützlichen Informationen zur Lösung angezeigt, sofern bekannt. Wenn Sie beispielsweise den Namespace zum Ermöglichen der Istio-Sidecar-Einfügung nicht korrekt mit einem Label versehen haben, würde die folgende Meldung generiert werden:

Warn [IST0102] (Namespace default) The namespace is not enabled for Istio injection.
Run 'kubectl label namespace default istio-injection=enabled' to enable it,
or 'kubectl label namespace default istio-injection=disabled'
to explicitly mark it as not needing injection

Wenn das Problem weiterhin besteht, sehen Sie im nächsten Abschnitt nach, ob Ihr Problem bereits bekannt ist.

Auf häufig auftretende Probleme mit Lösungen prüfen

Sie können Zeit sparen, indem Sie prüfen, ob Ihre Symptome einem Problem in den folgenden Abschnitten zu häufig auftretenden Problemen mit bekannten Lösungen entsprechen. Die Abschnitte sind nach Anthos Service Mesh-Funktionsbereich gruppiert:

Wenn sich das Problem so nicht beheben lässt, lesen Sie den nächsten Abschnitt.

Umfang des Problems eingrenzen

In Anthos Service Mesh werden verschiedene Technologien verwendet. Deshalb sind bestimmte Problemtypen mit bestimmten Funktionsbereichen oder Komponenten verknüpft. Jede dieser Komponenten generiert hilfreiche Logs. Bevor Sie anfangen, manuell die gesamten bereitgestellten Informationen zu analysieren, grenzen Sie den Umfang der Fehlerbehebung ein, indem Sie die folgenden Fragen beantworten:

  • Tritt das Problem innerhalb der Steuerungsebene oder der Datenebene auf, beispielsweise bei Istiod- oder Envoy-Proxys?
  • In welchem Funktionsbereich tritt das Problem auf, beispielsweise Netzwerk, Telemetrie oder Sicherheit?
  • Gibt es Traffic-Verluste im gesamten Service Mesh oder in einer bestimmten Bereitstellung?
  • Wird das Problem dadurch verursacht oder verschärft, dass der Traffic im Service Mesh nicht genügend skaliert werden kann?
  • Hat das Problem Latenz- oder andere Leistungsprobleme zur Folge?
  • Können Sie das Problem jederzeit reproduzieren?
  • Trat das Problem erstmals nach einer kürzlichen Konfigurationsänderung in Istio, GKE usw. auf?
  • Gibt es einen Anstieg des Traffics innerhalb des Service Mesh?
  • Sind im Cluster besondere Features aktiviert oder enthält er untypische Bereitstellungen?
  • Stellen Sie eine hohe CPU- oder Speicherauslastung fest? Wenn ja, welche Auslastung wäre im großen Maßstab zu erwarten?
  • Gibt es Kontingentbeschränkungen, die beachtet werden müssen?

Status der Steuerungsebene ansehen

Die folgenden Befehle können Ihnen helfen, den Status der Anthos Service Mesh-Steuerungsebene zu verstehen:

  • kubectl get pods -n istio-system
  • kubectl describe -n istio-system
  • Für alle Pods in istio-system: kubectl logs -n istio-system -l istio --all-containers
  • istioctl version
  • istioctl proxy-status
  • kubectl get configmap istio -o yaml && kubectl get configmap istio-sidecar-injector -o yaml
  • kubectl top pods -n istio-system

Verwenden Sie die folgenden Befehle, um den Umfang der Bereitstellung zu verstehen:

  • kubectl get nodes
  • kubectl get services --all-namespaces
  • kubectl get pods --all-namespaces

Relevante Logs und Informationen prüfen

Nachdem Sie den Umfang des Problems eingegrenzt haben, können Sie sich effektiver auf bestimmte Logs und Informationen konzentrieren. Informationen zu den vom Anthos Service Mesh generierten Logs und deren Interpretation finden Sie unter Anthos Service Mesh-Logs interpretieren.