Fehlerbehebung bei Envoy-Bereitstellungen

Diese Anleitung enthält Informationen zur Behebung von Konfigurationsproblemen mit Envoy-Clients, wenn Sie Cloud Service Mesh mit Google APIs ausführen. Für Informationen zur Verwendung der Client Status Discovery Service (CSDS) API für Hilfe bei der Untersuchung von Problemen mit dem Cloud Service Mesh finden Sie unter Informationen zum Status des Cloud Service Mesh-Clients.

Auf einer VM installierte Envoy-Version ermitteln

Anhand dieser Anleitung können Sie prüfen, welche Version von Envoy auf einer VM-Instanz ausgeführt wird.

So können Sie die Envoy-Version prüfen:

Prüfen Sie die Gastattribute der VM unter dem Pfad gce-service-proxy/proxy-version:

  gcloud compute --project cloud-vm-mesh-monitoring instances get-guest-attributes INSTANCE_NAME 
--zone ZONEc --query-path=gce-service-proxy/proxy-version

NAMESPACE KEY VALUE gce-service-proxy proxy-version dc78069b10cc94fa07bb974b7101dd1b42e2e7bf/1.15.1-dev/Clean/RELEASE/BoringSSL

Prüfen Sie die Cloud Logging-Instanzlogs auf der Seite "Logging" der VM-Instanzdetails in der Google Cloud Console mit einer Abfrage wie dieser:

  resource.type="gce_instance"
  resource.labels.instance_id="3633122484352464042"
  jsonPayload.message:"Envoy version"
  

Sie erhalten eine Antwort wie die folgende:

  {
    "insertId": "9zy0btf94961a",
    "jsonPayload": {
      "message": "Envoy Version: dc78069b10cc94fa07bb974b7101dd1b42e2e7bf/1.15.1-dev/Clean/RELEASE/BoringSSL",
      "localTimestamp": "2021-01-12T11:39:14.3991Z"
    },
    "resource": {
      "type": "gce_instance",
      "labels": {
        "zone": "asia-southeast1-b",
        "instance_id": "3633122484352464042",
        "project_id": "cloud-vm-mesh-monitoring"
      }
    },
    "timestamp": "2021-01-12T11:39:14.399200504Z",
    "severity": "INFO",
    "logName": "projects/cloud-vm-mesh-monitoring/logs/service-proxy-agent",
    "receiveTimestamp": "2021-01-12T11:39:15.407023427Z"
  }
  

Stellen Sie eine SSH-Verbindung zu einer VM her und prüfen Sie die Binärversion:

  YOUR_USER_NAME@backend-mig-5f5651e1-517a-4269-b457-f6bdcf3d98bc-m3wt:~$ /usr/local/bin/envoy --version

/usr/local/bin/envoy version: dc78069b10cc94fa07bb974b7101dd1b42e2e7bf/1.15.1-dev/Clean/RELEASE/BoringSSL

Stellen Sie eine SSH-Verbindung zu einer VM und der Administratoroberfläche als Root her:

  root@backend-mig-5f5651e1-517a-4269-b457-f6bdcf3d98bc-m3wt:~# curl localhost:15000/server_info
  {
   "version": "dc78069b10cc94fa07bb974b7101dd1b42e2e7bf/1.15.1-dev/Clean/RELEASE/BoringSSL",
   "state": "LIVE",
   "hot_restart_version": "disabled",
   ...
  }
  

Logspeicherorte in Envoy

Zur Behebung einiger Fehler müssen Sie die Proxy-Logs von Envoy prüfen.

Sie können SSH verwenden, um eine Verbindung zur VM-Instanz herzustellen und die Logdatei abzurufen. Der Pfad sieht wahrscheinlich so aus:

  /var/log/envoy/envoy.err.log
  

Proxys stellen keine Verbindung zu Cloud Service Mesh her

