Regionalen internen Application Load Balancer mit Hybridkonnektivität einrichten.

Auf dieser Seite wird gezeigt, wie Sie einen regionalen internen Application Load Balancer bereitstellen, um Load-Balancing auf Traffic an Netzwerk-Endpunkte anzuwenden, die sich lokal oder in anderen öffentlichen Clouds befinden und über Hybridkonnektivität erreichbar sind.

In der Übersicht über NEGs mit Hybrid-Konnektivität werden die Netzwerkanforderungen zum Einrichten von Hybrid-Load-Balancing erläutert.

Einrichtung: Übersicht

Auf dieser Seite wird die folgende Beispielbereitstellung eingerichtet:

Beispiel für regionalen internen Application Load Balancer für Hybridkonnektivität.
Beispiel für regionalen internen Application Load Balancer für Hybridkonnektivität (zum Vergrößern klicken)

Sie müssen Hybridkonnektivität konfigurieren, bevor Sie eine Bereitstellung mit Hybrid-Load-Balancing einrichten. Auf dieser Seite wird nicht die Einrichtung von Hybridkonnektivität behandelt.

Beachten Sie je nach ausgewähltem Produkt für Hybridkonnektivität (entweder Cloud VPN oder Cloud Interconnect (Dedicated oder Partner)) die entsprechende Produktdokumentation.

Berechtigungen

Zum Einrichten des Hybrid-Load-Balancings benötigen Sie die folgenden Berechtigungen:

  • Mit Google Cloud

    • Berechtigungen zum Herstellen von Hybridkonnektivität zwischen Google Cloud und Ihrer lokalen Umgebung oder anderen Cloud-Umgebungen. Eine Liste der erforderlichen Berechtigungen finden Sie in der jeweiligen Dokumentation zum Netzwerkverbindungsprodukt.
    • Berechtigungen zum Erstellen einer Hybridkonnektivitäts-NEG und des Load-Balancers. Die Rolle „Compute-Load-Balancer-Administrator” (roles/compute.loadBalancerAdmin) enthält die zum Ausführen der in dieser Anleitung beschriebenen Aufgaben erforderlichen Berechtigungen.
  • In Ihrer lokalen Umgebung oder sonstigen Cloud-Umgebung außerhalb von Google Cloud

    • Berechtigungen zum Konfigurieren von Netzwerkendpunkten, damit Dienste in Ihrer lokalen Umgebung oder in anderen Cloud-Umgebungen über eine IP:Port-Kombination aus Google Cloud erreicht werden können. Für weitere Informationen wenden Sie sich an den Netzwerkadministrator Ihrer Umgebung.
    • Berechtigungen zum Erstellen von Firewallregeln in Ihrer lokalen Umgebung oder in anderen Cloud-Umgebungen, damit die Systemdiagnoseprüfungen von Google die Endpunkte erreichen können.

Um die Anleitung auf dieser Seite abzuschließen, müssen Sie außerdem eine Hybridkonnektivitäts-NEG, einen Load-Balancer sowie zonale NEGs (und ihre Endpunkte) erstellen, die als Google Cloud-basierte Back-Ends für den Load-Balancer dienen.

Sie sollten entweder Inhaber oder Bearbeiter des Projekts sein oder die folgenden IAM-Rollen für Compute Engine haben:

Aufgabe Erforderliche Rolle
Netzwerke, Subnetze und Load-Balancer-Komponenten erstellen Compute-Netzwerkadministrator (roles/compute.networkAdmin)
Firewallregeln hinzufügen und löschen Compute-Sicherheitsadministrator (roles/compute.securityAdmin)
Instanzen erstellen Compute-Instanzadministrator (roles/compute.instanceAdmin)

Hybridkonnektivität einrichten

Ihre Google Cloud-Umgebung und Ihre lokale Umgebung oder sonstigen Cloud-Umgebungen müssen über Hybridkonnektivität verbunden sein. Dafür werden entweder Cloud Interconnect-VLAN-Anhänge oder Cloud VPN-Tunnel mit Cloud Router verwendet. Wir empfehlen die Verwendung einer Verbindung mit Hochverfügbarkeit.

Ein Cloud Router, der für das globale dynamische Routing aktiviert ist, erkennt den spezifischen Endpunkt über das Border Gateway Protocol (BGP) und programmiert ihn in Ihrem Google Cloud-VPC-Netzwerk. Regionales dynamisches Routing wird nicht unterstützt. Statische Routen werden ebenfalls nicht unterstützt.

