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