Wenn Ihre Proxys keine Verbindung zu Cloud Service Mesh herstellen, gehen Sie so vor:

  • Prüfen Sie die Proxy-Logs von Envoy auf Fehler der Verbindung mit trafficdirector.googleapis.com.

  • Wenn Sie netfilter (über iptables) so eingerichtet haben, dass der gesamte Traffic an den Envoy-Proxy weitergeleitet wird, achten Sie darauf, dass der Nutzer (UID), mit dem Sie den Proxy ausführen, von der Weiterleitung ausgeschlossen ist. Andernfalls führt dies dazu, dass der Traffic ständig zum Proxy zurückgeleitet wird.

  • Prüfen Sie, ob die Cloud Service Mesh API für das Projekt aktiviert ist. Wählen Sie unter APIs und Dienste für Ihr Projekt suchen, suchen Sie nach Fehler für die Cloud Service Mesh API.

  • Prüfen Sie, ob der API-Zugriffsbereich der VM so eingestellt ist, dass uneingeschränkter Zugriff auf die Google Cloud APIs möglich ist. Geben Sie dazu beim Erstellen der VM Folgendes an:

    --scopes=https://www.googleapis.com/auth/cloud-platform
    
  • Prüfen Sie, ob das Dienstkonto die richtigen Berechtigungen hat. Weitere Informationen finden Sie unter Dienstkonto für den Zugriff auf die Traffic Director API aktivieren.

  • Prüfen Sie, ob Sie von der VM auf trafficdirector.googleapis.com:443 zugreifen können. Wenn es Probleme mit diesem Zugriff gibt, könnte dies daran liegen, dass eine Firewall den Zugriff auf trafficdirector.googleapis.com über den TCP-Port 443 verhindert oder Probleme mit der DNS-Auflösung für den Hostnamen trafficdirector.googleapis.com vorliegen.

  • Wenn Sie Envoy für den Sidecar-Proxy verwenden, achten Sie darauf, dass es sich bei der Envoy-Version um 1.24.9 oder höher handelt.

Der mit Cloud Service Mesh konfigurierte Dienst ist nicht erreichbar

Wenn ein mit Cloud Service Mesh konfigurierter Dienst nicht erreichbar ist, prüfen Sie, ob der Sidecar-Proxy ausgeführt wird und eine Verbindung zum Cloud Service Mesh herstellen kann.

Wenn Sie Envoy als Sidecar-Proxy verwenden, können Sie dies mit den folgenden Befehlen prüfen:

  1. Prüfen Sie in der Befehlszeile, ob der Envoy-Prozess ausgeführt wird:

    ps aux | grep envoy
    
  2. Laufzeitkonfiguration von Envoy prüfen, um zu bestätigen, dass Cloud Service Mesh konfigurierten dynamischen Ressourcen. Führen Sie den folgenden Befehl aus, um die Konfiguration aufzurufen:

    curl http://localhost:15000/config_dump
    
  3. Achten Sie darauf, dass das Abfangen von Traffic für den Sidecar-Proxy korrekt eingerichtet ist. Führen Sie für die Weiterleitungskonfiguration mit iptables den Befehl iptables und dann grep für die Ausgabe aus, um zu prüfen, ob Ihre Regeln vorhanden sind:

    sudo iptables -t nat -S | grep ISTIO
    

    Hier ein Beispiel für die Ausgabe, die Sie erhalten, wenn iptables die virtuelle IP-Adresse (VIP) 10.0.0.1/32 abfängt und an einen Envoy-Proxy weiterleitet, der an Port 15001 als UID1006 ausgeführt wird:

    -N ISTIO_IN_REDIRECT
    -N ISTIO_OUTPUT
    -N ISTIO_REDIRECT
    -A OUTPUT -p tcp -j ISTIO_OUTPUT
    -A ISTIO_IN_REDIRECT -p tcp -j REDIRECT --to-ports 15001
    -A ISTIO_OUTPUT -m owner --uid-owner 1006 -j RETURN
    -A ISTIO_OUTPUT -d 127.0.0.1/32 -j RETURN
    -A ISTIO_OUTPUT -d 10.0.0.1/32 -j ISTIO_REDIRECT
    -A ISTIO_OUTPUT -j RETURN
    