Das VPC-Netzwerk, mit dem Sie entweder Cloud Interconnect oder Cloud VPN konfigurieren, ist dasselbe Netzwerk, das Sie auch zum Konfigurieren der Bereitstellung des Hybrid-Load-Balancing verwenden. Achten Sie darauf, dass die Subnetz-CIDR-Bereiche Ihres VPC-Netzwerks nicht mit Ihren Remote-CIDR-Bereichen in Konflikt stehen. Bei Überschneidung von IP-Adressen haben Subnetzrouten Vorrang vor Remote-Verbindungen.

Eine Anleitung finden Sie in der folgenden Dokumentation:

Umgebung außerhalb von Google Cloud einrichten

Führen Sie die folgenden Schritte aus, um Ihre lokale Umgebung oder sonstige Cloud-Umgebung für das Hybrid-Load-Balancing einzurichten:

  • Konfigurieren Sie Netzwerkendpunkte, um lokale Dienste in Google Cloud verfügbar zu machen (IP:Port).
  • Konfigurieren Sie Firewallregeln in Ihrer lokalen Umgebung oder sonstigen Cloud-Umgebung.
  • Konfigurieren Sie Cloud Router so, dass bestimmte erforderliche Routen in Ihrer privaten Umgebung beworben werden.

Netzwerkendpunkte einrichten

Nachdem Sie die Hybridkonnektivität eingerichtet haben, konfigurieren Sie einen oder mehrere Netzwerkendpunkte innerhalb Ihrer lokalen Umgebung oder anderer Cloud-Umgebungen, die über Cloud Interconnect oder Cloud VPN mit einer IP:port-Kombination erreichbar ist. Diese IP:port-Kombination wird als einzelner Endpunkt oder als mehrere Endpunkte für die Hybridkonnektivitäts-NEG konfiguriert, die später in diesem Vorgang in Google Cloud erstellt wird.

Wenn mehrere Pfade zum IP-Endpunkt vorhanden sind, folgt das Routing dem unter Cloud Router – Übersicht beschriebenen Verhalten.

Firewallregeln einrichten

Die folgenden Firewallregeln müssen in Ihrer lokalen Umgebung oder einer anderen Cloud-Umgebung erstellt werden:

  • Erstellen Sie eine Firewallregel „eingehenden Traffic zulassen“ in lokalen oder anderen Cloudumgebungen, damit Traffic aus dem Nur-Proxy-Subnetz der Region die Endpunkte erreichen kann.
  • Die Prüfbereiche der Systemdiagnose von Google müssen bei Hybrid-NEGs nicht auf die Zulassungsliste gesetzt werden. Wenn Sie jedoch eine Kombination aus hybriden und zonalen NEGs in einem einzelnen Backend-Dienst verwenden, müssen Sie die Prüfbereiche der Systemdiagnose von Google für die zonalen NEGs auf die Zulassungsliste setzen.

Konfigurieren Sie Cloud Router für die Bewerbung der folgenden benutzerdefinierten IP-Bereiche in Ihrer lokalen Umgebung oder einer anderen Cloud-Umgebung:

  • Der Bereich des Nur-Proxy-Subnetzes der Region.

Google Cloud-Umgebung einrichten

Verwenden Sie für die folgenden Schritte dasselbe VPC-Netzwerk (in diesem Verfahren NETWORK genannt), mit dem die Hybridkonnektivität zwischen den Umgebungen konfiguriert wurde.

Achten Sie außerdem darauf, dass die verwendete Region (in diesem Verfahren REGION genannt) mit der Region übereinstimmt, die zum Erstellen des Cloud VPN-Tunnels oder des Cloud Interconnect-VLAN-Anhangs verwendet wurde.

Nur-Proxy-Subnetz konfigurieren

Dieses Nur-Proxy-Subnetz wird für alle regionalen Envoy-basierten Load-Balancer in der Region REGION verwendet.

Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
    Zur Seite „VPC-Netzwerke“
  2. Wechseln Sie zu dem Netzwerk, in dem die Hybridkonnektivität zwischen den Umgebungen konfiguriert wurde.
  3. Klicken Sie auf Subnetz hinzufügen.
  4. Geben Sie einen Namen ein: PROXY_ONLY_SUBNET_NAME.
  5. Wählen Sie eine Region aus: REGION.
  6. Setzen Sie Zweck auf Regional verwalteter Proxy.
  7. Geben Sie einen IP-Adressbereich ein: PROXY_ONLY_SUBNET_RANGE
  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_NAME \
  --purpose=REGIONAL_MANAGED_PROXY \
  --role=ACTIVE \
  --region=REGION \
  --network=NETWORK \
  --range=PROXY_ONLY_SUBNET_RANGE

