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 mit fortgeschrittenen Kenntnissen. von Cloud Service Mesh und von Load-Balancing-Konzepten.
Hinweise
Aktualisieren Sie die Google Cloud CLI, um sicherzustellen, dass Sie die neueste Version verwenden:
gcloud components update
Erstellen Sie einen neuen Backend-Dienst oder entscheiden Sie, welchen vorhandenen Backend-Dienst Sie verwenden möchten für erweitertes Load-Balancing.
Um einen neuen Back-End-Dienst namens hello-world-backend-service
zu erstellen, verwenden Sie
folgenden Befehl:
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. Beispiel:
richten Sie eine Richtlinie ein, um den
automatischen Kapazitätsausgleich zu aktivieren.
Datei namens hello-world-lb-policy
:
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 eine vorhandene Load-Balancing-Richtlinie des Dienstes verknüpfen mit einem Back-End-Dienst, wenn Sie den Back-End-Dienst 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 \ --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
Zum Konfigurieren des Spray-to-Region-Algorithmus, der den Traffic auf alle Zonen verteilt
in einer Region eine Load-Balancing-Richtlinie für den Dienst 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
Abfolgebasierte Algorithmen konfigurieren
Um den zonenbasierten Algorithmus zu konfigurieren, der Traffic an den lokalen
bevor Traffic an andere Zonen geleitet wird, erstellen Sie ein Dienst-Load-Balancing.
in einer Datei namens hello-world-lb-policy.yaml
an:
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
Erstellen Sie zum Konfigurieren bevorzugter Back-Ends eine Load-Balancing-Richtlinie für den Dienst als folgt:
name: projects/${project-id}/locations/global/backendServices/hello-world-service ... backends: ... preference: PREFERRED
Das folgende Beispiel zeigt die drei Back-Ends 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
Zum Konfigurieren des Cloud Service Mesh für einen bestimmten Wert für den Failover-Zustand
enthalten, fügen Sie Folgendes in eine
Dienst-Load-Balancing-Richtlinie ein, wobei
VALUE
mit einem Wert zwischen 1 und 99. Die Standardwerte für Cloud Service Mesh sind 50
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