Wenn die VM-Instanz über die Google Cloud Console erstellt wird, sind einige IPv6-bezogene Module nicht installiert und vor einem Neustart verfügbar. Dies führt dazu, dass iptables aufgrund fehlender Abhängigkeiten fehlschlägt. Starten Sie in diesem Fall die VM neu und führen Sie den Einrichtungsprozess noch einmal aus, um das Problem zu beheben. Bei einer Compute Engine-VM, die Sie mithilfe der Google Cloud CLI erstellt haben, wird dieses Problem nicht erwartet.

Der Dienst ist nicht mehr erreichbar, wenn das Zugriffs-Logging von Envoy konfiguriert ist

Wenn Sie mit TRAFFICDIRECTOR_ACCESS_LOG_PATH ein Envoy-Zugriffslog konfiguriert haben, wie unter Envoy-Bootstrap-Attribute für Cloud Service Mesh konfigurieren beschrieben, achten Sie darauf, dass der Systemnutzer, der den Envoy-Proxy ausführt, Schreibzugriff auf den angegebenen Speicherort des Zugriffslogs hat.

Ohne die erforderlichen Berechtigungen werden die Listener nicht auf dem Proxy programmiert. Dies erkennen Sie an der folgenden Fehlermeldung im Proxy-Log von Envoy:

gRPC config for type.googleapis.com/envoy.api.v2.Listener rejected:
Error adding/updating listener(s) TRAFFICDIRECTOR_INTERCEPTION_PORT:
unable to open file '/var/log/envoy.log': Permission denied

Ändern Sie zur Behebung des Problems die Berechtigungen für die ausgewählte Datei, damit der Envoy-Nutzer Schreibzugriff auf das Zugriffslog erhält.

Fehlermeldungen in den Envoy-Logs, die auf ein Konfigurationsproblem hinweisen

Dieser Abschnitt gilt für Bereitstellungen mit den Load Balancing APIs.

Wenn Sie Probleme mit der Cloud Service Mesh-Konfiguration haben, kann eine der folgenden Fehlermeldungen in den Envoy-Logs angezeigt werden:

  • warning envoy config    StreamAggregatedResources gRPC config stream closed:
    5, Cloud Service Mesh configuration was not found for network "VPC_NAME" in
    project "PROJECT_NUMBER".
  • warning envoy upstream  StreamLoadStats gRPC config stream closed:
    5, Cloud Service Mesh configuration was not found for network "VPC_NAME" in
    project "PROJECT_NUMBER".
  • warning envoy config    StreamAggregatedResources gRPC config stream closed:
    5, Requested entity was not found.
  • warning envoy upstream  StreamLoadStats gRPC config stream closed:
    5, Requested entity was not found.
  • Cloud Service Mesh configuration was not found.

Die letzte Fehlermeldung (Traffic Director configuration was not found) zeigt im Allgemeinen an, dass Envoy eine Konfiguration von Cloud Service Mesh anfordert, aber keine passende Konfiguration gefunden wird. Wenn Envoy eine Verbindung zu Cloud Service Mesh herstellt, wird der Name eines VPC-Netzwerks angezeigt (z. B. my-network). Cloud Service Mesh sucht dann nach Weiterleitungsregeln, die das Load-Balancing-Schema INTERNAL_SELF_MANAGED haben und auf denselben VPC-Netzwerknamen verweisen.