Load-Balancer-Subnetz konfigurieren

Dieses Subnetz wird zum Erstellen der zonalen NEG-Back-Ends, des Front-Ends und der internen IP-Adresse des Load-Balancers verwendet.

Cloud Console

  1. Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
    Zur Seite „VPC-Netzwerke“
  2. Rufen Sie das Netzwerk auf, das zum Konfigurieren der Hybridkonnektivität zwischen den Umgebungen verwendet wurde.
  3. Im Bereich Subnetze:
    • Legen Sie Modus für Subnetzerstellung auf Benutzerdefiniert fest.
    • Geben Sie im Bereich Neues Subnetz folgende Informationen ein:
      • Name: LB_SUBNET_NAME
      • Region: REGION
      • IP-Adressbereich: LB_SUBNET_RANGE
    • Klicken Sie auf Fertig.
  4. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie ein Subnetz in dem Netzwerk, in dem die Hybridkonnektivität zwischen den Umgebungen konfiguriert wurde.

    gcloud compute networks subnets create LB_SUBNET_NAME \
        --network=NETWORK \
        --range=LB_SUBNET_RANGE \
        --region=REGION
    

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.

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 einen Namen ein: LB_IP_ADDRESS.
  5. Wählen Sie LB_SUBNET_NAME 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 LB_IP_ADDRESS \
      --region=REGION \
      --subnet=LB_SUBNET_NAME \
    
  2. Verwenden Sie den Befehl compute addresses describe, um die zugewiesene IP-Adresse aufzurufen:

    gcloud compute addresses describe LB_IP_ADDRESS \
      --region=REGION
    

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

Firewallregeln für zonale NEGs erstellen

In diesem Beispiel erstellen Sie die folgenden Firewallregeln für die zonalen NEG-Back-Ends in Google Cloud:

  • 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 allow-health-check verwendet, um die Backend-VMs zu identifizieren, auf die sie angewendet werden soll. Die Prüfbereiche der Systemdiagnose von Google müssen bei Hybrid-NEGs nicht auf die Zulassungsliste gesetzt werden. Wenn Sie jedoch eine Kombination aus hybriden und zonalen NEGs in einem einzelnen Backend-Dienst verwenden, müssen Sie die Prüfbereiche der Systemdiagnose von Google für die zonalen NEGs auf die Zulassungsliste setzen.
  • fw-allow-ssh: Eine Regel für eingehenden Traffic, die eingehende SSH-Verbindungen an 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 sie angewendet werden soll.
  • fw-allow-proxy-only-subnet: Eine Regel für eingehenden Traffic, die zulässt, dass Verbindungen vom Nur-Proxy-Subnetz die Back-Ends erreichen.

