Erweitertes Load Balancing einrichten

Dieses Dokument enthält eine Anleitung zum Einrichten der erweiterten Load Balancing-Optionen, die in der Übersicht zum erweiterten 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