So beheben Sie diesen Fehler:

  1. Achten Sie darauf, dass in Ihrem Netzwerk eine Weiterleitungsregel mit dem Load-Balancing-Schema INTERNAL_SELF_MANAGED vorhanden ist. Notieren Sie sich den VPC-Netzwerknamen der Weiterleitungsregel.

  2. Wenn Sie Cloud Service Mesh mit automatische Envoy-Bereitstellungen in Compute Engine Achten Sie darauf, dass der für das Flag --service-proxy:network angegebene Wert übereinstimmt den VPC-Netzwerknamen der Weiterleitungsregel.

  3. Wenn Sie Cloud Service Mesh mit manuellen Envoy-Bereitstellungen in Compute Engine verwenden, Prüfen Sie die Bootstrap-Datei von Envoy auf Folgendes:

    1. Achten Sie darauf, dass der Wert für die Variable TRAFFICDIRECTOR_NETWORK_NAME mit dem VPC-Netzwerknamen der Weiterleitungsregel übereinstimmt.
    2. Achten Sie darauf, dass in der Variable TRAFFICDIRECTOR_GCP_PROJECT_NUMBER die Projektnummer festgelegt ist.
  4. Wenn Sie in GKE den Auto-Injector verwenden, Achten Sie darauf, dass die Projektnummer und der VPC-Netzwerkname entsprechend den Anweisungen in Cloud Service Mesh-Einrichtung für GKE-Pods mit automatischer Envoy-Einschleusung

Fehlerbehebung für Compute Engine

In diesem Abschnitt finden Sie Anleitungen zur Fehlerbehebung bei Envoy-Bereitstellungen für die Compute Engine.

Die Bootstrapping-Prozesse von Envoy und den VMs sowie weitere Vorgänge des Lebenszyklusmanagements können aus verschiedensten Gründen fehlschlagen. Zu diesen Gründen zählen vorübergehende Verbindungsprobleme, fehlerhafte Repositories, Programmfehler in Bootstrapping-Skripts und VM-Agents sowie unerwartete Nutzeraktionen.

Kommunikationskanäle zur Fehlerbehebung

Google Cloud bietet Kommunikationskanäle, dank derer Sie den Bootstrapping-Prozess und den aktuellen Status der Komponenten, die auf Ihren VMs existieren, besser verstehen können.

Logging der Ausgabe des virtuellen seriellen Ports

Das Betriebssystem, das BIOS und andere Entitäten auf Systemebene einer VM schreiben in der Regel eine Ausgabe an die seriellen Ports. Diese Ausgabe ist nützlich, um Systemabstürze, fehlgeschlagene Boot-Vorgänge sowie Probleme beim Starten und Herunterfahren zu beheben.

Bootstrapping-Agents von Compute Engine loggen alle ausgeführten Vorgänge am seriellen Port 1 zusammen mit Systemereignissen – angefangen bei der grundlegenden Paketinstallation über den Datenabruf vom Metadatenserver einer Instanz bis hin zur iptables-Konfiguration und dem Envoy-Installationsstatus.

VM-Agents protokollieren den Zustandsstatus von Envoy-Prozessen, neu erkannt Cloud Service Mesh-Dienste und alle anderen Informationen, bei der Untersuchung von Problemen mit VMs.

Logging mit Cloud Monitoring

Daten, die über den seriellen Port ausgegeben werden, werden auch in Monitoring protokolliert. Monitoring nutzt die Golang-Bibliothek und exportiert die Logs in ein separates Log, um Störungen zu reduzieren. Dieses Log wird auf Instanzebene erstellt. Daher finden sich Dienstproxy-Logs möglicherweise auf derselben Seite wie die anderen Instanzlogs.

VM-Gastattribute

Gastattribute sind ein spezieller Typ benutzerdefinierter Metadaten, in die Anwendungen Daten schreiben können, während sie auf der Instanz ausgeführt werden. Jede Anwendung und jeder Nutzer auf der Instanz kann Daten aus den Metadaten der Gastattribute lesen und in diese schreiben.

Bootstrap-Skripts von Envoy in Compute Engine und VM-Agents stellen Attribute mit Informationen zum Bootstrapping-Prozess und dem aktuellen Status von Envoy bereit. Alle Gastattribute werden im Namespace gce-service-proxy bereitgestellt:

gcloud compute instances get-guest-attributes INSTANCE_NAME  \
    --query-path=gce-service-proxy/ \
    --zone=ZONE