Console

  1. Rufen Sie in der Google Cloud Console die Seite Firewall auf.
    Zu den Firewall-Richtlinien
  2. Klicken Sie auf Firewallregel erstellen, um die Regel zu erstellen, die Traffic von Systemdiagnoseprüfungen zulässt:
    1. Geben Sie als Namen fw-allow-health-check ein.
    2. Wählen Sie unter Netzwerk die Option NETWORK aus.
    3. Wählen Sie unter Ziele Angegebene Ziel-Tags aus.
    4. Tragen Sie im Feld Ziel-Tags allow-health-check ein.
    5. Legen Sie unter Quellfilter die Option IPv4-Bereiche fest.
    6. Legen Sie unter Quell-IPv4-Bereiche die Werte 130.211.0.0/22 und 35.191.0.0/16 fest.
    7. Wählen Sie unter Protokolle und Ports die Option Angegebene Protokolle und Ports aus.
    8. Wählen Sie TCP aus und geben Sie 80 als Portnummer ein.
    9. Klicken Sie auf Erstellen.
  3. Klicken Sie noch einmal auf Firewallregel erstellen, um die Regel zu erstellen, die eingehende SSH-Verbindungen zulässt:
    1. Name: fw-allow-ssh
    2. Netzwerk: NETWORK
    3. Priorität: 1000
    4. Trafficrichtung: Eingehend
    5. Aktion bei Übereinstimmung: Zulassen
    6. Ziele: Angegebene Ziel-Tags
    7. Zieltags: allow-ssh
    8. Quellfilter: IPv4-Bereiche.
    9. IPv4-Quellbereiche: 0.0.0.0/0
    10. Protokolle und Ports: Wählen Sie Angegebene Protokolle und Ports aus.
    11. Wählen Sie TCP aus und geben Sie 22 als Portnummer ein.
    12. Klicken Sie auf Erstellen.
  4. Klicken Sie noch einmal auf Firewallregel erstellen, um die Regel zu erstellen, die eingehende Verbindungen vom Nur-Proxy-Subnetz zulässt:
    1. Name: fw-allow-proxy-only-subnet
    2. Netzwerk: NETWORK
    3. Priorität: 1000
    4. Trafficrichtung: Eingehend
    5. Aktion bei Übereinstimmung: Zulassen
    6. Ziele: Angegebene Ziel-Tags
    7. Zieltags: allow-proxy-only-subnet
    8. Quellfilter: IPv4-Bereiche.
    9. IPv4-Quellbereiche: PROXY_ONLY_SUBNET_RANGE
    10. Protokolle und Ports: Wählen Sie Angegebene Protokolle und Ports aus.
    11. Wählen Sie TCP aus und geben Sie 80 als Portnummer ein.
    12. Klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie die Regel fw-allow-health-check-and-proxy, damit die Google Cloud-Systemdiagnosen die Backend-Instanzen auf dem TCP-Port 80 erreichen können:

    gcloud compute firewall-rules create fw-allow-health-check \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-health-check \
        --source-ranges=130.211.0.0/22,35.191.0.0/16 \
        --rules=tcp:80
    
  2. 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=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-ssh \
        --rules=tcp:22
    
  3. Erstellen Sie eine Firewallregel zum Zulassen von eingehendem Traffic für das Nur-Proxy-Subnetz, damit der Load-Balancer mit Backend-Instanzen auf dem TCP-Port 80 kommunizieren kann:

    gcloud compute firewall-rules create fw-allow-proxy-only-subnet \
        --network=NETWORK \
        --action=allow \
        --direction=ingress \
        --target-tags=allow-proxy-only-subnet \
        --source-ranges=PROXY_ONLY_SUBNET_RANGE \
        --rules=tcp:80
    

Zonale NEG einrichten

Für Google Cloud-basierte Back-Ends sollten Sie mehrere zonale NEGs in derselben Region konfigurieren, in der Sie Hybridkonnektivität konfiguriert haben.

In diesem Beispiel wird eine zonale NEG mit Endpunkten des Typs GCE_VM_IP_PORT in der Region REGION eingerichtet. Erstellen Sie zuerst die VMs in der Zone GCP_NEG_ZONE. Erstellen Sie dann eine zonale NEG in derselben GCP_NEG_ZONE und fügen Sie der NEG die Netzwerkendpunkte der VMs hinzu.

VMs erstellen

Console

  1. Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
    Zu „VM-Instanzen“
  2. Klicken Sie auf Instanz erstellen.
  3. Legen Sie als Name vm-a1 fest.
  4. Wählen Sie als Region REGION und dann eine beliebige Zone aus. In diesem Verfahren wird sie als GCP_NEG_ZONE bezeichnet.
  5. Achten Sie darauf, dass im Abschnitt Bootlaufwerk Debian GNU/Linux 12 (bookworm) als Bootlaufwerk-Optionen ausgewählt ist. Klicken Sie auf Auswählen, um das Image bei Bedarf zu ändern.
  6. Klicken Sie auf Erweiterte Optionen und nehmen Sie die folgenden Änderungen vor:

    • Klicken Sie auf Netzwerke und fügen Sie die folgenden Netzwerk-Tags hinzu: allow-ssh, allow-health-check und allow-proxy-only-subnet.
    • Klicken Sie unter Netzwerkschnittstellen auf Bearbeiten , nehmen Sie die folgenden Änderungen vor und klicken Sie dann auf Fertig:
      • Netzwerk: NETWORK
      • Subnetz: LB_SUBNET_NAME
      • Primäre interne IP: flüchtig (automatisch)
      • Externe IP: sitzungsspezifisch
    • Klicken Sie auf Verwaltung. Kopieren Sie den folgenden Skriptinhalt und fügen Sie ihn im Feld Startskript ein. Der Skriptinhalt ist für alle vier VMs gleich:

      #! /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.

  8. Wiederholen Sie die folgenden Schritte, um eine zweite VM zu erstellen. Verwenden Sie dabei die folgende Kombination aus Name und Zone:

    • Name: vm-a2, Zone: GCP_NEG_ZONE

gcloud

