Regionalen internen Application Load Balancer mit VM-Instanzgruppen-Back-Ends einrichten

Dieses Dokument enthält Anleitungen zum Konfigurieren eines regionalen internen Application Load Balancer für Ihre Dienste, die auf Compute Engine-VMs ausgeführt werden.

Informationen zum Konfigurieren des Load-Balancings für Ihre Dienste, die in Google Kubernetes Engine-Pods (GKE) ausgeführt werden, finden Sie unter Containernatives Load-Balancing über eigenständige NEGs und Regionalen internen Application Load Balancer an eigenständige NEGs anhängen.

Informationen zum Konfigurieren des Load-Balancings für den Zugriff auf Google APIs und Google-Dienste mithilfe von Private Service Connect finden Sie unter Private Service Connect mit HTTP(S)-Dienststeuerungen konfigurieren.

Die Einrichtung für interne Application Load Balancer besteht aus zwei Teilen:

  • Erforderliche Aufgaben wie Prüfen notwendiger Konten auf die richtigen Berechtigungen und Vorbereiten des VPC-Netzwerks (Virtual Private Cloud) ausführen
  • Load-Balancer-Ressourcen einrichten

Bevor Sie diese Anleitung durcharbeiten, sollten Sie sich mit Folgendem vertraut machen:

Berechtigungen

Damit Sie dieser Anleitung folgen können, müssen Sie in der Lage sein, Instanzen zu erstellen und ein Netzwerk in einem Projekt zu ändern. Sie müssen entweder Inhaber oder Bearbeiter des Projekts sein oder alle folgenden Compute Engine-IAM-Rollen haben.

Aufgabe Erforderliche Rolle
Netzwerke, Subnetze und Load-Balancer-Komponenten erstellen Compute-Netzwerkadministrator
Firewallregeln hinzufügen und löschen Compute-Sicherheitsadministrator
Instanzen erstellen Compute-Instanzadministrator

Weitere Informationen finden Sie in folgenden Leitfäden:

Einrichtung: Übersicht

Sie können einen internen Application Load Balancer konfigurieren, wie im folgenden allgemeinen Konfigurationsablauf beschrieben. Die nummerierten Schritte beziehen sich auf die Zahlen im Diagramm.

Nummerierte Komponenten eines internen Application Load Balancers.
Nummerierte Komponenten des internen Application Load Balancers (zum Vergrößern klicken).

Wie im Diagramm dargestellt, wird in diesem Beispiel ein interner Application Load Balancer in einem VPC-Netzwerk in der Region us-west1 mit einem Backend-Dienst und zwei Backend-Gruppen erstellt.

Das Diagramm zeigt Folgendes:

  1. Ein VPC-Netzwerk mit zwei Subnetzen:

    1. Das eine Subnetz wird für Backends (Instanzgruppen) und die Weiterleitungsregel verwendet. Der primäre IP-Adressbereich ist 10.1.2.0/24.

    2. Das andere Subnetz ist ein Nur-Proxysubnetz in der Region us-west1. Sie müssen in jeder Region eines VPC-Netzwerks, in dem Sie interne Application Load Balancer verwenden, ein Nur-Proxy-Subnetz erstellen. Das Nur-Proxy-Subnetz der Region wird von allen internen Application Load Balancern in der Region gemeinsam genutzt. Quelladressen von Paketen, die der interne Application Load Balancer an die Back-Ends Ihres Dienstes sendet, werden vom Nur-Proxy-Subnetz zugewiesen. In diesem Beispiel hat das Nur-Proxysubnetz für die Region den primären IP-Adressbereich 10.129.0.0/23. Dies ist die für Subnetze empfohlene Größe. Weitere Informationen finden Sie unter Nur-Proxysubnetze.

  2. Eine Firewallregel, die Nur-Proxysubnetz-Traffic in Ihrem Netzwerk zulässt. Dies bedeutet, dass Sie eine Regel hinzufügen müssen, die Traffic von TCP-Port 80, 443 und 8080 über 10.129.0.0/23 zulässt (in diesem Beispiel der Bereich des Nur-Proxysubnetzes). Eine weitere Firewallregel für die Systemdiagnoseprüfungen.

  3. Backend-Compute Engine-VM-Instanzen.

  4. Verwaltete oder nicht verwaltete Instanzgruppen für Compute Engine-VM-Deployments

    Je nach Anforderungen Ihres Deployments können Sie in jeder Zone eine Kombination aus Backend-Gruppentypen verwenden.

  5. Eine regionale Systemdiagnose, die die Bereitschaft Ihrer Back-Ends meldet.

  6. Ein regionaler Backend-Dienst, der die Nutzung und die Integrität von Backends überwacht.

  7. Eine regionale URL-Zuordnung, die die URL einer Anfrage parst und Anfragen anhand des Hosts und Pfades der Anfrage-URL an bestimmte Backend-Dienste weiterleitet.

  8. Ein regionaler HTTP- oder HTTPS-Zielproxy, der eine Anfrage vom Nutzer empfängt und an die URL-Zuordnung weiterleitet. Konfigurieren Sie für HTTPS eine regionale SSL-Zertifikatsressource. Der Zielproxy verwendet das SSL-Zertifikat, um SSL-Traffic zu entschlüsseln, wenn Sie das HTTPS-Load-Balancing konfigurieren. Der Zielproxy kann Traffic über HTTP oder HTTPS an Ihre Instanzen weiterleiten.

  9. Eine Weiterleitungsregel mit der internen IP-Adresse Ihres Load-Balancers zum Weiterleiten jeder eingehenden Anfrage an den Zielproxy.

    Die mit der Weiterleitungsregel verknüpfte interne IP-Adresse kann aus jedem Subnetz im selben Netzwerk und in derselben Region stammen. Beachten Sie folgende Bedingungen:

    • Die IP-Adresse kann (nicht erforderlich) aus demselben Subnetz wie die Backend-Instanzgruppen stammen.
    • Die IP-Adresse darf nicht aus dem reservierten Nur-Proxy-Subnetz stammen, dessen Flag --purpose auf REGIONAL_MANAGED_PROXY gesetzt ist.
    • Wenn Sie die interne IP-Adresse für mehrere Weiterleitungsregeln freigeben möchten, legen Sie das Flag --purpose der IP-Adresse auf SHARED_LOADBALANCER_VIP fest.

    Im Beispiel auf dieser Seite verwendet eine reservierte interne IP-Adresse für die Weiterleitungsregel des regionalen internen Application Load Balancers, statt die Zuweisung einer sitzungsspezifischen internen IP-Adresse zuzulassen. Als Best Practice empfehlen wir, IP-Adressen für Weiterleitungsregeln zu reservieren.

Netzwerk und Subnetze konfigurieren

Sie benötigen ein VPC-Netzwerk mit zwei Subnetzen: eines für die Back-Ends des Load-Balancers und eines für die Proxys des Load-Balancers. Ein interner Application Load Balancer ist regional. Traffic innerhalb des VPC-Netzwerks wird an den Load-Balancer weitergeleitet, wenn sich die Quelle des Traffics in einem Subnetz in derselben Region wie der Load-Balancer befindet.

In diesem Beispiel werden das folgende VPC-Netzwerk, die folgende Region und die folgenden Subnetze verwendet:

  • Netzwerk. Das Netzwerk ist ein VPC-Netzwerk im benutzerdefinierten Modus mit dem Namen lb-network.

  • Subnetz für Back-Ends. Ein Subnetz mit dem Namen backend-subnet in der Region us-west1 verwendet 10.1.2.0/24 für seinen primären IP-Bereich.

  • Subnetz für Proxys Ein Subnetz mit dem Namen proxy-only-subnet in der Region us-west1 verwendet 10.129.0.0/23 für seinen primären IP-Bereich.

Zur Veranschaulichung des globalen Zugriffs wird in diesem Beispiel eine zweite Testclient-VM in einer anderen Region und einem anderen Subnetz erstellt:

  • Region: europe-west1
  • Subnetz: europe-subnet, mit primärem IP-Adressbereich 10.3.4.0/24

Netzwerk und Subnetze konfigurieren

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf VPC-Netzwerk erstellen.

  3. Geben Sie für Name lb-network ein.

  4. Wählen Sie im Abschnitt Subnetze als Modus für die Subnetzerstellung Benutzerdefiniert aus.

  5. Erstellen Sie ein Subnetz für die Back-Ends des Load-Balancers. Geben Sie im Bereich Neues Subnetz folgende Informationen ein:

    • Name: backend-subnet
    • Region: us-west1
    • IP-Adressbereich: 10.1.2.0/24
  6. Klicken Sie auf Fertig.

  7. Klicken Sie auf Subnetz hinzufügen.

  8. Erstellen Sie ein Subnetz, um den globalen Zugriff zu demonstrieren. Geben Sie im Bereich Neues Subnetz folgende Informationen ein:

    • Name: europe-subnet
    • Region: europe-west1
    • IP-Adressbereich: 10.3.4.0/24
  9. Klicken Sie auf Fertig.

  10. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie mit dem Befehl gcloud compute networks create das benutzerdefinierte VPC-Netzwerk:

    gcloud compute networks create lb-network --subnet-mode=custom
    
  2. Erstellen Sie mit dem Befehl gcloud compute networks subnets create ein Subnetz im Netzwerk lb-network in der Region us-west1:

    gcloud compute networks subnets create backend-subnet \
        --network=lb-network \
        --range=10.1.2.0/24 \
        --region=us-west1
    
  3. Erstellen Sie mit dem Befehl gcloud compute networks subnets create ein Subnetz im Netzwerk lb-network in der Region europe-west1:

    gcloud compute networks subnets create europe-subnet \
        --network=lb-network \
        --range=10.3.4.0/24 \
        --region=europe-west1
    

