Cloud Service Mesh-Load-Balancing
Cloud Service Mesh verwendet Sidecar-Proxys oder proxylose gRPC-Dienste, um globales Load-Balancing für Ihre internen Mikrodienste bereitzustellen. Sie können interne Mikrodienste (basierend auf Sidecar-Proxys oder proxyloses gRPC) mit Instanzen in mehreren Regionen bereitstellen. Cloud Service Mesh stellt den Sidecar-Proxys oder proxylosen gRPC-Informationen Status-, Routing- und Back-End-Informationen bereit, sodass diese für einen Dienst ein optimales Traffic-Routing zu Anwendungsinstanzen in mehreren Cloud-Regionen vornehmen können.
Im folgenden Diagramm gelangt der Nutzertraffic über einen externen globalen Load-Balancer in eine Google Cloud-Bereitstellung. Der externe Load-Balancer verteilt den Traffic an den Front-End-Mikrodienst in us-central1
oder asia-southeast1
, je nach Standort des Endnutzers.
Die interne Bereitstellung umfasst drei globale Mikrodienste: Front End, Einkaufswagen und Zahlungen. Jeder Dienst wird in verwalteten Instanzgruppen (MIGs) in zwei Regionen ausgeführt: us-central1
und asia-southeast1
. Cloud Service Mesh verwendet einen globalen Load-Balancing-Algorithmus, der den Traffic vom Nutzer in Kalifornien an die in us-central1
bereitgestellten Mikrodienste weiterleitet. Anfragen des Nutzers in Singapur werden an die Mikrodienste in asia-southeast1
weitergeleitet.
Eine eingehende Nutzeranfrage wird zunächst an den Frontend-Mikrodienst adressiert Anschließend leitet der Dienstproxy, der auf dem Host mit dem Frontend installiert ist, den Traffic an den Einkaufswagen weiter. Der Sidecar-Proxy auf dem Host mit dem Einkaufswagen sorgt am Ende für die Weiterleitung des Traffics an den Mikrodienst für Zahlungen. In einer proxylosen gRPC-Umgebung würde Ihre gRPC-Anwendung die Traffic-Verwaltung übernehmen.
Wenn Cloud Service Mesh im folgenden Beispiel Ergebnisse der Systemdiagnose erhält, die darauf hinweisen, dass die VM-Instanzen, auf denen der Einkaufswagen-Mikrodienst in us-central1
ausgeführt wird, fehlerhaft sind, weist Cloud Service Mesh den Sidecar-Proxy für die Front-End-Mikrodienste an, den Traffic auf den in asia-southeast1
ausgeführten Einkaufswagen-Mikrodienst auszulagern. Da Autoscaling in die Trafficverwaltung in Google Cloud eingebunden ist, benachrichtigt Cloud Service Mesh die MIG in asia-southeast1
über den zusätzlichen Traffic und die MIG wird größer.
Cloud Service Mesh erkennt, dass alle Back-Ends des Mikrodiensts für Zahlungen fehlerfrei sind. Daher weist Cloud Service Mesh den Proxy von Envoy für den Einkaufswagen an, einen Teil des Traffics – bis zur konfigurierten Kapazität des Kunden – an asia-southeast1
zu senden und den Rest an us-central1
zu übergeben.
Load-Balancing-Komponenten in Cloud Service Mesh
Während der Cloud Service Mesh-Einrichtung konfigurieren Sie mehrere Load-Balancing-Komponenten:
- Der Back-End-Dienst, der Konfigurationswerte enthält.
- Eine Systemdiagnose für die VMs und die Google Kubernetes Engine-Pods (GKE) in Ihrer Bereitstellung.
- Mit den Dienst-Routing-APIs eine
Mesh
- oderGateway
-Ressource und eineRoute
-Ressource. - Bei den Load-Balancing-APIs eine globale Weiterleitungsregel, die die VIP-Adresse, einen Zielproxy und eine URL-Zuordnung enthält.
Ein mit xDS API kompatibler Sidecar-Proxy (z. B. Envoy) wird auf einer Client-VM-Instanz oder in einem Kubernetes-Pod ausgeführt. Cloud Service Mesh dient als Steuerungsebene und verwendet xDS APIs, um direkt mit jedem Proxy zu kommunizieren. Auf der Datenebene sendet die Anwendung Traffic an die in der Weiterleitungsregel oder der Ressource Mesh
konfigurierte VIP-Adresse. Der Sidecar-Proxy oder Ihre gRPC-Anwendung fängt den Traffic ab und leitet ihn an das entsprechende Back-End weiter.
Das folgende Diagramm zeigt eine Anwendung, die auf Compute Engine-VMs oder GKE-Pods ausgeführt wird, die Komponenten und den Trafficfluss in einer Cloud Service Mesh-Bereitstellung. Sie zeigt Cloud Service Mesh und die Cloud Load Balancing-Ressourcen, die zur Bestimmung des Traffic-Routings verwendet werden. Das Diagramm zeigt die älteren Load-Balancing-APIs.
Nächste Schritte
- Informationen zum Konfigurieren erweiterter Load-Balancing-Funktionen finden Sie unter Erweiterte Load-Balancing-Funktionen – Übersicht.
- Weitere Informationen zur Diensterkennung und zum Abfangen von Traffic finden Sie unter Cloud Service Mesh-Diensterkennung.
- Weitere Informationen zu Cloud Service Mesh mit den Dienst-Routing-APIs finden Sie in der Übersicht.