Erstellen Sie die VMs. Führen Sie dazu den folgenden Befehl zweimal aus und verwenden Sie diese Kombinationen für den Namen der VM und ihrer Zone. Der Skriptinhalt ist für beide VMs identisch.

  • VM_NAME von vm-a1 und einer GCP_NEG_ZONE-Zone Ihrer Wahl
  • VM_NAME von vm-a2 und derselben GCP_NEG_ZONE-Zone

    gcloud compute instances create VM_NAME \
        --zone=GCP_NEG_ZONE \
        --image-family=debian-10 \
        --image-project=debian-cloud \
        --tags=allow-ssh,allow-health-check,allow-proxy-only-subnet \
        --subnet=LB_SUBNET_NAME \
        --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'
    

Zonale NEG erstellen

Console

So erstellen Sie eine zonale Netzwerk-Endpunktgruppe:

  1. Gehen Sie in der Google Cloud Console zur Seite "Netzwerk-Endpunktgruppen".
    Zur Seite "Netzwerk-Endpunktgruppen"
  2. Klicken Sie auf NETZWERK-ENDPUNKTGRUPPE ERSTELLEN.
  3. Geben Sie einen Namen für die zonale NEG ein. In diesem Verfahren als GCP_NEG_NAME bezeichnet.
  4. Wählen Sie den Typ der Netzwerk-Endpunktgruppe aus: Netzwerk-Endpunktgruppe (zonal).
  5. Wählen Sie das Netzwerk aus: NETWORK
  6. Wählen Sie das Subnetz aus: LB_SUBNET_NAME
  7. Wählen Sie die Zone aus: GCP_NEG_ZONE
  8. Geben Sie den Standardport ein: 80.
  9. Klicken Sie auf Erstellen.

Fügen Sie der zonalen NEG Endpunkte hinzu:

  1. Gehen Sie in der Google Cloud Console zur Seite "Netzwerk-Endpunktgruppen".
    Zur Netzwerk-Endpunktgruppe
  2. Klicken Sie auf den Namen der Netzwerk-Endpunktgruppe, die im vorherigen Schritt erstellt wurde (GCP_NEG_NAME). Die Seite Netzwerk-Endpunktgruppendetails wird angezeigt.
  3. Klicken Sie im Bereich Netzwerkendpunkte in dieser Gruppe auf Netzwerkendpunkt hinzufügen. Die Seite Netzwerk-Endpunkt hinzufügen wird angezeigt.
  4. Wählen Sie eine VM-Instanz aus, um deren interne IP-Adressen als Netzwerkendpunkte hinzuzufügen. Im Abschnitt Netzwerkschnittstelle werden der Name, die Zone und das Subnetz der VM angezeigt.
  5. Geben Sie im Feld IPv4-Adresse die IPv4-Adresse des neuen Netzwerkendpunkts ein.
  6. Wählen Sie den Porttyp aus.
    1. Wenn Sie Standard auswählen, wird für den Endpunkt der Standardport 80 für alle Endpunkte in der Netzwerk-Endpunktgruppe verwendet. Dies ist für unser Beispiel ausreichend, da der Apache-Server Anfragen an Port 80 verarbeitet.
    2. Wenn Sie Benutzerdefiniert auswählen, geben Sie die Portnummer für den zu verwendenden Endpunkt ein.
  7. Klicken Sie zum Hinzufügen weiterer Endpunkte auf Netzwerkendpunkt hinzufügen und wiederholen Sie die vorherigen Schritte.
  8. Nachdem Sie alle Endpunkte hinzugefügt haben, klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie mit dem Befehl gcloud compute network-endpoint-groups create eine zonale NEG (mit GCE_VM_IP_PORT-Endpunkten):

    gcloud compute network-endpoint-groups create GCP_NEG_NAME \
        --network-endpoint-type=GCE_VM_IP_PORT \
        --zone=GCP_NEG_ZONE \
        --network=NETWORK \
        --subnet=LB_SUBNET_NAME
    

    Sie können entweder beim Erstellen der NEG einen --default-port angeben oder eine Portnummer für jeden Endpunkt festlegen, wie im nächsten Schritt gezeigt.

  2. Fügen Sie Endpunkte zu GCP_NEG_NAME hinzu.

    gcloud compute network-endpoint-groups update GCP_NEG_NAME \
        --zone=GCP_NEG_ZONE \
        --add-endpoint='instance=vm-a1,port=80' \
        --add-endpoint='instance=vm-a2,port=80'
    

Hybridkonnektivitäts-NEG einrichten

Verwenden Sie beim Erstellen der NEG eine ZONE, die die geografische Entfernung zwischen Google Cloud und Ihrer lokalen oder sonstigen Cloud-Umgebung minimiert. Wenn Sie beispielsweise einen Dienst in einer lokalen Umgebung in Frankfurt hosten, können Sie beim Erstellen der NEG die Google Cloud-Zone europe-west3-a angeben.

