Erweitertes Load Balancing einrichten
Dieses Dokument enthält eine Anleitung zum Einrichten der erweiterten Load Balancing-Optionen, die in der Übersicht über das erweiterte Load Balancing beschrieben werden. Dieses Dokument richtet sich an Nutzer, die mindestens grundlegende Kenntnisse von Cloud Service Mesh und Load Balancing-Konzepten haben.
Hinweise
Aktualisieren Sie die Google Cloud CLI, um sicherzustellen, dass Sie die neueste Version verwenden:
gcloud components update
Erstellen Sie einen neuen Back-End-Dienst oder entscheiden Sie, welchen vorhandenen Back-End-Dienst Sie für das erweiterte Load Balancing verwenden möchten.
Verwenden Sie den folgenden Befehl, um einen neuen Backend-Dienst namens hello-world-backend-service
zu erstellen:
gcloud compute backend-services create hello-world-backend-service \ --global \ --protocol=HTTP \ --health-checks hello-world-health-check \ --load-balancing-scheme=INTERNAL_SELF_MANAGED
Load Balancing-Richtlinie für Dienste mit YAML erstellen
Sie können Load-Balancing-Richtlinien für Dienste in einer YAML-Datei definieren. So richten Sie beispielsweise in einer Datei namens hello-world-lb-policy
eine Richtlinie ein, um die Funktion zum automatischen Kapazitätsentzug zu aktivieren:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy autoCapacityDrain: enable: True
Nachdem Sie die YAML-Datei erstellt haben, importieren Sie sie:
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
Verknüpfen Sie abschließend die Load-Balancing-Richtlinie für Dienste mit dem Backend-Dienst:
gcloud compute backend-services update hello-world-backend-service \ --service-lb-policy hello-world-lb-policy \ --global
Alternativ können Sie beim Erstellen eines Backend-Dienstes eine vorhandene Load-Balancing-Richtlinie für Dienste mit dem Backend-Dienst verknüpfen:
gcloud compute backend-services create hello-world-backend-service \ --global \ --protocol=HTTP \ --health-checks hello-world-health-check \ --load-balancing-scheme=INTERNAL_SELF_MANAGED \ --service-lb-policy hello-world-lb-policy
Diese Anleitung deckt nur Änderungen an der Back-End-Dienstressource ab. Ihre Cloud Service Mesh-Bereitstellung muss außerdem eine Systemdiagnose und Firewallregeln enthalten. Außerdem müssen Sie nach Bedarf Backends hinzufügen.
Algorithmus für die Zufallsverteilung in Regionen konfigurieren
Wenn Sie den Algorithmus „Spray-to-Region“ konfigurieren möchten, der den Traffic auf alle Zonen in einer Region verteilt, erstellen Sie eine Dienst-Load-Balancing-Richtlinie in einer Datei namens hello-world-lb-policy.yaml
:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy loadBalancingAlgorithm: SPRAY_TO_REGION
Importieren Sie die YAML-Datei:
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
Sie können diesen Algorithmus auch mit der gcloud CLI konfigurieren:
gcloud network-services service-lb-policies create hello-world-lb-policy \ --load-balancing-algorithm=SPRAY_TO_REGION \ --location=global
Algorithmus für die abfolgebasierte Vermittlung nach Zone konfigurieren
Wenn Sie den Algorithmus „Wasserfall nach Zone“ konfigurieren möchten, der Traffic an die lokale Zone sendet, bevor er an andere Zonen weitergeleitet wird, erstellen Sie eine Dienst-Load-Balancing-Richtlinie in einer Datei namens hello-world-lb-policy.yaml
:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy loadBalancingAlgorithm: WATERFALL_BY_ZONE
Importieren Sie die YAML-Datei:
gcloud network-services service-lb-policies import hello-world-lb-policy \ --source=hello-world-lb-policy.yaml \ --location=global
Sie können diesen Algorithmus auch mit der gcloud CLI konfigurieren:
gcloud network-services service-lb-policies create hello-world-lb-policy \ --load-balancing-algorithm=WATERFALL_BY_ZONE \ --location=global
Bevorzugte Back-Ends konfigurieren
Wenn Sie bevorzugte Back-Ends konfigurieren möchten, erstellen Sie eine Load-Balancing-Richtlinie für Dienste. Gehen Sie dazu so vor:
name: projects/${project-id}/locations/global/backendServices/hello-world-service ... backends: ... preference: PREFERRED
Im folgenden Beispiel sind drei Backends zu sehen: MIG1
, MIG2
und MIG3
:
name: .. ... - backends name: MIG1 preference: PREFERRED - backends name: MIG2 preference: DEFAULT - backends name: MIG3 ...
Sie können diese Funktion auch mit der gcloud CLI konfigurieren:
gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ [...] --preference=PREFERRED \ --global
So aktualisieren Sie die bevorzugten Back-Ends:
gcloud compute backend-services update-backend BACKEND_SERVICE_NAME \ [...] --preference=PREFERRED
Automatischen Kapazitätsausgleich konfigurieren
Wenn Sie Cloud Service Mesh so konfigurieren möchten, dass ein Back-End basierend auf seinem Zustand automatisch entlastet wird, erstellen Sie eine Load-Balancing-Richtlinie für Dienste. Gehen Sie dazu so vor:
name: projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy autoCapacityDrain: enable: True
Sie können diese Funktion auch mit der gcloud CLI konfigurieren:
gcloud network-services service-lb-policies create capacity-drain-policy \ --auto-capacity-drain \ --location=global
Failover-Verhalten anpassen
Wenn Sie Cloud Service Mesh für einen bestimmten Wert für den Failover-Grenzwert für den Zustand konfigurieren möchten, fügen Sie Folgendes in eine Dienst-Load-Balancing-Richtlinie ein und ersetzen Sie VALUE
durch einen Wert zwischen 1 und 99. Die Standardwerte sind 50 für Cloud Service Mesh mit proxylosem gRPC und 70 für Cloud Service Mesh mit Envoy.
projects/${project-id}/locations/global/serviceLbPolicies/hello-world-lb-policy failoverConfig: failoverHealthThreshold: VALUE
So passen Sie das Failover-Verhalten mit der gcloud CLI an:
gcloud network-services service-lb-policies create failover-health-threshold--policy \ --failover-health-threshold=VALUE \ --location=global