Cloud Service Mesh-Load-Balancing

Cloud Service Mesh verwendet Sidecar-Proxys oder proxylose gRPC-Dienste, um ein globales Load-Balancing für interne 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 dem proxylosen gRPC Integritäts-, Routing- und Backend-Informationen zur Verfügung, damit diese ein optimales Traffic-Routing an Anwendungsinstanzen in mehreren Cloud-Regionen für einen Dienst vornehmen können.

Im folgenden Diagramm gelangt der Nutzertraffic über einen externen globalen Load Balancer in eine Google Cloud-Bereitstellung. Je nach Standort des Endnutzers verteilt der externe Load Balancer den Traffic an den Frontend-Mikrodienst in us-central1 oder asia-southeast1.

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 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.

Cloud Service Mesh in einer globalen Load-Balancing-Bereitstellung.
Cloud Service Mesh in einer globalen Load-Balancing-Bereitstellung (zum Vergrößern klicken)

Wenn Cloud Service Mesh im folgenden Beispiel Systemdiagnoseergebnisse erhält, die darauf hinweisen, dass die VM-Instanzen, auf denen der Shopping Cart-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 an den Shopping Cart-Mikrodienst in asia-southeast1 weiterzuleiten. Da das Autoscaling in die Trafficverwaltung in Google Cloudintegriert ist, benachrichtigt Cloud Service Mesh die MIG in asia-southeast1 über den zusätzlichen Traffic und die MIG wird vergrößert.

Cloud Service Mesh erkennt, dass alle Backends des Payments-Mikrodienstes fehlerfrei sind. Daher weist Cloud Service Mesh den Envoy-Proxy für den Shopping Cart an, einen Teil des Traffics (bis zur konfigurierten Kapazität des Kunden) an asia-southeast1 zu senden und den Rest an us-central1 weiterzuleiten.

Failover mit Cloud Service Mesh in einer globalen Load-Balancing-Bereitstellung.
Failover mit Cloud Service Mesh in einer globalen Load-Balancing-Bereitstellung (zum Vergrößern klicken)

Load-Balancing-Komponenten in Cloud Service Mesh

Während der Einrichtung von Cloud Service Mesh konfigurieren Sie mehrere Load-Balancing-Komponenten:

  • Der Backend-Dienst, der Konfigurationswerte enthält.
  • Eine Systemdiagnose für die VMs und die Google Kubernetes Engine-Pods (GKE) in Ihrer Bereitstellung.
  • Mit den Dienstrouting-APIs eine Mesh- oder Gateway-Ressource und eine Route-Ressource.
  • Mit den Load Balancing APIs eine globale Weiterleitungsregel, die die VIP-Adresse, einen Zielproxy und eine URL-Zuordnung enthält.

Ein 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. In der Datenebene sendet die Anwendung Traffic an die in der Weiterleitungsregel oder der Mesh-Ressource konfigurierte VIP-Adresse. Der Sidecar-Proxy oder Ihre gRPC-Anwendung fängt den Traffic ab und leitet ihn an das entsprechende Backend 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. Es 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.

Zu konfigurierende Cloud Service Mesh-Ressourcen.
Zu konfigurierende Cloud Service Mesh-Ressourcen (zum Vergrößern klicken)

Nächste Schritte