Wenn Probleme auftreten, empfehlen wir, den Wert der Gastattribute bootstrap-status und bootstrap-last-failure zu prüfen. Alle bootstrap-status-Werte außer FINISHED zeigen an, dass die Envoy-Umgebung noch nicht konfiguriert wurde. Der Wert von bookstrap-last-failure kann auf die Ursache des Problems hinweisen.

Der Cloud Service Mesh-Dienst kann nicht von einer VM aus erreicht werden, die mit einer Instanzvorlage mit aktiviertem Dienstproxy erstellt wurde

So beheben Sie dieses Problem:

  1. Die Installation der Dienstproxykomponenten auf der VM ist möglicherweise noch nicht abgeschlossen oder fehlgeschlagen. Mit dem folgenden Befehl können Sie feststellen, ob alle Komponenten ordnungsgemäß installiert wurden:

    gcloud compute instances get-guest-attributes INSTANCE_NAME \
        --query-path=gce-service-proxy/ \
        --zone=ZONE
    

    Das Gastattribut bootstrap-status hat einen der folgenden Werte:

    • [none] zeigt an, dass die Installation noch nicht gestartet wurde. Die VM wird möglicherweise noch gebootet. Prüfen Sie den Status in einigen Minuten noch einmal.
    • IN PROGRESS gibt an, dass die Installation und Konfiguration der Dienstproxykomponenten noch nicht vollständig ist. Prüfen Sie den Status wiederholt auf Aktualisierungen.
    • FAILED gibt an, dass die Installation oder Konfiguration einer Komponente fehlgeschlagen ist. Prüfen Sie die Fehlermeldung durch Abfrage des Attributs gce-service-proxy/bootstrap-last-failure1.
    • FINISHED gibt an, dass die Installations- und Konfigurationsprozesse fehlerfrei abgeschlossen wurden. Folgen Sie der nachstehenden Anleitung, um zu prüfen, ob das Abfangen von Traffic und der Envoy-Proxy richtig konfiguriert sind.
  2. Das Abfangen von Traffic auf der VM ist für Cloud Service Mesh-basierte Dienste. Bei der VM anmelden und iptables prüfen Konfiguration:

    gcloud compute ssh INSTANCE_NAME \
        --zone=ZONE \
        sudo iptables -L -t nat
    

    Untersuchen Sie die Kette SERVICE_PROXY_SERVICE_CIDRS auf SERVICE_PROXY_REDIRECT-Einträge wie diese:

    Chain SERVICE_PROXY_SERVICE_CIDRS (1 references)
    target                   prot opt source         destination ...
    SERVICE_PROXY_REDIRECT   all  --  anywhere       10.7.240.0/20
    

    Für jeden Dienst muss in der Spalte destination eine entsprechende IP-Adresse oder ein CIDR-Bereich vorhanden sein. Wenn kein Eintrag für die virtuelle IP-Adresse (VIP) vorhanden ist, gibt es ein Problem beim Einfügen der Envoy-Proxy-Konfiguration aus Cloud Service Mesh oder der VM-Agent ist fehlgeschlagen.

  3. Die Envoy-Proxys haben ihre Konfiguration vom Cloud Service Mesh nicht erhalten Melden Sie sich bei der VM an, um die Envoy-Proxy-Konfiguration zu prüfen:

    gcloud compute ssh INSTANCE_NAME \
        --zone=ZONE \
        sudo curl localhost:15000/config_dump
    

    Prüfen Sie die Listener-Konfiguration, die von Cloud Service Mesh empfangen wurde. Beispiel:

    "dynamic_active_listeners": [
      ...
      "filter_chains": [{
        "filter_chain_match": {
          "prefix_ranges": [{
            "address_prefix": "10.7.240.20",
            "prefix_len": 32
          }],
          "destination_port": 80
        },
      ...
        "route_config_name": "URL_MAP/PROJECT_NUMBER.td-routing-rule-1"
      ...
    ]
    

    Die address_prefix ist die virtuelle IP-Adresse (VIP) eines Cloud Service Mesh Service. Es verweist auf die URL-Zuordnung mit dem Namen td-routing-rule-1. Prüfen Sie, ob der Dienst, zu dem Sie eine Verbindung herstellen möchten, bereits in der Listener-Konfiguration enthalten ist.

  4. Der VM-Agent wird nicht ausgeführt. Der VM-Agent konfiguriert Abfangen von Traffic beim Erstellen neuer Cloud Service Mesh-Dienste. Wenn der Agent nicht ausgeführt wird, wird der gesamte Traffic zu neuen Diensten direkt an VIPs weitergeleitet. Dadurch wird der Envoy-Proxy umgangen und das Zeitlimit überschritten.

    1. Prüfen Sie mit dem folgenden Befehl den Status des VM-Agents:

      gcloud compute instances get-guest-attributes INSTANCE_NAME \
         --query-path=gce-service-proxy/ \
         --zone=ZONE
      
    2. Prüfen Sie die Attribute des VM-Agents. Der Wert des Attributs agent-heartbeat gibt an, wann der Agent zuletzt eine Aktion oder Prüfung ausgeführt hat. Wenn der Wert älter als fünf Minuten ist, ist der Agent blockiert. Erstellen Sie die VM dann mit dem folgenden Befehl neu:

      gcloud compute instance-groups managed recreate-instance
      
    3. Das Attribut agent-last-failure zeigt den letzten Fehler im Agent an. Dies kann ein vorübergehendes Problem sein, das durch die nächste Prüfung des Agents behoben wird, z. B. wenn der Fehler Cannot reach the Cloud Service Mesh API server lautet, oder es handelt sich um einen permanenten Fehler. Warten Sie einige Minuten und prüfen Sie den Fehler noch einmal.

Das Abfangen eingehenden Traffics ist für den Arbeitslastport konfiguriert. Sie können jedoch keine Verbindung zum Port von außerhalb der VM herstellen.

So beheben Sie dieses Problem:

  1. Die Installation der Dienstproxykomponenten auf der VM ist möglicherweise noch nicht abgeschlossen oder fehlgeschlagen. Mit dem folgenden Befehl können Sie feststellen, ob alle Komponenten ordnungsgemäß installiert wurden:

    gcloud compute instances get-guest-attributes INSTANCE_NAME \
        --query-path=gce-service-proxy/ \
        --zone=ZONE
    

    Das Gastattribut bootstrap-status hat einen der folgenden Werte:

    • [none] zeigt an, dass die Installation noch nicht gestartet wurde. Die VM wird möglicherweise noch gebootet. Prüfen Sie den Status in einigen Minuten noch einmal.
    • IN PROGRESS gibt an, dass die Installation und Konfiguration der Dienstproxykomponenten noch nicht vollständig ist. Prüfen Sie den Status wiederholt auf Aktualisierungen.
    • FAILED gibt an, dass die Installation oder Konfiguration einer Komponente fehlgeschlagen ist. Prüfen Sie die Fehlermeldung durch Abfrage des Attributs gce-service-proxy/bootstrap-last-failure1.
    • FINISHED gibt an, dass die Installations- und Konfigurationsprozesse fehlerfrei abgeschlossen wurden. Folgen Sie der nachstehenden Anleitung, um zu prüfen, ob das Abfangen von Traffic und der Envoy-Proxy richtig konfiguriert sind.
  2. Das Abfangen von Traffic auf der VM ist für eingehenden Traffic nicht korrekt konfiguriert. Melden Sie sich bei der VM an und prüfen Sie die iptables-Konfiguration:

    gcloud compute ssh INSTANCE_NAME \
        --zone=ZONE \
        sudo iptables -L -t nat
    

    Untersuchen Sie die Kette SERVICE_PROXY_INBOUND auf SERVICE_PROXY_IN_REDIRECT-Einträge wie diese:

    Chain SERVICE_PROXY_INBOUND (1 references)
    target                      prot opt source       destination ...
    SERVICE_PROXY_IN_REDIRECT   tcp  --  anywhere     anywhere  tcp dpt:mysql
    

    Für jeden in service-proxy:serving-ports definierten Port muss in der Spalte destination ein entsprechender Port vorhanden sein. Ist kein Eintrag für den Port vorhanden, wird der gesamte eingehende Traffic direkt an diesen Port weitergeleitet. Dadurch wird der Envoy-Proxy umgangen.

    Achten Sie darauf, dass es keine anderen Regeln gibt, die Traffic an diesen Port oder alle Ports mit Ausnahme eines bestimmten Ports leiten.

  3. Die Envoy-Proxys haben noch keine Konfiguration für den eingehenden Port von Cloud Service Mesh erhalten. Melden Sie sich bei der VM an, um die Envoy-Proxy-Konfiguration zu prüfen:

    gcloud compute ssh INSTANCE_NAME \
        --zone=ZONE \
        sudo curl localhost:15000/config_dump
    

    Suchen Sie nach der Listener-Konfiguration für eingehenden Traffic, die von Cloud Service Mesh empfangen wurde:

    "dynamic_active_listeners": [
      ...
      "filter_chains": [{
        "filter_chain_match": {
          "prefix_ranges": [{
            "address_prefix": "10.0.0.1",
            "prefix_len": 32
          }],
          "destination_port": 80
        },
      ...
        "route_config_name": "inbound|default_inbound_config-80"
      ...
    ]
    

    Der route_config_name, beginnend mit inbound, gibt einen speziellen Dienst an, der für das Abfangen von eingehendem Traffic erstellt wurde. Prüfen Sie, ob der Port, zu dem Sie eine Verbindung herstellen möchten, bereits in der Listener-Konfiguration unter destination_port enthalten ist.

Probleme bei der Verwendung serverbezogener Protokolle

Einige Anwendungen wie MySQL verwenden Protokolle, an die der Server das erste Paket sendet. Bei der ersten Verbindung sendet der Server also die ersten Byte. Diese Protokolle und Anwendungen werden vom Cloud Service Mesh nicht unterstützt.

Fehlerbehebung für den Zustand Ihres Service Mesh

Diese Anleitung enthält Informationen zur Behebung von Konfigurationsproblemen in Cloud Service Mesh.

Cloud Service Mesh-Verhalten, wenn die meisten Endpunkte fehlerhaft sind

Wenn 99% der Endpunkte fehlerhaft sind, Cloud Service Mesh konfiguriert die Datenebene so, dass der Systemzustand ignoriert wird Status der Endpunkte. Stattdessen verteilt die Datenebene den Traffic unter allen Endpunkten, da der Bereitstellungsport möglicherweise noch funktioniert.

Fehlerhafte Back-Ends verursachen eine suboptimale Verteilung des Traffic

Cloud Service Mesh verwendet die Informationen in der HealthCheck-Ressource, die an einen Backend-Dienst angehängt sind, um den Status Ihrer Backends zu bewerten. Cloud Service Mesh verwendet diesen Systemstatus, um Traffic an den nächsten fehlerfreien Back-End. Wenn einige Ihrer Back-Ends fehlerhaft sind, kann der Traffic verarbeitet werden, jedoch mit suboptimaler Verteilung. Zum Beispiel an eine Region fließen, in der noch fehlerfreie Back-Ends vorhanden sind, die jedoch viel weiter vom Client entfernt ist. Das führt zu Latenz. Zur Identifizierung und Überwachung des Systemstatus Ihrer Back-Ends führen Sie die folgenden Schritte aus:

  • Prüfen Sie den Systemstatus Ihres Backend-Dienstes in der Google Cloud Console.
    Zu den Cloud Service Mesh-Diensten
  • Achten Sie darauf, dass für die HealthCheck-Ressource des Logging aktiviert ist.
  • Wenn die Systemdiagnosen in letzter Zeit fehlschlagen, prüfen Sie die Cloud-Audit-Logs. um festzustellen, ob sich die HealthCheck-Konfiguration vor Kurzem geändert hat.

Nächste Schritte