Wenn Sie Cloud Interconnect verwenden, sollte sich die ZONE zum Erstellen der NEG in derselben Region befinden, in der der Cloud Interconnect-Anhang konfiguriert wurde.

Informationen zu den verfügbaren Regionen und Zonen finden Sie in der Compute Engine-Dokumentation: Verfügbare Regionen und Zonen.

Console

So erstellen Sie eine Endpunktgruppe in einer Hybridkonnektivität:

  1. Gehen Sie in der Google Cloud Console zur Seite "Netzwerk-Endpunktgruppen".
    Zu den Netzwerk-Endpunktgruppen
  2. Klicken Sie auf NETZWERK-ENDPUNKTGRUPPE ERSTELLEN.
  3. Geben Sie einen Namen für die Hybrid-NEG ein. In diesem Verfahren als ON_PREM_NEG_NAME bezeichnet.
  4. Wählen Sie den Typ der Netzwerk-Endpunktgruppe aus: Hybridkonnektivitätsnetzwerk-Endpunktgruppe (zonal).
  5. Wählen Sie das Netzwerk aus: NETWORK
  6. Wählen Sie das Subnetz aus: LB_SUBNET_NAME
  7. Wählen Sie die Zone aus: ON_PREM_NEG_ZONE
  8. Geben Sie den Standardport ein.
  9. Klicken Sie auf Erstellen.

Fügen Sie der Hybridkonnektivitäts-NEG Endpunkte hinzu:

  1. Gehen Sie in der Google Cloud Console zur Seite "Netzwerk-Endpunktgruppen".
    Zur Seite "Netzwerk-Endpunktgruppen"
  2. Klicken Sie auf den Namen der Netzwerk-Endpunktgruppe, die im vorherigen Schritt erstellt wurde (ON_PREM_NEG_NAME). Die Seite Netzwerk-Endpunktgruppendetails wird angezeigt.
  3. Klicken Sie im Bereich Netzwerkendpunkte in dieser Gruppe auf Netzwerkendpunkt hinzufügen. Die Seite Netzwerk-Endpunkt hinzufügen wird angezeigt.
  4. Geben Sie die IP-Adresse des neuen Netzwerkendpunkts ein.
  5. Wählen Sie den Porttyp aus.
    1. Wenn Sie Standard auswählen, wird für den Endpunkt der Standardport für alle Endpunkte in der Netzwerk-Endpunktgruppe verwendet.
    2. Wenn Sie Benutzerdefiniert auswählen, können Sie eine andere Portnummer für den zu verwendenden Endpunkt eingeben.
  6. Klicken Sie zum Hinzufügen weiterer Endpunkte auf Netzwerkendpunkt hinzufügen und wiederholen Sie die vorherigen Schritte.
  7. Nachdem Sie alle Nicht-Google Cloud-Endpunkte hinzugefügt haben, klicken Sie auf Erstellen.

gcloud

  1. Erstellen Sie mit dem Befehl gcloud compute network-endpoint-groups create eine Hybridkonnektivitäts-NEG.

    gcloud compute network-endpoint-groups create ON_PREM_NEG_NAME \
        --network-endpoint-type=NON_GCP_PRIVATE_IP_PORT \
        --zone=ON_PREM_NEG_ZONE \
        --network=NETWORK
    
  2. Fügen Sie den lokalen Backend-VM-Endpunkt zu ON_PREM_NEG_NAME hinzu:

    gcloud compute network-endpoint-groups update ON_PREM_NEG_NAME \
        --zone=ON_PREM_NEG_ZONE \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_1,port=PORT_1" \
        --add-endpoint="ip=ON_PREM_IP_ADDRESS_2,port=PORT_2"
    

Mit diesem Befehl können Sie die Netzwerkendpunkte hinzufügen, die Sie zuvor lokal oder in Ihrer Cloud-Umgebung konfiguriert haben. Wiederholen Sie den Vorgang --add-endpoint so oft wie nötig.

Sie können diese Schritte wiederholen, um bei Bedarf mehrere Hybrid-NEGs zu erstellen.

Load-Balancer konfigurieren

Console