API

Stellen Sie eine POST-Anfrage an die Methode networks.insert. Ersetzen Sie dabei PROJECT_ID durch Ihre Projekt-ID.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/networks

{
 "routingConfig": {
   "routingMode": "REGIONAL"
 },
 "name": "lb-network",
 "autoCreateSubnetworks": false
}

Stellen Sie eine POST-Anfrage an die Methode subnetworks.insert. Ersetzen Sie dabei PROJECT_ID durch Ihre Projekt-ID.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/subnetworks

{
 "name": "backend-subnet",
 "network": "projects/PROJECT_ID/global/networks/lb-network",
 "ipCidrRange": "10.1.2.0/24",
 "region": "projects/PROJECT_ID/regions/us-west1",
}

Stellen Sie eine POST-Anfrage an die Methode subnetworks.insert. Ersetzen Sie dabei PROJECT_ID durch Ihre Projekt-ID.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/europe-west1/subnetworks

{
 "name": "europe-subnet",
 "network": "projects/PROJECT_ID/global/networks/lb-network",
 "ipCidrRange": "10.3.4.0/24",
 "region": "projects/PROJECT_ID/regions/europe-west1",
}

Nur-Proxy-Subnetz konfigurieren

Das Nur-Proxy-Subnetz ist für alle regionalen Envoy-basierten Load-Balancer in der Region us-west1 des lb-network bestimmt.

Console

Wenn Sie die Google Cloud Console verwenden, können Sie das Nur-Proxy-Subnetz später auf der Seite Load-Balancing erstellen.

Führen Sie die folgenden Schritte aus, wenn Sie jetzt das Nur-Proxy-Subnetz erstellen möchten:

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf lb-network, den Namen des VPC-Netzwerks.

  3. Klicken Sie auf Subnetz hinzufügen.

  4. Geben Sie für Name proxy-only-subnet ein.

  5. Wählen Sie bei Region die Option us-west1 aus.

  6. Setzen Sie Zweck auf Regional verwalteter Proxy.

  7. Geben Sie 10.129.0.0/23 als IP-Adressbereich ein.

  8. Klicken Sie auf Hinzufügen.

gcloud

Erstellen Sie das Nur-Proxy-Subnetz mit dem Befehl gcloud compute networks subnets create.

gcloud compute networks subnets create proxy-only-subnet \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=us-west1 \
  --network=lb-network \
  --range=10.129.0.0/23

API

Erstellen Sie das Nur-Proxysubnetz durch die Methode subnetworks.insert und ersetzen Sie PROJECT_ID dabei durch Ihre Projekt-ID.

POST https://compute.googleapis.com/compute/projects/PROJECT_ID/regions/us-west1/subnetworks

{
  "name": "proxy-only-subnet",
  "ipCidrRange": "10.129.0.0/23",
  "network": "projects/PROJECT_ID/global/networks/lb-network",
  "region": "projects/PROJECT_ID/regions/us-west1",
  "purpose": "REGIONAL_MANAGED_PROXY",
  "role": "ACTIVE"
}

Firewallregeln konfigurieren