gcloud

  1. Erstellen Sie eine Systemdiagnose für die Back-Ends.
       gcloud compute health-checks create http HTTP_HEALTH_CHECK_NAME \
           --region=REGION \
           --use-serving-port
       
    Systemdiagnoseprüfungen für Hybrid-NEG-Back-Ends stammen von Envoy-Proxys im Nur-Proxy-Subnetz, während Prüfungen für zonale NEG-Back-Ends von [zentralen Prüfungs-IP-Bereichen von Google](/load-balancing/docs/health-check-concepts#ip-ranges) stammen.
  2. Erstellen Sie einen Backend-Dienst für Google Cloud-basierte Backends. Fügen Sie diesem Backend-Dienst die zonale NEG und die NEG mit Hybrid-Konnektivität als Backends hinzu.
      gcloud compute backend-services create BACKEND_SERVICE \
          --load-balancing-scheme=INTERNAL_MANAGED \
          --protocol=HTTP \
          --health-checks=HTTP_HEALTH_CHECK_NAME \
          --health-checks-region=REGION \
          --region=REGION
      
  3. Fügen Sie dem Backend-Dienst die zonale NEG als Backend hinzu.
    gcloud compute backend-services add-backend BACKEND_SERVICE \
        --region=REGION \
        --balancing-mode=RATE \
        --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \
        --network-endpoint-group=GCP_NEG_NAME \
        --network-endpoint-group-zone=GCP_NEG_ZONE
    
    Weitere Informationen zum Konfigurieren des Balancing-Modus finden Sie in der Dokumentation zur gcloud CLI für den Parameter --max-rate-per-endpoint.
  4. Fügen Sie dem Backend-Dienst das hybride NEG als Backend hinzu.
    gcloud compute backend-services add-backend BACKEND_SERVICE \
        --region=REGION \
        --balancing-mode=RATE \
        --max-rate-per-endpoint=MAX_REQUEST_RATE_PER_ENDPOINT \
        --network-endpoint-group=ON_PREM_NEG_NAME \
        --network-endpoint-group-zone=ON_PREM_NEG_ZONE
    
    Weitere Informationen zum Konfigurieren des Balancing-Modus finden Sie in der Dokumentation zur gcloud CLI für den Parameter --max-rate-per-endpoint.
  5. Erstellen Sie eine URL-Zuordnung, um eingehende Anfragen an den Backend-Dienst weiterzuleiten:
    gcloud compute url-maps create URL_MAP_NAME \
        --default-service BACKEND_SERVICE \
        --region=REGION
    
  6. Optional: Führen Sie diesen Schritt aus, wenn Sie HTTPS zwischen dem Client und dem Load Balancer verwenden. Dies ist für HTTP-Load-Balancer nicht erforderlich.

    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.

      So erstellen Sie eine selbstverwaltete SSL-Zertifikatsressource von Compute Engine:
      gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
          --certificate CRT_FILE_PATH \
          --private-key KEY_FILE_PATH
      
    • Erstellen Sie einen HTTP(S)-Zielproxy, um Anfragen an Ihre URL-Zuordnung weiterzuleiten.

      Erstellen Sie einen HTTP-Zielproxy für einen HTTP-Load-Balancer:
      gcloud compute target-http-proxies create TARGET_HTTP_PROXY_NAME \
          --url-map=URL_MAP_NAME \
          --url-map-region=REGION \
          --region=REGION
      
      Erstellen Sie einen HTTPS-Zielproxy für einen HTTPS-Load-Balancer. Der Proxy ist der Teil des Load-Balancers, der das SSL-Zertifikat für den HTTPS-Load-Balancer besitzt. Daher laden Sie in diesem Schritt auch Ihr Zertifikat.
      gcloud compute target-https-proxies create TARGET_HTTPS_PROXY_NAME \
          --ssl-certificates=SSL_CERTIFICATE_NAME \
          --url-map=URL_MAP_NAME \
          --url-map-region=REGION \
          --region=REGION
      
    • Erstellen Sie eine Weiterleitungsregel, um eingehende Anfragen an den Proxy weiterzuleiten. Verwenden Sie nicht das Nur-Proxy-Subnetz, um die Weiterleitungsregel zu erstellen.

      Für einen HTTP-Load-Balancer:
        gcloud compute forwarding-rules create HTTP_FORWARDING_RULE_NAME \
            --load-balancing-scheme=INTERNAL_MANAGED \
            --network=NETWORK \
            --subnet=LB_SUBNET_NAME \
            --address=LB_IP_ADDRESS \
            --ports=80 \
            --region=REGION \
            --target-http-proxy=TARGET_HTTP_PROXY_NAME \
            --target-http-proxy-region=REGION
      
      Für einen HTTPS-Load-Balancer:
        gcloud compute forwarding-rules create HTTPS_FORWARDING_RULE_NAME \
            --load-balancing-scheme=INTERNAL_MANAGED \
            --network=NETWORK \
            --subnet=LB_SUBNET_NAME \
            --address=LB_IP_ADDRESS \
            --ports=443 \
            --region=REGION \
            --target-https-proxy=TARGET_HTTPS_PROXY_NAME \
            --target-https-proxy-region=REGION
      

Domain mit dem Load-Balancer verbinden

Notieren Sie sich nach der Erstellung des Load-Balancers die IP-Adresse, die diesem zugewiesen ist, z. B. 30.90.80.100. Wenn Sie Ihre Domain auf den Load-Balancer verweisen möchten, erstellen Sie mit Ihrem Domain-Registrierungsdienst einen A-Eintrag. Wenn Sie Ihrem SSL-Zertifikat mehrere Domains hinzugefügt haben, müssen Sie für jede Domain einen A-Eintrag hinzufügen, der auf die IP-Adresse des Load-Balancers verweist. So erstellen Sie beispielsweise A-Einträge für www.example.com und example.com:

NAME                  TYPE     DATA
www                   A        30.90.80.100
@                     A        30.90.80.100

Wenn Sie Cloud DNS als DNS-Anbieter verwenden, finden Sie weitere Informationen unter Einträge hinzufügen, ändern und löschen.

Load-Balancer testen

Um den Load-Balancer zu testen, erstellen Sie eine Client-VM in der Region des Load-Balancers. Senden Sie dann Traffic vom Client an den Load-Balancer.

Client-VM erstellen

In diesem Beispiel wird eine Client-VM (vm-client) erstellt, die sich in derselben Region wie die Backend-NEGs befindet. Der Client validiert die Konfiguration des Load-Balancers und demonstriert das erwartete Verhalten, wie im Abschnitt "Test" beschrieben.

Console

  1. Rufen Sie in der Google Cloud Console die Seite „VM-Instanzen” auf.
    Zu „VM-Instanzen“
  2. Klicken Sie auf Instanz erstellen.
  3. Legen Sie als Name vm-client fest.
  4. Setzen Sie Zone auf CLIENT_VM_ZONE.
  5. Klicken Sie auf Erweiterte Optionen und nehmen Sie die folgenden Änderungen vor:
    • Klicken Sie auf Vernetzung und fügen Sie allow-ssh an die Netzwerk-Tags hinzu.
    • Klicken Sie unter Netzwerkschnittstellen auf die Schaltfläche "Bearbeiten", nehmen Sie die folgenden Änderungen vor und klicken Sie auf Fertig:
      • Netzwerk: NETWORK
      • Subnetz: LB_SUBNET_NAME
      • Primäre interne IP: flüchtig (automatisch)
      • Externe IP: sitzungsspezifisch
  6. Klicken Sie auf Erstellen.

gcloud

Die Client-VM kann sich in einer beliebigen Zone in derselben Region wie der Load-Balancer befinden. Außerdem kann sie jedes Subnetz in dieser Region verwenden. In diesem Beispiel befindet sich der Client in der Zone CLIENT_VM_ZONE und verwendet dasselbe Subnetz wie die Backend-VMs.

gcloud compute instances create vm-client \
    --zone=CLIENT_VM_ZONE \
    --image-family=debian-10 \
    --image-project=debian-cloud \
    --tags=allow-ssh \
    --subnet=LB_SUBNET_NAME

Traffic an den Load-Balancer senden

Nachdem Sie den Load-Balancer konfiguriert haben, können Sie Traffic an die IP-Adresse des Load-Balancers senden.

  1. Verwenden Sie SSH, um eine Verbindung zur Clientinstanz herzustellen.

    gcloud compute ssh client-vm \
      --zone=CLIENT_VM_ZONE
    
  2. Rufen Sie die IP-Adresse des Load-Balancers ab. Verwenden Sie den Befehl compute addresses describe, um die zugewiesene IP-Adresse aufzurufen:

    gcloud compute addresses describe l7-ilb-ip-address \
      --region=us-west1
    
  3. Prüfen Sie, ob der Load-Balancer die Backend-Hostnamen wie erwartet bereitstellt. Ersetzen Sie IP_ADDRESS durch die IP-Adresse des Load-Balancers.

    Führen Sie für HTTP-Tests folgenden Befehl aus:

    curl IP_ADDRESS
    

    Führen Sie für HTTPS-Tests folgenden Befehl aus:

  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.

Das Testen der Nicht-Google Cloud-Endpunkte hängt vom Dienst ab, den Sie über den Hybrid-NEG-Endpunkt freigegeben haben.

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.

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