In diesem Beispiel werden die folgenden Firewallregeln verwendet:

  • fw-allow-ssh: Eine Regel für eingehenden Traffic, die für die Instanzen mit Load-Balancing gilt und eingehende SSH-Verbindungen über TCP-Port 22 von jeder Adresse aus ermöglicht. Sie können einen restriktiveren IP-Quellbereich für diese Regel auswählen. Geben Sie dazu beispielsweise nur die IP-Bereiche des Systems an, von dem aus Sie SSH-Sitzungen initiieren. In diesem Beispiel wird das Ziel-Tag allow-ssh verwendet, um die VMs zu identifizieren, auf die die Firewallregel angewendet wird.

  • fw-allow-health-check. Eine Regel für eingehenden Traffic, die für die Instanzen mit Load-Balancing gilt und Traffic von den Google Cloud-Systemen für Systemdiagnosen zulässt (130.211.0.0/22 und 35.191.0.0/16. In diesem Beispiel wird das Ziel-Tag load-balanced-backend verwendet, um die VMs zu identifizieren, auf die die Firewallregel angewendet wird.

  • fw-allow-proxies. Eine Regel für eingehenden Traffic, die für die Instanzen mit Load-Balancing gilt und TCP-Traffic über Port 80, 443 und 8080 von den verwalteten Proxys des internen Application Load Balancers zulässt. In diesem Beispiel wird das Ziel-Tag load-balanced-backend verwendet, um die VMs zu identifizieren, auf die die Firewallregel angewendet wird.

Ohne diese Firewallregeln blockiert die Standardregel zum Ablehnen von eingehendem Traffic den eingehenden Traffic zu den Backend-Instanzen.

Die Back-End-Instanzen werden von den Ziel-Tags definiert. Ohne die Ziel-Tags gelten die Firewallregeln für alle Ihre Backend-Instanzen im VPC-Netzwerk. Achten Sie beim Erstellen der Back-End-VMs darauf, die angegebenen Ziel-Tags wie in Verwaltete Instanzgruppe erstellen beschrieben zu verwenden.

Console

  1. Rufen Sie in der Google Cloud Console die Seite der Firewall-Richtlinien auf.

    Zu den Firewall-Richtlinien

  2. Klicken Sie auf Firewallregel erstellen, um die Regel zu erstellen, die eingehende SSH-Verbindungen zulässt:

    • Name: fw-allow-ssh
    • Netzwerk: lb-network
    • Trafficrichtung: Eingehend
    • Aktion bei Übereinstimmung: Zulassen
    • Ziele: Angegebene Ziel-Tags
    • Zieltags: allow-ssh
    • Quellfilter: IPv4-Bereiche.
    • IPv4-Quellbereiche: 0.0.0.0/0
    • Protokolle und Ports:
      • Wählen Sie Angegebene Protokolle und Ports aus.
      • Klicken Sie das Kästchen TCP an und geben Sie 22 als Portnummer ein.
  3. Klicken Sie auf Erstellen.

  4. Klicken Sie ein zweites Mal auf Firewallregel erstellen, um die Regel zum Zulassen von Google Cloud-Systemdiagnosen zu erstellen:

    • Name: fw-allow-health-check
    • Netzwerk: lb-network
    • Trafficrichtung: Eingehend
    • Aktion bei Übereinstimmung: Zulassen
    • Ziele: Angegebene Ziel-Tags
    • Zieltags: load-balanced-backend
    • Quellfilter: IPv4-Bereiche.
    • IPv4-Quellbereiche: 130.211.0.0/22 und 35.191.0.0/16
    • Protokolle und Ports:
      • Wählen Sie Angegebene Protokolle und Ports aus.
      • Klicken Sie das Kästchen TCP an und geben Sie 80 als Portnummer ein.
        Sie sollten diese Regeln nur auf Protokolle und Ports beschränken, die mit den von Ihren Systemdiagnosen verwendeten übereinstimmen. Wenn Sie tcp:80 für das Protokoll und den Port verwenden, kann Google Cloud HTTP auf Port 80 verwenden, um Ihre VMs zu kontaktieren. Es kann HTTPS jedoch nicht auf Port 443 verwenden, um den Kontakt herzustellen.
  5. Klicken Sie auf Erstellen.

  6. Klicken Sie ein drittes Mal auf Firewallregel erstellen, um die Regel zu erstellen, die Verbindungen von den Proxyservern des Load-Balancers zu den Back-Ends zulässt:

    • Name: fw-allow-proxies
    • Netzwerk: lb-network
    • Trafficrichtung: Eingehend
    • Aktion bei Übereinstimmung: Zulassen
    • Ziele: Angegebene Ziel-Tags
    • Zieltags: load-balanced-backend
    • Quellfilter: IPv4-Bereiche.
    • IPv4-Quellbereiche: 10.129.0.0/23
    • Protokolle und Ports:
      • Wählen Sie Angegebene Protokolle und Ports aus.
      • Klicken Sie das Kästchen TCP an und geben Sie 80, 443, 8080 als Portnummer ein.
  7. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie die Firewallregel fw-allow-ssh, um SSH-Verbindungen zu VMs mit dem Netzwerk-Tag allow-ssh zu ermöglichen. Wenn Sie source-ranges weglassen, bezieht Google Cloud die Regel auf jede Quelle.

    gcloud compute firewall-rules create fw-allow-ssh \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  2. Erstellen Sie die Regel fw-allow-health-check, um Google Cloud-Systemdiagnosen zuzulassen. In diesem Beispiel wird der gesamte TCP-Traffic von Systemdiagnosetests zugelassen. Sie können jedoch Ihren Anforderungen entsprechend eine kleinere Gruppe von Ports konfigurieren:

    gcloud compute firewall-rules create fw-allow-health-check \
        --network=lb-network \
        --action=allow \
        --direction=ingress \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --target-tags=load-balanced-backend \
        --rules=tcp
    
  3. Erstellen Sie die Regel fw-allow-proxies, um Verbindungen von den Proxys des internen Application Load Balancers zu Ihren Back-Ends zuzulassen. Legen Sie für source-ranges die zugewiesenen Bereiche des Nur-Proxy-Subnetzes fest, z. B. 10.129.0.0/23.

    gcloud compute firewall-rules create fw-allow-proxies \
      --network=lb-network \
      --action=allow \
      --direction=ingress \
      --source-ranges=source-range \
      --target-tags=load-balanced-backend \
      --rules=tcp:80,tcp:443,tcp:8080
    

API

Erstellen Sie die Firewallregel fw-allow-ssh, indem Sie eine POST-Anfrage an die Methode firewalls.insert senden und dabei PROJECT_ID durch Ihre Projekt-ID ersetzen.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls

{
 "name": "fw-allow-ssh",
 "network": "projects/PROJECT_ID/global/networks/lb-network",
 "sourceRanges": [
   "0.0.0.0/0"
 ],
 "targetTags": [
   "allow-ssh"
 ],
 "allowed": [
  {
    "IPProtocol": "tcp",
    "ports": [
      "22"
    ]
  }
 ],
"direction": "INGRESS"
}

Erstellen Sie die Firewallregel fw-allow-health-check, indem Sie eine POST-Anfrage an die Methode firewalls.insert senden und dabei PROJECT_ID durch Ihre Projekt-ID ersetzen.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls

{
 "name": "fw-allow-health-check",
 "network": "projects/PROJECT_ID/global/networks/lb-network",
 "sourceRanges": [
   "130.211.0.0/22",
   "35.191.0.0/16"
 ],
 "targetTags": [
   "load-balanced-backend"
 ],
 "allowed": [
   {
     "IPProtocol": "tcp"
   }
 ],
 "direction": "INGRESS"
}

Erstellen Sie die Firewallregel fw-allow-proxies, um TCP-Traffic im Proxysubnetz für die Methode firewalls.insert zuzulassen. Ersetzen Sie dabei PROJECT_ID durch Ihre Projekt-ID.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/firewalls

{
 "name": "fw-allow-proxies",
 "network": "projects/PROJECT_ID/global/networks/lb-network",
 "sourceRanges": [
   "10.129.0.0/23"
 ],
 "targetTags": [
   "load-balanced-backend"
 ],
 "allowed": [
   {
     "IPProtocol": "tcp",
     "ports": [
       "80"
     ]
   },
 {
     "IPProtocol": "tcp",
     "ports": [
       "443"
     ]
   },
   {
     "IPProtocol": "tcp",
     "ports": [
       "8080"
     ]
   }
 ],
 "direction": "INGRESS"
}

IP-Adresse des Load-Balancers reservieren

Standardmäßig wird für jede Weiterleitungsregel eine IP-Adresse verwendet. Sie können eine gemeinsam genutzte IP-Adresse reservieren, sodass Sie dieselbe IP-Adresse mit mehreren Weiterleitungsregeln verwenden können. Wenn Sie jedoch den Load Balancer mit Private Service Connect veröffentlichen möchten, verwenden Sie keine freigegebene IP-Adresse für die Weiterleitungsregel.

Verwenden Sie backend-subnet für die IP-Adresse der Weiterleitungsregel. Wenn Sie das Nur-Proxy-Subnetz verwenden, schlägt das Erstellen der Weiterleitungsregel fehl.

Console

Sie können eine eigenständige interne IP-Adresse über die Google Cloud Console reservieren.

  1. Rufen Sie die Seite VPC-Netzwerke auf.

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf das Netzwerk, das zum Konfigurieren der Hybridkonnektivität zwischen den Umgebungen verwendet wurde.
  3. Klicken Sie auf Statische interne IP-Adressen und dann auf Statische Adresse reservieren.
  4. Geben Sie für Name l7-ilb-ip-address ein.
  5. Wählen Sie backend-subnet als Subnetz aus.
  6. Wenn Sie angeben möchten, welche IP-Adresse reserviert werden soll, wählen Sie unter Statische IP-Adresse die Option Selbst auswählen aus und geben Sie dann eine benutzerdefinierte IP-Adresse ein. Andernfalls weist das System automatisch eine IP-Adresse im Subnetz zu.
  7. Wenn Sie diese IP-Adresse mit mehreren Weiterleitungsregeln verwenden möchten, wählen Sie unter Zweck die Option Freigegeben aus.
  8. Klicken Sie auf Reservieren, um den Vorgang abzuschließen.

gcloud

  1. Führen Sie in der gcloud CLI den Befehl compute addresses create aus:

    gcloud compute addresses create l7-ilb-ip-address \
      --region=us-west1 \
      --subnet=backend-subnet
    

    Wenn Sie dieselbe IP-Adresse mit mehreren Weiterleitungsregeln verwenden möchten, geben Sie --purpose=SHARED_LOADBALANCER_VIP an.

  2. Verwenden Sie den Befehl compute addresses describe, um die zugewiesene IP-Adresse aufzurufen:

    gcloud compute addresses describe l7-ilb-ip-address \
      --region=us-west1
    

Backend einer verwalteten VM-Instanzgruppe erstellen

In diesem Abschnitt wird gezeigt, wie Sie eine Instanzgruppenvorlage und eine verwaltete Instanzgruppe erstellen. Die verwaltete Instanzgruppe stellt VM-Instanzen bereit, auf denen die Backend-Server eines beispielhaften regionalen internen Application Load Balancers ausgeführt werden. Für Ihre Instanzgruppe können Sie einen HTTP-Dienst definieren und dem entsprechenden Port einen Portnamen zuordnen. Der Backend-Dienst des Load-Balancers leitet den Traffic an den benannten Port weiter. Der Traffic von Clients wird auf Backend-Server verteilt. Zur Veranschaulichung stellen Back-Ends ihre eigenen Hostnamen bereit.

Console

  1. eine Instanzvorlage erstellen Rufen Sie in der Google Cloud Console die Seite Instanzvorlagen auf.

    Zu Instanzvorlagen

    1. Klicken Sie auf Instanzvorlage erstellen.
    2. Geben Sie für Name l7-ilb-backend-template ein.
    3. Das Bootlaufwerk sollte auf ein Debian-Image wie Debian GNU/Linux 12 (bookworm) eingestellt sein. Diese Anleitungen verwenden Befehle, die nur für Debian verfügbar sind, z. B. apt-get.
    4. Klicken Sie auf Erweiterte Optionen.
    5. Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:
      1. Geben Sie für Netzwerk-Tags allow-ssh und load-balanced-backend ein.
      2. Wählen Sie für Netzwerkschnittstellen Folgendes aus:
        • Netzwerk: lb-network
        • Subnetz: backend-subnet
    6. Klicken Sie auf Verwaltung. Fügen Sie im Feld Startskript das nachfolgende Skript ein.

      #! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2
      
    7. Klicken Sie auf Erstellen.

  2. Erstellen Sie eine verwaltete Instanzgruppe. Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

    1. Klicken Sie auf Instanzgruppe erstellen.
    2. Wählen Sie Neue verwaltete Instanzgruppe (zustandslos) aus. Weitere Informationen finden Sie unter Zustandslose oder zustandsorientierte MIGs.
    3. Geben Sie für Name l7-ilb-backend-example ein.
    4. Wählen Sie für Standort die Option Einzelne Zone aus.
    5. Wählen Sie bei Region die Option us-west1 aus.
    6. Wählen Sie bei Zone die Option us-west1-a aus.
    7. Wählen Sie bei Instanzvorlage die Option l7-ilb-backend-template aus.
    8. Geben Sie an, wie viele Instanzen die Gruppe umfassen soll.

      Geben Sie für dieses Beispiel unter Autoscaling die folgenden Optionen an:

      • Wählen Sie für Autoscaling-Modus Off:do not autoscale aus.
      • Geben Sie für Maximale Anzahl von Instanzen den Wert 2 ein.

      Optional können Sie im Abschnitt Autoscaling der Benutzeroberfläche die Instanzgruppe so konfigurieren, dass Instanzen basierend auf der CPU-Auslastung automatisch hinzugefügt oder entfernt werden.

    9. Klicken Sie auf Erstellen.

gcloud

Bei den gcloud-Anleitungen in diesem Handbuch wird davon ausgegangen, dass Sie Cloud Shell oder eine andere Umgebung verwenden, in der Bash installiert ist.

  1. Erstellen Sie mit dem Befehl gcloud compute instance-templates create eine VM-Instanzvorlage mit HTTP-Server.

    gcloud compute instance-templates create l7-ilb-backend-template \
    --region=us-west1 \
    --network=lb-network \
    --subnet=backend-subnet \
    --tags=allow-ssh,load-balanced-backend \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --metadata=startup-script='#! /bin/bash
      apt-get update
      apt-get install apache2 -y
      a2ensite default-ssl
      a2enmod ssl
      vm_hostname="$(curl -H "Metadata-Flavor:Google" \
      http://metadata.google.internal/computeMetadata/v1/instance/name)"
      echo "Page served from: $vm_hostname" | \
      tee /var/www/html/index.html
      systemctl restart apache2'
    
  2. Erstellen Sie mit dem Befehl gcloud compute instance-groups managed create eine verwaltete Instanzgruppe in der Zone.

    gcloud compute instance-groups managed create l7-ilb-backend-example \
        --zone=us-west1-a \
        --size=2 \
        --template=l7-ilb-backend-template
    

API

Erstellen Sie die Instanzvorlage mit der Methode instanceTemplates.insert und ersetzen Sie PROJECT_ID durch Ihre Projekt-ID.


POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/global/instanceTemplates
{
  "name":"l7-ilb-backend-template",
  "properties":{
     "machineType":"e2-standard-2",
     "tags":{
       "items":[
         "allow-ssh",
         "load-balanced-backend"
       ]
     },
     "metadata":{
        "kind":"compute#metadata",
        "items":[
          {
            "key":"startup-script",
            "value":"#! /bin/bash\napt-get update\napt-get install
            apache2 -y\na2ensite default-ssl\na2enmod ssl\n
            vm_hostname=\"$(curl -H \"Metadata-Flavor:Google\"
            \\\nhttp://metadata.google.internal/computeMetadata/v1/instance/name)\"\n
            echo \"Page served from: $vm_hostname\" | \\\ntee
            /var/www/html/index.html\nsystemctl restart apache2"
          }
        ]
     },
     "networkInterfaces":[
       {
         "network":"projects/PROJECT_ID/global/networks/lb-network",
         "subnetwork":"regions/us-west1/subnetworks/backend-subnet",
         "accessConfigs":[
           {
             "type":"ONE_TO_ONE_NAT"
           }
         ]
       }
     ],
     "disks":[
       {
         "index":0,
         "boot":true,
         "initializeParams":{
           "sourceImage":"projects/debian-cloud/global/images/family/debian-12"
         },
         "autoDelete":true
       }
     ]
  }
}

Erstellen Sie in jeder Zone eine verwaltete Instanzgruppe mit der Methode instanceGroupManagers.insert. Ersetzen Sie PROJECT_ID dabei durch Ihre Projekt-ID.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/{zone}/instanceGroupManagers
{
  "name": "l7-ilb-backend-example",
  "zone": "projects/PROJECT_ID/zones/us-west1-a",
  "instanceTemplate": "projects/PROJECT_ID/global/instanceTemplates/l7-ilb-backend-template",
  "baseInstanceName": "l7-ilb-backend-example",
  "targetSize": 2
}

Load-Balancer konfigurieren

In diesem Beispiel wird gezeigt, wie Sie die folgenden Ressourcen für einen regionalen internen Application Load Balancer erstellen:

  • HTTP-Systemdiagnose
  • Backend-Dienst mit einer verwalteten Instanzgruppe als Backend
  • Eine URL-Zuordnung
    • Vergewissern Sie sich, dass Sie auf eine regionale URL-Zuordnung verweisen, wenn eine Region für den HTTP(S)-Zielproxy definiert ist. Eine regionale URL-Zuordnung leitet Anfragen an einen regionalen Back-End-Dienst auf Grundlage von Regeln weiter, die Sie für den Host und den Pfad einer eingehenden URL definieren. Eine regionale URL-Zuordnung kann nur von einer regionalen Zielproxy-Regel in derselben Region referenziert werden.
  • SSL-Zertifikat (für HTTPS)
  • Zielproxy
  • Weiterleitungsregel

Proxyverfügbarkeit

Manchmal haben Google Cloud-Regionen nicht genügend Proxykapazität für einen neuen Load-Balancer. In diesem Fall gibt die Google Cloud Console beim Erstellen des Load-Balancers eine Warnmeldung zur Proxyverfügbarkeit aus. Sie haben folgende Möglichkeiten, dieses Problem zu beheben:

  • Wählen Sie eine andere Region für den Load-Balancer aus. Diese Option kann sinnvoll sein, wenn Sie Back-Ends in einer anderen Region haben.
  • Wählen Sie ein VPC-Netzwerk aus, dem bereits ein Nur-Proxy-Subnetz zugewiesen ist.
  • Warten Sie, bis das Kapazitätsproblem behoben ist.

Console

Konfiguration starten

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf Load-Balancer erstellen.
  3. Wählen Sie unter Typ des Load Balancers die Option Application Load Balancer (HTTP/HTTPS) aus und klicken Sie auf Weiter.
  4. Wählen Sie für Öffentlich oder intern die Option Intern aus und klicken Sie auf Weiter.
  5. Wählen Sie für Regionenübergreifende oder Einzelregion-Bereitstellung die Option Am besten für regionale Arbeitslasten aus und klicken Sie auf Weiter.
  6. Klicken Sie auf Konfigurieren.

Grundlegende Konfiguration

  1. Geben Sie l7-ilb-map als Name für den Load-Balancer ein.
  2. Wählen Sie bei Region die Option us-west1 aus.
  3. Wählen Sie für Netzwerk die Option lb-network aus.

Nur-Proxy-Subnetz reservieren

Reservieren Sie ein Nur-Proxy-Subnetz:

  1. Klicken Sie auf Subnetz reservieren.
  2. Geben Sie für Name proxy-only-subnet ein.
  3. Geben Sie 10.129.0.0/23 als IP-Adressbereich ein.
  4. Klicken Sie auf Hinzufügen.

Backend-Dienst konfigurieren

  1. Klicken Sie auf Backend-Konfiguration.
  2. Wählen Sie im Menü Backend-Dienst erstellen oder auswählen die Option Backend-Dienst erstellen aus.
  3. Legen Sie l7-ilb-backend-service als Name für den Backend-Dienst fest.
  4. Setzen Sie den Backend-Typ auf Instanzgruppe.
  5. In the New backend section:
    1. Legen Sie Instanzgruppe auf l7-ilb-backend-example fest.
    2. Legen Sie für Portnummern den Wert 80 fest.
    3. Setzen Sie den Balancing-Modus auf Auslastung.
    4. Klicken Sie auf Fertig.
  6. Klicken Sie in der Liste Systemdiagnose mit den folgenden Parametern auf Systemdiagnose erstellen:
    1. Name: l7-ilb-basic-check
    2. Protokoll: HTTP
    3. Port: 80
    4. Klicken Sie auf Speichern.
  7. Klicken Sie auf Erstellen.

URL-Zuordnung konfigurieren

  1. Klicken Sie auf Host- und Pfadregeln.

  2. Wählen Sie unter Modus die Option Einfache Host- und Pfadregel aus.

  3. Achten Sie darauf, dass l7-ilb-backend-service der einzige Backend-Dienst für alle nicht übereinstimmenden Hosts und alle nicht übereinstimmenden Pfade ist.

Weitere Informationen zur Trafficverwaltung finden Sie unter Trafficverwaltung einrichten.

Frontend konfigurieren

Bei HTTP:

  1. Klicken Sie auf Frontend-Konfiguration.
  2. Legen Sie den Namen der Weiterleitungsregel auf l7-ilb-forwarding-rule fest.
  3. Legen Sie für Protokoll den Wert HTTP fest.
  4. Legen Sie für Subnetzwerk backend-subnet fest.
  5. Legen Sie als Port 80 fest.
  6. Wählen Sie in der Liste IP-Adresse die Option l7-ilb-ip-address aus.
  7. Klicken Sie auf Fertig.

Bei HTTPS:

  1. Klicken Sie auf Front-End-Konfiguration.
  2. Legen Sie den Namen der Weiterleitungsregel auf l7-ilb-forwarding-rule fest.
  3. Legen Sie für Protokoll den Wert HTTPS (includes HTTP/2) fest.
  4. Legen Sie für Subnetzwerk backend-subnet fest.
  5. Achten Sie darauf, dass der Port auf 443 festgelegt ist, um HTTPS-Traffic zuzulassen.
  6. Wählen Sie in der Liste IP-Adresse die Option l7-ilb-ip-address aus.
  7. Klicken Sie auf die Drop-down-Liste Zertifikat.
    1. Wenn Sie bereits eine selbstverwaltete SSL-Zertifikatressource haben, die Sie als primäres SSL-Zertifikat verwenden möchten, wählen Sie es aus der Liste aus.
    2. Wählen Sie andernfalls Neues Zertifikat erstellen aus.
      1. Legen Sie den Namen des Zertifikats auf l7-ilb-cert fest.
      2. Laden Sie in den entsprechenden Feldern Ihre PEM-formatierten Dateien hoch:
        • Public-Key-Zertifikat
        • Zertifikatskette
        • Privater Schlüssel
      3. Klicken Sie auf Erstellen.
  8. So fügen Sie zusätzlich zur primären SSL-Zertifikatsressource weitere Zertifikatsressourcen hinzu:
    1. Klicken Sie auf Zertifikat hinzufügen.
    2. Wählen Sie ein Zertifikat in der Liste Zertifikate aus oder klicken Sie auf Neues Zertifikat erstellen und befolgen Sie die Anleitung.
  9. Wählen Sie aus der Liste SSL-Richtlinie eine SSL-Richtlinie aus. So erstellen Sie optional eine SSL-Richtlinie:

    1. Wählen Sie in der Liste SSL-Richtlinie die Option Richtlinie erstellen aus.
    2. Geben Sie einen Namen für die SSL-Richtlinie ein.
    3. Wählen Sie eine Mindestversion für TLS aus. Der Standardwert ist TLS 1.0.
    4. Wählen Sie eines der vorkonfigurierten von Google verwalteten Profile oder ein benutzerdefiniertes Profil aus, mit dem Sie SSL-Features einzeln auswählen können. Anschließend werden Aktivierte Features und Deaktivierte Features angezeigt.
    5. Klicken Sie auf Speichern.

    Wenn Sie keine SSL-Richtlinien erstellt haben, wird eine Google Cloud-SSL-Standardrichtlinie angewendet.

  10. Klicken Sie auf Fertig.

Konfiguration prüfen

  1. Klicken Sie auf Prüfen und abschließen.
  2. Prüfen Sie die Konfigurationseinstellungen des Load-Balancers.
  3. Optional: Klicken Sie auf Entsprechender Code, um die REST API-Anfrage aufzurufen, die zum Erstellen des Load-Balancers verwendet wird.
  4. Klicken Sie auf Erstellen.

gcloud

  1. Definieren Sie die HTTP-Systemdiagnose mit dem Befehl gcloud compute health-checks create http.

    gcloud compute health-checks create http l7-ilb-basic-check \
       --region=us-west1 \
       --use-serving-port
    
  2. Definieren Sie den Backend-Dienst mit dem Befehl gcloud compute backend-services create.

    gcloud compute backend-services create l7-ilb-backend-service \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --protocol=HTTP \
      --health-checks=l7-ilb-basic-check \
      --health-checks-region=us-west1 \
      --region=us-west1
    
  3. Fügen Sie dem Back-End-Dienst mit dem Befehl gcloud compute backend-services add-backend Back-Ends hinzu.

    gcloud compute backend-services add-backend l7-ilb-backend-service \
      --balancing-mode=UTILIZATION \
      --instance-group=l7-ilb-backend-example \
      --instance-group-zone=us-west1-a \
      --region=us-west1
    
  4. Erstellen Sie die URL-Zuordnung mit dem Befehl gcloud compute url-maps create.

    gcloud compute url-maps create l7-ilb-map \
      --default-service=l7-ilb-backend-service \
      --region=us-west1
    
  5. Erstellen Sie den Zielproxy.

    Bei HTTP:

    Erstellen Sie für einen internen HTTP-Load-Balancer den Zielproxy mit dem Befehl gcloud compute target-http-proxies create.

    gcloud compute target-http-proxies create l7-ilb-proxy \
      --url-map=l7-ilb-map \
      --url-map-region=us-west1 \
      --region=us-west1
    

    Bei HTTPS:

    Sie können entweder Compute Engine- oder Zertifikatmanager-Zertifikate erstellen. Verwenden Sie eine der folgenden Methoden, um Zertifikate mit Zertifikatmanager zu erstellen:

    • Selbst verwaltete regionale Zertifikate Informationen zum Erstellen und Verwenden regionaler selbstverwalteter Zertifikate finden Sie unter Regionales selbstverwaltetes Zertifikat bereitstellen. Zertifikatszuordnungen werden nicht unterstützt.

    • Regionale von Google verwaltete Zertifikate Zertifikatszuordnungen werden nicht unterstützt.

      Die folgenden Arten von regionalen von Google verwalteten Zertifikaten werden von Certificate Manager unterstützt:

    • Nachdem Sie Zertifikate erstellt haben, hängen Sie diese direkt an den Zielproxy an.

      Weisen Sie Ihre Dateipfade den entsprechenden Variablennamen zu.

      export LB_CERT=path to PEM-formatted file
      
      export LB_PRIVATE_KEY=path to PEM-formatted file
      

      Erstellen Sie ein regionales SSL-Zertifikat mit dem Befehl gcloud compute ssl-certificates create.

      gcloud compute ssl-certificates create l7-ilb-cert \
        --certificate=$LB_CERT \
        --private-key=$LB_PRIVATE_KEY \
        --region=us-west1
      

      Verwenden Sie das regionale SSL-Zertifikat, um mit dem Befehl gcloud compute target-https-proxies create einen Zielproxy zu erstellen.

      gcloud compute target-https-proxies create l7-ilb-proxy \
        --url-map=l7-ilb-map \
        --region=us-west1 \
        --ssl-certificates=l7-ilb-cert
      
    • Erstellen Sie die Weiterleitungsregel.

      Bei benutzerdefinierten Netzwerken müssen Sie in der Weiterleitungsregel auf das Subnetz verweisen. Achten Sie darauf, dass dies das VM-Subnetz und nicht das Proxy-Subnetz ist.

      Bei HTTP:

      Verwenden Sie den Befehl gcloud compute forwarding-rules create mit den richtigen Flags.

      gcloud compute forwarding-rules create l7-ilb-forwarding-rule \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=lb-network \
        --subnet=backend-subnet \
        --address=l7-ilb-ip-address \
        --ports=80 \
        --region=us-west1 \
        --target-http-proxy=l7-ilb-proxy \
        --target-http-proxy-region=us-west1
      

      Bei HTTPS:

      Erstellen Sie die Weiterleitungsregel mit dem Befehl gcloud compute forwarding-rules create und den richtigen Flags.

      gcloud compute forwarding-rules create l7-ilb-forwarding-rule \
        --load-balancing-scheme=INTERNAL_MANAGED \
        --network=lb-network \
        --subnet=backend-subnet \
        --address=l7-ilb-ip-address \
        --ports=443 \
        --region=us-west1 \
        --target-https-proxy=l7-ilb-proxy \
        --target-https-proxy-region=us-west1
      

API

Erstellen Sie die Systemdiagnose durch Senden einer POST-Anfrage an die Methode regionHealthChecks.insert. Ersetzen Sie dabei PROJECT_ID durch Ihre Projekt-ID.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/{region}/healthChecks

{
"name": "l7-ilb-basic-check",
"type": "HTTP",
"httpHealthCheck": {
  "portSpecification": "USE_SERVING_PORT"
}
}

Erstellen Sie den regionalen Back-End-Dienst, indem Sie eine POST-Anfrage an die Methode regionBackendServices.insert stellen und dabei PROJECT_ID durch Ihre Projekt-ID ersetzen.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/backendServices

{
"name": "l7-ilb-backend-service",
"backends": [
  {
    "group": "projects/PROJECT_ID/zones/us-west1-a/instanceGroups/l7-ilb-backend-example",
    "balancingMode": "UTILIZATION"
  }
],
"healthChecks": [
  "projects/PROJECT_ID/regions/us-west1/healthChecks/l7-ilb-basic-check"
],
"loadBalancingScheme": "INTERNAL_MANAGED"
}

Erstellen Sie die URL-Zuordnung durch Stellen einer POST-Anfrage an die Methode regionUrlMaps.insert. Ersetzen Sie dabei PROJECT_ID durch Ihre Projekt-ID.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/urlMaps

{
"name": "l7-ilb-map",
"defaultService": "projects/PROJECT_ID/regions/us-west1/backendServices/l7-ilb-backend-service"
}

Bei HTTP:

Erstellen Sie den Ziel-HTTP-Proxy durch Stellen einer POST-Anfrage an die Methode regionTargetHttpProxies.insert. Ersetzen Sie dabei PROJECT_ID durch Ihre Projekt-ID.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/targetHttpProxy

{
"name": "l7-ilb-proxy",
"urlMap": "projects/PROJECT_ID/global/urlMaps/l7-ilb-map",
"region": "us-west1"
}

Erstellen Sie die Firewallregel POST, indem Sie eine -Anfrage an die Methode forwardingRules.insertPROJECT_ID senden und dabei durch Ihre Projekt-ID ersetzen.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules

{
"name": "l7-ilb-forwarding-rule",
"IPAddress": "IP_ADDRESS",
"IPProtocol": "TCP",
"portRange": "80-80",
"target": "projects/PROJECT_ID/regions/us-west1/targetHttpProxies/l7-ilb-proxy",
"loadBalancingScheme": "INTERNAL_MANAGED",
"subnetwork": "projects/PROJECT_ID/regions/us-west1/subnetworks/backend-subnet",
"network": "projects/PROJECT_ID/global/networks/lb-network",
"networkTier": "PREMIUM"
}

Bei HTTPS:

Sie können entweder Compute Engine- oder Zertifikatmanager-Zertifikate erstellen. Verwenden Sie eine der folgenden Methoden, um Zertifikate mit Zertifikatmanager zu erstellen:

  • Selbst verwaltete regionale Zertifikate Informationen zum Erstellen und Verwenden regionaler selbstverwalteter Zertifikate finden Sie unter Regionales selbstverwaltetes Zertifikat bereitstellen. Zertifikatszuordnungen werden nicht unterstützt.

  • Regionale von Google verwaltete Zertifikate Zertifikatszuordnungen werden nicht unterstützt.

    Die folgenden Arten von regionalen von Google verwalteten Zertifikaten werden von Certificate Manager unterstützt:

  • Nachdem Sie Zertifikate erstellt haben, hängen Sie diese direkt an den Zielproxy an.

    Lesen Sie die Zertifikat- und privaten Schlüsseldateien und erstellen Sie dann das SSL-Zertifikat. Im folgenden Beispiel wird gezeigt, wie das mit Python funktioniert.

    from pathlib import Path
    from pprint import pprint
    from typing import Union
    
    from googleapiclient import discovery
    
    
    def create_regional_certificate(
        project_id: str,
        region: str,
        certificate_file: Union[str, Path],
        private_key_file: Union[str, Path],
        certificate_name: str,
        description: str = "Certificate created from a code sample.",
    ) -> dict:
        """
        Create a regional SSL self-signed certificate within your Google Cloud project.
    
        Args:
            project_id: project ID or project number of the Cloud project you want to use.
            region: name of the region you want to use.
            certificate_file: path to the file with the certificate you want to create in your project.
            private_key_file: path to the private key you used to sign the certificate with.
            certificate_name: name for the certificate once it's created in your project.
            description: description of the certificate.
    
            Returns:
            Dictionary with information about the new regional SSL self-signed certificate.
        """
        service = discovery.build("compute", "v1")
    
        # Read the cert into memory
        with open(certificate_file) as f:
            _temp_cert = f.read()
    
        # Read the private_key into memory
        with open(private_key_file) as f:
            _temp_key = f.read()
    
        # Now that the certificate and private key are in memory, you can create the
        # certificate resource
        ssl_certificate_body = {
            "name": certificate_name,
            "description": description,
            "certificate": _temp_cert,
            "privateKey": _temp_key,
        }
        request = service.regionSslCertificates().insert(
            project=project_id, region=region, body=ssl_certificate_body
        )
        response = request.execute()
        pprint(response)
    
        return response
    
    

    Erstellen Sie den Ziel-HTTPS-Proxy, indem Sie eine POST-Anfrage an die Methode regionTargetHttpsProxies.insert senden und dabei PROJECT_ID durch Ihre Projekt-ID ersetzen.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/regionTargetHttpsProxy
    
    {
    "name": "l7-ilb-proxy",
    "urlMap": "projects/PROJECT_ID/regions/us-west1/urlMaps/l7-ilb-map",
    "sslCertificates": /projects/PROJECT_ID/regions/us-west1/sslCertificates/SSL_CERT_NAME
    }
    

    Erstellen Sie die Firewallregel POST,. Dazu senden Sie eine -Anfrage an die Methode forwardingRules.insert, wobei Sie PROJECT_ID durch Ihre Projekt-ID ersetzen.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/us-west1/forwardingRules
    
    {
    "name": "l7-ilb-forwarding-rule",
    "IPAddress": "IP_ADDRESS",
    "IPProtocol": "TCP",
    "portRange": "80-80",
    "target": "projects/PROJECT_ID/regions/us-west1/targetHttpsProxies/l7-ilb-proxy",
    "loadBalancingScheme": "INTERNAL_MANAGED",
    "subnetwork": "projects/PROJECT_ID/regions/us-west1/subnetworks/backend-subnet",
    "network": "projects/PROJECT_ID/global/networks/lb-network",
    "networkTier": "PREMIUM",
    }
    

Load-Balancer testen

Erstellen Sie eine Client-VM, um den Load Balancer zu testen. Richten Sie dann eine SSH-Sitzung mit der VM ein und senden Sie Traffic von der VM zum Load Balancer.

VM-Instanz zum Testen der Konnektivität erstellen

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu Seite „VM-Instanzen“

  2. Klicken Sie auf Instanz erstellen.

  3. Legen Sie als Name l7-ilb-client-us-west1-a fest.

  4. Legen Sie für Zone den Wert us-west1-a fest.

  5. Klicken Sie auf Erweiterte Optionen.

  6. Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:

    1. Geben Sie bei Netzwerk-Tags den Wert allow-ssh ein.
    2. Wählen Sie für Netzwerkschnittstellen Folgendes aus:
      1. Netzwerk: lb-network
      2. Subnetz: backend-subnet
  7. Klicken Sie auf Erstellen.

gcloud

gcloud compute instances create l7-ilb-client-us-west1-a \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --network=lb-network \
    --subnet=backend-subnet \
    --zone=us-west1-a \
    --tags=allow-ssh

Traffic an den Load-Balancer senden

Melden Sie sich in der soeben erstellten Instanz an und testen Sie, ob die HTTP(S)-Dienste auf den Backends über die IP-Adresse der Weiterleitungsregel des regionalen internen Application Load Balancers erreichbar sind und ob Traffic ausgeglichen auf die Backend-Instanzen verteilt wird.

Mit SSH eine Verbindung zu jeder Clientinstanz herstellen

gcloud compute ssh l7-ilb-client-us-west1-a \
    --zone=us-west1-a

IP-Adresse des Load-Balancers abrufen

Verwenden Sie den Befehl gcloud compute addresses describe, um die zugewiesene IP-Adresse aufzurufen:

gcloud compute addresses describe l7-ilb-ip-address \
    --region=us-west1

Prüfen Sie, ob die IP-Adresse ihren Hostnamen bereitstellt.

Ersetzen Sie IP_ADDRESS durch die IP-Adresse des Load-Balancers.

curl IP_ADDRESS

Ersetzen Sie für HTTPS-Tests curl durch:

curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:IP_ADDRESS:443

Das Flag -k bewirkt, dass curl die Zertifikatsvalidierung überspringt.

100 Anfragen ausführen und prüfen, ob ein Load-Balancing stattfindet

Ersetzen Sie IP_ADDRESS durch die IP-Adresse des Load-Balancers.

Bei HTTP:

{
  RESULTS=
  for i in {1..100}
  do
      RESULTS="$RESULTS:$(curl --silent IP_ADDRESS)"
  done
  echo "***"
  echo "*** Results of load-balancing: "
  echo "***"
  echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c
  echo
}

Bei HTTPS:

{
  RESULTS=
  for i in {1..100}
  do
      RESULTS="$RESULTS:$(curl -k -s 'https://test.example.com:443' --connect-to test.example.com:443:IP_ADDRESS:443)"
  done
  echo "***"
  echo "*** Results of load-balancing: "
  echo "***"
  echo "$RESULTS" | tr ':' '\n' | grep -Ev "^$" | sort | uniq -c
  echo
}

Zusätzliche Konfigurationsoptionen

In diesem Abschnitt wird die Konfiguration des Beispiels um alternative und zusätzliche Optionen erweitert. Alle Aufgaben sind optional. Sie können sie in beliebiger Reihenfolge ausführen.

Globalen Zugriff aktivieren

Sie können den globalen Zugriff für den regionalen internen Application Load Balancer und den regionalen internen Proxy-Network Load Balancer aktivieren, um sie für Clients in allen Regionen zugänglich zu machen. Die Back-Ends Ihres Beispiel-Load-Balancers müssen sich weiterhin in einer einzigen Region (us-west1) befinden.

Regionaler interner Application Load Balancer mit globalem Zugriff.
Interner Application Load Balancer mit globalem Zugriff (zum Vergrößern klicken).

Sie können eine vorhandene regionale Weiterleitungsregel nicht ändern, um den globalen Zugriff zu aktivieren. Zu diesem Zweck müssen Sie eine neue Weiterleitungsregel erstellen und die vorherige Weiterleitungsregel löschen. Außerdem kann eine erstellte Weiterleitungsregel mit aktiviertem globalem Zugriff nicht mehr geändert werden. Zum Deaktivieren des globalen Zugriffs müssen Sie eine neue regionale Weiterleitungsregel erstellen und die vorherige globale Weiterleitungsregel löschen.

Wenn Sie den globalen Zugriff konfigurieren möchten, nehmen Sie die folgenden Änderungen an der Konfiguration vor:

Console

Erstellen Sie eine neue Weiterleitungsregel für den Load-Balancer:

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie in der Spalte Name auf den Load-Balancer.

  3. Klicken Sie auf Frontend-Konfiguration.

  4. Klicken Sie auf Frontend-IP und Port hinzufügen.

  5. Geben Sie den Namen und die Subnetzdetails für die neue Weiterleitungsregel ein.

  6. Wählen Sie als Subnetzwerk backend-subnet aus.

  7. Für die IP-Adresse können Sie entweder dieselbe IP-Adresse wie eine vorhandene Weiterleitungsregel auswählen, eine neue IP-Adresse reservieren oder eine sitzungsspezifische IP-Adresse verwenden. Die Freigabe derselben IP-Adresse für mehrere Weiterleitungsregeln ist nur möglich, wenn Sie das Flag --purpose der IP-Adresse beim Erstellen der IP-Adresse auf SHARED_LOADBALANCER_VIP setzen.

  8. Geben Sie als Portnummer 110 ein.

  9. Wählen Sie für Globaler Zugriff die Option Aktivieren aus.

  10. Klicken Sie auf Fertig.

  11. Klicken Sie auf Aktualisieren.

gcloud

  1. Erstellen Sie eine neue Weiterleitungsregel für den Load-Balancer mit dem --allow-global-access-Flag.

    Bei HTTP:

    gcloud compute forwarding-rules create l7-ilb-forwarding-rule-global-access \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=lb-network \
      --subnet=backend-subnet \
      --address=10.1.2.99 \
      --ports=80 \
      --region=us-west1 \
      --target-http-proxy=l7-ilb-proxy \
      --target-http-proxy-region=us-west1 \
      --allow-global-access
    

    Bei HTTPS:

    gcloud compute forwarding-rules create l7-ilb-forwarding-rule-global-access \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=lb-network \
      --subnet=backend-subnet \
      --address=10.1.2.99 \
      --ports=443 \
      --region=us-west1 \
      --target-https-proxy=l7-ilb-proxy \
      --target-https-proxy-region=us-west1 \
      --allow-global-access
    
  2. Mit dem Befehl gcloud compute forwarding-rules describe können Sie feststellen, ob für eine Weiterleitungsregel der globale Zugriff aktiviert ist. Beispiel:

    gcloud compute forwarding-rules describe l7-ilb-forwarding-rule-global-access \
      --region=us-west1 \
      --format="get(name,region,allowGlobalAccess)"
    

    Wenn der globale Zugriff aktiviert ist, wird das Wort True in der Ausgabe nach Namen und Region der Weiterleitungsregel angezeigt.

Client-VM erstellen, um den globalen Zugriff zu testen

Console

  1. Rufen Sie in der Google Cloud Console die Seite VM-Instanzen auf.

    Zu Seite „VM-Instanzen“

  2. Klicken Sie auf Instanz erstellen.

  3. Legen Sie als Name europe-client-vm fest.

  4. Legen Sie für Zone den Wert europe-west1-b fest.

  5. Klicken Sie auf Erweiterte Optionen.

  6. Klicken Sie auf Netzwerk und konfigurieren Sie die folgenden Felder:

    1. Geben Sie bei Netzwerk-Tags den Wert allow-ssh ein.
    2. Wählen Sie für Netzwerkschnittstellen Folgendes aus:
      • Netzwerk: lb-network
      • Subnetz: europe-subnet
  7. Klicken Sie auf Erstellen.

gcloud

Erstellen Sie eine Client-VM in der europe-west1-b-Zone.

gcloud compute instances create europe-client-vm \
    --zone=europe-west1-b \
    --image-family=debian-12 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=europe-subnet

Verbindung zum VM-Client herstellen und testen

  1. Stellen Sie über ssh eine Verbindung zum Client her.

    gcloud compute ssh europe-client-vm \
        --zone=europe-west1-b
    
  2. Testen Sie Verbindungen zum Load-Balancer, wie Sie es vom vm-client in der us-west1-Region getan haben.

    curl http://10.1.2.99
    

Sitzungsaffinität aktivieren

Diese Verfahren zeigen, wie Sie einen Backend-Dienst für den regionalen internen Application Load Balancer oder den regionenübergreifenden internen Application Load Balancer (Vorschau) aktualisieren, damit der Backend-Dienst verwendet die generierte Cookie-Affinität, Header-Feld-Affinität oder HTTP-Cookie-Affinität.

Wenn die generierte Cookie-Affinität aktiviert ist, gibt der Load-Balancer bei der ersten Anfrage ein Cookie aus. Bei jeder nachfolgenden Anfrage mit demselben Cookie leitet der Load-Balancer die Anfrage an dieselbe Backend-VM-Instanz oder denselben Backend-Endpunkt weiter. In diesem Beispiel heißt das Cookie GCILB.

Wenn die Header-Feld-Affinität aktiviert ist, leitet der Load-Balancer Anfragen an Backend-VMs oder Endpunkte in einer Netzwerk-Endpunktgruppe (NEG) anhand des Werts des mit dem Flag --custom-request-header angegebenen HTTP-Headers weiter. Die Header-Feld-Affinität ist nur gültig, wenn die Load-Balancing-Lokalitätsrichtlinie entweder RING_HASH oder MAGLEV ist und der konsistente Hash des Backend-Dienstes den Namen des HTTP-Headers angibt.

Wenn die HTTP-Cookie-Affinität aktiviert ist, leitet der Load-Balancer Anfragen an Back-End-VMs oder Endpunkte in einer NEG anhand eines HTTP-Cookies weiter, das im Flag HTTP_COOKIE mit dem optionalen Flag --affinity-cookie-ttl angegeben wird. Wenn der Client das Cookie in seiner HTTP-Anfrage nicht bereitstellt, generiert der Proxy das Cookie und gibt es in einem Set-Cookie-Header an den Client zurück. Die HTTP-Cookie-Affinität ist nur gültig, wenn die Load-Balancing-Lokalitätsrichtlinie entweder RING_HASH oder MAGLEV ist und der konsistente Hash des Backend-Dienstes das HTTP-Cookie angibt.

Console

So aktivieren oder ändern Sie die Sitzungsaffinität für einen Backend-Dienst:

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen

  2. Klicken Sie auf Back-Ends.
  3. Klicken Sie auf l7-ilb-backend-service, den Namen des Backend-Dienstes, den Sie für dieses Beispiel erstellt haben, und dann auf Bearbeiten.
  4. Klicken Sie auf der Seite Backend-Dienstdetails auf Erweiterte Konfiguration.
  5. Wählen Sie unter Sitzungsaffinität die gewünschte Art der Sitzungsaffinität aus.
  6. Klicken Sie auf Aktualisieren.

gcloud

Mit den folgenden Befehlen der Google Cloud CLI können Sie den Backend-Dienst auf verschiedene Arten der Sitzungsaffinität aktualisieren:

    gcloud compute backend-services update l7-ilb-backend-service \
        --session-affinity=[GENERATED_COOKIE | HEADER_FIELD | HTTP_COOKIE | CLIENT_IP] \
        --region=us-west1
    

API

Zum Festlegen der Sitzungsaffinität senden Sie eine -Anfrage an die Methode backendServices/patch.

    PATCH https://compute.googleapis.com/compute/v1/projects/[PROJECT_ID]/regions/us-west1/regionBackendServices/l7-ilb-backend-service
    {
      "sessionAffinity": ["GENERATED_COOKIE" | "HEADER_FIELD" | "HTTP_COOKIE" | "CLIENT_IP" ]
    }
    

Einschränken, welche Clients Traffic an den Load-Balancer senden können

Sie können verhindern, dass Clients eine Verbindung zu einer Weiterleitungsregel-VIP des internen Application Load Balancers herstellen, indem Sie für diese Clients Firewallregeln für ausgehenden Traffic konfigurieren. Legen Sie diese Firewallregeln für bestimmte Client-VMs fest, basierend auf Dienstkonten oder Tags.

Mit Firewallregeln können Sie den eingehenden Traffic nicht auf bestimmte Weiterleitungsregel-VIPs des internen Application Load Balancers beschränken. Jeder Client im selben VPC-Netzwerk und in derselben Region wie die Weiterleitungsregel-VIP kann generell Traffic an die Weiterleitungsregel-VIP senden.

Außerdem stammen alle Anfragen an Back-Ends von Proxys, die IP-Adressen im Bereich des Nur-Proxy-Subnetzes verwenden. Es ist nicht möglich, Firewallregeln zu erstellen, die eingehenden Traffic zu diesen Back-Ends anhand der von einem Client verwendeten Weiterleitungsregel-VIP zulassen oder ablehnen.

Die folgenden Beispiele zeigen, wie Sie Firewallregeln für ausgehenden Traffic verwenden können, um den Traffic zur Weiterleitungsregel-VIP des Load-Balancers zu beschränken.

Console

Zum Identifizieren der Client-VMs taggen Sie die spezifischen VMs, die Sie einschränken möchten. Mit diesen Tags werden Firewallregeln mit den getaggten Client-VMs verknüpft. Fügen Sie das Tag in diesen Schritten dem Feld TARGET_TAG hinzu.

Verwenden Sie dazu eine einzelne Firewallregel oder mehrere Regeln.

Einzelne Firewallregel für ausgehenden Traffic

Sie können eine Firewallregel für ausgehenden Traffic so konfigurieren, dass der gesamte ausgehende Traffic von getaggten Client-VMs an die VIP eines Load-Balancers abgelehnt wird.

  1. Rufen Sie in der Google Cloud Console die Seite Firewallregeln auf.

    Zu Firewallregeln

  2. Klicken Sie auf Firewallregel erstellen, um die Regel zu erstellen, durch die ausgehender Traffic von getaggten Client-VMs an die VIP eines Load-Balancers abgelehnt wird.

    • Name: fr-deny-access
    • Netzwerk: lb-network
    • Priorität: 100
    • Trafficrichtung: Ausgehend
    • Aktion bei Übereinstimmung: Ablehnen
    • Ziele: Specified target tags
    • Zieltags: TARGET_TAG
    • Zielfilter: IP-Bereiche
    • Ziel-IP-Bereiche: 10.1.2.99
    • Protokolle und Ports:
      • Wählen Sie Angegebene Protokolle und Ports aus.
      • Klicken Sie das Kästchen tcp an und geben Sie 80 als Portnummer ein.
  3. Klicken Sie auf Erstellen.

Mehrere Firewallregeln für ausgehenden Traffic

Ein skalierbareres Vorgehen besteht darin, zwei Regeln festzulegen. Eine Standardregel mit niedriger Priorität, die verhindert, dass Clients auf die VIP des Load-Balancers zugreifen. Eine zweite Regel mit höherer Priorität, dank der eine Teilmenge von getaggten Clients auf die VIP des Load-Balancers zugreifen kann. Nur getaggte VMs können auf die VIP zugreifen.

  1. Rufen Sie in der Google Cloud Console die Seite Firewallregeln auf.

    Zu Firewallregeln

  2. Klicken Sie auf Firewallregel erstellen, um die Regel mit niedrigerer Priorität zu erstellen und den Zugriff standardmäßig abzulehnen:

    • Name: fr-deny-all-access-low-priority
    • Netzwerk: lb-network
    • Priorität: 200
    • Trafficrichtung: Ausgehend
    • Aktion bei Übereinstimmung: Ablehnen
    • Ziele: Specified target tags
    • Zieltags: TARGET_TAG
    • Zielfilter: IP-Bereiche
    • Ziel-IP-Bereiche: 10.1.2.99
    • Protokolle und Ports:
      • Wählen Sie Angegebene Protokolle und Ports aus.
      • Klicken Sie das Kästchen TCP an und geben Sie 80 als Portnummer ein.
  3. Klicken Sie auf Erstellen.

  4. Klicken Sie auf Firewallregel erstellen, um die Regel mit höherer Priorität zu erstellen, um Traffic von bestimmten getaggten Instanzen zuzulassen.

    • Name: fr-allow-some-access-high-priority
    • Netzwerk: lb-network
    • Priorität: 100
    • Trafficrichtung: Ausgehend
    • Aktion bei Übereinstimmung: Zulassen
    • Ziele: Angegebene Ziel-Tags
    • Zieltags: TARGET_TAG
    • Zielfilter: IP-Bereiche
    • Ziel-IP-Bereiche: 10.1.2.99
    • Protokolle und Ports:
      • Wählen Sie Angegebene Protokolle und Ports aus.
      • Klicken Sie das Kästchen TCP an und geben Sie 80 als Portnummer ein.
  5. Klicken Sie auf Erstellen.

gcloud

Zum Identifizieren der Client-VMs taggen Sie die spezifischen VMs, die Sie einschränken möchten. Fügen Sie das Tag in diesen Schritten dem Feld TARGET_TAG hinzu.

Verwenden Sie dazu eine einzelne Firewallregel oder mehrere Regeln.

Einzelne Firewallregel für ausgehenden Traffic

Sie können eine Firewallregel für ausgehenden Traffic so konfigurieren, dass der gesamte ausgehende Traffic von getaggten Client-VMs an die VIP eines Load-Balancers abgelehnt wird.

gcloud compute firewall-rules create fr-deny-access \
  --network=lb-network \
  --action=deny \
  --direction=egress \
  --rules=tcp \
  --priority=100 \
  --destination-ranges=10.1.2.99 \
  --target-tags=TARGET_TAG

Mehrere Firewallregeln für ausgehenden Traffic

Ein skalierbareres Vorgehen besteht darin, zwei Regeln festzulegen: eine Standardregel mit niedriger Priorität, die verhindert, dass alle Clients auf die VIP des Load-Balancers zugreifen, und eine zweite Regel mit höherer Priorität, über die eine Teilmenge von getaggten Clients auf den VIP des Load-Balancers zugreifen kann. Nur getaggte VMs können auf die VIP zugreifen.

  1. Erstellen Sie die Regel mit niedrigerer Priorität:

    gcloud compute firewall-rules create fr-deny-all-access-low-priority \
      --network=lb-network \
      --action=deny \
      --direction=egress \
      --rules=tcp \
      --priority=200 \
      --destination-ranges=10.1.2.99
    
  2. Erstellen Sie die Regel mit höherer Priorität:

    gcloud compute firewall-rules create fr-allow-some-access-high-priority \
      --network=lb-network \
      --action=allow \
      --direction=egress \
      --rules=tcp \
      --priority=100 \
      --destination-ranges=10.1.2.99 \
      --target-tags=TARGET_TAG
    

Wenn Sie den Zugriff über Dienstkonten steuern möchten, verwenden Sie beim Erstellen von Firewallregeln das Flag --target-service-accounts-Option anstelle des Flags --target-tags.

Eingeschränkten Zugriff auf Back-Ends des internen Application Load Balancers basierend auf Subnetzen skalieren

Es ist nicht ratsam, separate Firewallregeln zu verwalten oder neue IP-Adressen mit Load-Balancing zu bestehenden Regeln hinzuzufügen, wie im vorherigen Abschnitt beschrieben, wenn die Anzahl der Weiterleitungsregeln zunimmt. Sie können dies verhindern, indem Sie IP-Adressen von Weiterleitungsregeln aus einem reservierten Subnetz zuweisen. Anschließend kann der Traffic von getaggten Instanzen oder Dienstkonten zugelassen oder blockiert werden. Dazu wird das reservierte Subnetz als Zielbereich für Firewallregeln verwendet. Auf diese Weise können Sie den Zugriff auf eine Gruppe von Weiterleitungsregel-VIPs effektiv steuern, ohne VIP-spezifische Firewallregeln für ausgehenden Traffic verwenden zu müssen.

Im Folgenden werden die grundlegenden Schritte beschrieben, mit denen Sie separat alle anderen erforderlichen Load-Balancer-Ressourcen erstellen.

gcloud

  1. Erstellen Sie ein regionales Subnetz, das für die Zuordnung von IP-Adressen mit Load-Balancing für Weiterleitungsregeln verwendet wird:

    gcloud compute networks subnets create l7-ilb-restricted-subnet \
      --network=lb-network \
      --region=us-west1 \
      --range=10.127.0.0/24
    
  2. Erstellen Sie eine Weiterleitungsregel, die eine Adresse aus dem Subnetz verwendet. Im folgenden Beispiel wird die Adresse 10.127.0.1 aus dem Subnetz verwendet, das im vorherigen Schritt erstellt wurde.

    gcloud compute forwarding-rules create l7-ilb-forwarding-rule-restricted \
      --load-balancing-scheme=INTERNAL_MANAGED \
      --network=lb-network \
      --subnet=l7-ilb-restricted-subnet \
      --address=10.127.0.1 \
      --ports=80 \
      --region=us-west1 \
      --target-http-proxy=l7-ilb-proxy \
      --target-http-proxy-region=us-west1
    

  3. Erstellen Sie eine Firewallregel, um den Traffic für die Bereichs-IP-Adressen im Subnetz der Weiterleitungsregel (l7-ilb-restricted-subnet) zu beschränken:

    gcloud compute firewall-rules create restrict-traffic-to-subnet \
      --network=lb-network \
      --action=deny \
      --direction=egress \
      --rules=tcp:80 \
      --priority=100 \
      --destination-ranges=10.127.0.0/24 \
      --target-tags=TARGET_TAG
    

Backend-Teileinstellung konfigurieren

Die Backend-Teilmenge verbessert die Leistung und Skalierbarkeit, indem jeder der Proxy-Instanzen eine Teilmenge von Backends zugewiesen wird. Wenn dies für einen Backend-Dienst aktiviert ist, wird die Anzahl der von jeder Proxy-Instanz verwendeten Backends von der Backend-Teilmengeneinstellung so angepasst:

  • Wenn die Anzahl der Proxy-Instanzen, die am Load-Balancer teilnehmen, zunimmt, nimmt die Teilmenge ab.

  • Wenn die Gesamtzahl der Backends in einem Netzwerk die Kapazität einer einzelnen Proxy-Instanz überschreitet, wird die Teilmenge automatisch für jeden Dienst reduziert, für den die Backend-Teileinstellung aktiviert ist.

In diesem Beispiel wird gezeigt, wie Sie die Ressourcen für den regionalen internen Application Load Balancer erstellen und die Backend-Teilmengeneinstellung aktivieren:

  1. Verwenden Sie die Beispielkonfiguration, um einen regionalen Backend-Dienst l7-ilb-backend-service zu erstellen.
  2. Aktivieren Sie die Backend-Teilmengeneinstellung, indem Sie das Flag --subsetting-policy als CONSISTENT_HASH_SUBSETTING angeben. Setzen Sie das Load Balancing-Schema auf INTERNAL_MANAGED.

    gcloud

    Verwenden Sie den folgenden gcloud-Befehl, um l7-ilb-backend-service mit Backend-Teileinstellung zu aktualisieren:

    gcloud beta compute backend-services update l7-ilb-backend-service \
       --region=us-west1 \
       --subsetting-policy=CONSISTENT_HASH_SUBSETTING
    

    API

    Stellen Sie eine PATCH-Anfrage an die Methode regionBackendServices/patch-Methode.

    PATCH https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/us-west1/backendServices/l7-ilb-backend-service
    
    {
     "subsetting":
    {
     "policy": CONSISTENT_HASH_SUBSETTING
    }
    }
    

Sie können das Backend für das Load-Balancing auch optimieren, indem Sie die Richtlinie localityLbPolicy festlegen. Weitere Informationen finden Sie unter Trafficrichtlinien.

Verwenden Sie dieselbe IP-Adresse für mehrere interne Weiterleitungsregeln

Damit mehrere interne Weiterleitungsregeln dieselbe interne IP-Adresse haben, müssen Sie die IP-Adresse reservieren und das Flag --purpose auf SHARED_LOADBALANCER_VIP setzen.

gcloud

gcloud compute addresses create SHARED_IP_ADDRESS_NAME \
    --region=REGION \
    --subnet=SUBNET_NAME \
    --purpose=SHARED_LOADBALANCER_VIP
Wenn Sie HTTP-Traffic an HTTPS weiterleiten müssen, können Sie zwei Weiterleitungsregeln erstellen, die eine gemeinsame IP-Adresse nutzen. Weitere Informationen finden Sie unter HTTP-zu-HTTPS-Weiterleitung für interne Application Load Balancer einrichten.

HTTP-Keepalive-Zeitlimit des Clients aktualisieren

Der in den vorherigen Schritten erstellte Load Balancer wurde mit einem Standardwert für das Client-HTTP-Keepalive-Zeitlimit konfiguriert.

Folgen Sie der nachstehenden Anleitung, um das HTTP-Keepalive-Zeitlimit des Clients zu aktualisieren.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.

    Load-Balancing aufrufen.

  2. Klicken Sie auf den Namen des Load-Balancers, den Sie ändern möchten.
  3. Klicken Sie auf Bearbeiten.
  4. Klicken Sie auf Frontend-Konfiguration.
  5. Maximieren Sie Erweiterte Funktionen. Geben Sie für HTTP-Keepalive-Zeitlimit ein Zeitlimit ein.
  6. Klicken Sie auf Aktualisieren.
  7. Klicken Sie zum Prüfen Ihrer Änderungen auf Prüfen und abschließen und dann auf Aktualisieren.

gcloud

Aktualisieren Sie bei einem HTTP-Load Balancer den Ziel-HTTP-Proxy mit dem Befehl gcloud compute target-http-proxies update.

      gcloud compute target-http-proxies update TARGET_HTTP_PROXY_NAME \
         --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
         --region=REGION
      

Aktualisieren Sie bei einem HTTPS-Load Balancer den Ziel-HTTPS-Proxy mit dem Befehl gcloud compute target-https-proxies update.

      gcloud compute target-https-proxies update TARGET_HTTP_PROXY_NAME \
         --http-keep-alive-timeout-sec=HTTP_KEEP_ALIVE_TIMEOUT_SEC \
         --region REGION
      

Ersetzen Sie Folgendes:

  • TARGET_HTTP_PROXY_NAME ist der Name des HTTP-Ziel-Proxys.
  • TARGET_HTTPS_PROXY_NAME ist der Name des HTTPS-Ziel-Proxys.
  • HTTP_KEEP_ALIVE_TIMEOUT_SEC ist das HTTP-Keepalive-Zeitlimit von 5 bis 600 Sekunden.

Nächste Schritte