Regionalen internen Application Load Balancer mit Cloud Run einrichten

In diesem Dokument wird gezeigt, wie Sie einen regionalen internen Application Load Balancer mit Cloud Run bereitstellen. Dazu verwenden Sie ein serverloses NEG-Backend für den Load-Balancer.

Bevor Sie dieses Verfahren ausprobieren, sollten Sie sich mit den folgenden Themen vertraut machen:

In dieser Anleitung erfahren Sie, wie Sie einen Application Load Balancer konfigurieren, der Anfragen an ein serverloses NEG-Backend weiterleitet.

Serverlose NEGs bieten Ihnen die Möglichkeit, Cloud Run-Dienste mit Ihrem Load-Balancer zu verwenden. Nachdem Sie einen Load-Balancer mit dem serverlosen NEG-Backend konfiguriert haben, werden Anfragen an den Load-Balancer zum Cloud Run-Backend geleitet.

Vorbereitung

  1. Installieren Sie Google Cloud CLI.
  2. Stellen Sie einen Cloud Run-Dienst bereit.
  3. Konfigurieren Sie Berechtigungen.

Google Cloud SDK installieren

Installieren Sie das Google Cloud CLI-Tool. In der gcloud-Übersicht finden Sie Informationen zum Konzept und zur Installation des Tools.

Wenn Sie die gcloud CLI noch nicht ausgeführt haben, führen Sie zuerst gcloud init aus, um Ihr gcloud-Verzeichnis zu initialisieren.

Cloud Run-Dienst bereitstellen

Bei den Anleitungen auf dieser Seite wird davon ausgegangen, dass Sie bereits einen Cloud Run-Dienst ausführen.

Für das Beispiel auf dieser Seite können Sie jede der Cloud Run-Kurzanleitungen verwenden, um einen Cloud Run-Dienst bereitzustellen.

Die serverlose NEG, der Load-Balancer und alle Client-VMs müssen sich in derselben Region wie der Cloud Run-Dienst befinden.

Beschränken Sie den eingehenden Traffic auf internal, um den Zugriff auf den Cloud Run-Dienst über das Internet zu verhindern. Traffic vom internen Anwendungs-Load-Balancer wird als interner Traffic betrachtet.

gcloud run deploy CLOUD_RUN_SERVICE_NAME \
    --platform=managed \
    --allow-unauthenticated \
    --ingress=internal \
    --region=REGION \
    --image=IMAGE_URL

Notieren Sie sich den Namen des Dienstes, den Sie erstellen. Auf der restlichen Seite wird beschrieben, wie Sie einen Load-Balancer einrichten, der Anfragen an diesen Dienst weiterleitet.

Berechtigungen konfigurieren

Um dieser Anleitung zu folgen, müssen Sie in einem Projekt eine serverlose NEG und einen Load-Balancer erstellen. Sie müssen entweder Inhaber oder Bearbeiter des Projekts sein oder die folgenden IAM-Rollen und Berechtigungen für Compute Engine haben:

Aufgabe Erforderliche Rolle
Load-Balancer und Netzwerkkomponenten erstellen Netzwerkadministrator
NEGs erstellen und ändern Compute-Instanzadministrator
SSL-Zertifikate erstellen und ändern Sicherheitsadministrator

Netzwerk und Subnetze konfigurieren

Um das Netzwerk und seine Subnetze zu konfigurieren, führen Sie die folgenden Aufgaben aus:

  • Erstellen Sie ein VPC-Netzwerk und ein Subnetz:
  • Erstellen Sie ein Nur-Proxy-Subnetz.

VPC-Netzwerk erstellen

Erstellen Sie ein VPC-Netzwerk im benutzerdefinierten Modus und dann die Subnetze, die Sie innerhalb einer Region benötigen.

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 unter Modus für Subnetzerstellung die Option Benutzerdefiniert aus.

  5. Legen Sie im Abschnitt Neues Subnetz folgende Konfigurationsparameter für das Subnetz fest:

    1. Geben Sie für Name lb-subnet ein.
    2. Wählen Sie eine Region aus.
    3. Geben Sie 10.1.2.0/24 als IP-Adressbereich ein.
    4. Klicken Sie auf Fertig.
  6. Klicken Sie auf Erstellen.

gcloud

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

    gcloud compute networks create lb-network --subnet-mode=custom
    
  2. Erstellen Sie ein Subnetz im Netzwerk lb-network. In diesem Beispiel wird der IP-Adressbereich 10.1.2.0/24 für das Subnetz verwendet. Sie können einen beliebigen gültigen Subnetzbereich konfigurieren.

    gcloud compute networks subnets create lb-subnet \
    --network=lb-network \
    --range=10.1.2.0/24 \
    --region=REGION
    

Nur-Proxy-Subnetz erstellen

Erstellen Sie ein Nur-Proxy-Subnetz für alle regionalen Envoy-basierten Load-Balancer in einer bestimmten Region des lb-network-Netzwerks.

Console

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

    Zur Seite VPC-Netzwerke

  2. Klicken Sie auf den Namen des freigegebenen VPC-Netzwerks, dem Sie das Nur-Proxy-Subnetz hinzufügen möchten.

  3. Klicken Sie auf Subnetz hinzufügen.

  4. Geben Sie im Feld Name proxy-only-subnet ein.

  5. Wählen Sie eine Region aus.

  6. Setzen Sie Zweck auf Regional verwalteter Proxy.

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

  8. Klicken Sie auf Hinzufügen.

gcloud

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

    In diesem Beispiel wird der IP-Adressbereich 10.129.0.0/23 für das Nur-Proxy-Subnetz verwendet. Sie können einen beliebigen gültigen Subnetzbereich konfigurieren.

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

Load-Balancer erstellen

Im folgenden Diagramm verwendet der Load-Balancer ein serverloses NEG-Backend, um Anfragen zu einem serverlosen Cloud Run-Dienst zu leiten.

Traffic, der vom Load-Balancer zu den serverlosen NEG-Back-Ends geht, verwendet spezielle Routen außerhalb der VPC, die keinen Firewallregeln unterliegen. Wenn Ihr Load-Balancer nur serverlose NEG-Backends hat, müssen Sie keine Firewallregeln erstellen, um Traffic vom Nur-Proxy-Subnetz zum serverlosen Backend zuzulassen.

Architektur des internen HTTP(S)-Load-Balancings für eine Cloud Run-Anwendung
Architektur des internen HTTP(S)-Load-Balancings für eine Cloud Run-Anwendung (zum Vergrößern anklicken)

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 serverless-lb als Name für den Load-Balancer ein.
  2. Wählen Sie das Netzwerk als lb_network aus.
  3. Lassen Sie das Fenster geöffnet, um fortzufahren.

Frontend konfigurieren

  1. Bevor Sie fortfahren, benötigen Sie ein SSL-Zertifikat.
  2. Klicken Sie auf Frontend-Konfiguration.
  3. Geben Sie einen Namen ein.
  4. Füllen Sie die folgenden Felder aus, um einen internen Anwendungs-Load-Balancer zu konfigurieren.
    1. Wählen Sie unter Protokoll die Option HTTPS aus.
    2. Wählen Sie unter Subnetzwerk das Subnetzwerk aus.
    3. Wählen Sie unter IP-Version die Option IPv4 aus.
    4. Wählen Sie unter IP-Adresse die Option Sitzungsspezifisch aus.
    5. Wählen Sie unter Port die Option 443 aus.
    6. Wählen Sie unter Zertifikat ein vorhandenes SSL-Zertifikat aus oder erstellen Sie ein neues Zertifikat.

      Im folgenden Beispiel wird gezeigt, wie Sie Compute Engine-SSL-Zertifikate erstellen:

    7. Klicken Sie auf Neues Zertifikat erstellen.
      1. Geben Sie im Feld Name einen Namen ein.
      2. Laden Sie in den entsprechenden Feldern Ihre PEM-formatierten Dateien hoch:
        • Zertifikat
        • Privater Schlüssel
      3. Klicken Sie auf Erstellen.

    Wenn Sie diesen Prozess testen möchten, ohne eine SSL-Zertifikatsressource einzurichten, können Sie einen HTTP-Load-Balancer einrichten.

  5. Optional: So erstellen Sie einen HTTP-Load-Balancer:
    1. Wählen Sie unter Protokoll die Option HTTP aus.
    2. Wählen Sie unter Subnetzwerk das Subnetzwerk aus.
    3. Wählen Sie unter IP-Version die Option IPv4 aus.
    4. Wählen Sie unter IP-Adresse die Option Sitzungsspezifisch aus.
    5. Wählen Sie unter Port die Option 80 aus.
  6. Klicken Sie auf Fertig.

Backend-Dienste konfigurieren

  1. Klicken Sie auf Backend-Konfiguration.
  2. Halten im Drop-down-Menü Backend-Dienste erstellen oder auswählen den Mauszeiger über Backend-Dienste und wählen Sie dann Backend-Dienst erstellen aus.
  3. Geben Sie im Fenster Backend-Dienst erstellen einen Namen ein.
  4. Wählen Sie unter Backend-Typ die Option Endpunktgruppe in serverlosem Netzwerk aus.
  5. Lassen Sie das Protokoll unverändert. Dieser Parameter wird ignoriert.
  6. Wählen Sie unter Backends > Neues Backend die Option Endpunktgruppe für ein serverloses Netzwerk erstellen aus.
    1. Geben Sie im Fenster Endpunktgruppe für ein serverloses Netzwerk erstellen einen Namen ein.
    2. Unter Region wird die Region des Load-Balancers angezeigt.
    3. Wählen Sie im Feld Typ der Endpunktgruppe für ein serverloses Netzwerk die Option Cloud Run aus. Cloud Run ist der einzige unterstützte Typ.
    4. Wählen Sie Dienstname auswählen aus.
    5. Wählen Sie in der Drop-down-Liste Dienst den Cloud Run-Dienst aus, für den Sie einen Load-Balancer erstellen möchten.
    6. Klicken Sie auf Fertig.
    7. Klicken Sie auf Erstellen.
  7. Klicken Sie im Fenster Backend-Dienst erstellen auf Erstellen.

Routingregeln konfigurieren

Routingregeln bestimmen, wie Ihr Traffic weitergeleitet wird. Sie können Traffic an einen Backend-Dienst oder einen Kubernetes-Dienst weiterleiten. Traffic, der nicht explizit mit einem Host- und Pfad-Matcher übereinstimmt, wird an den Standarddienst gesendet.

  1. Klicken Sie auf Einfache Host- und Pfadregel.
  2. Wählen Sie aus der Drop-down-Liste Backend einen Backend-Dienst aus.

Konfiguration prüfen

  1. Klicken Sie auf Prüfen und abschließen.
  2. Prüfen Sie die Werte für Backend, Host- und Pfadregeln und Frontend.
  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. Warten Sie, bis der Load-Balancer erstellt ist.
  5. Klicken Sie auf den Namen des Load-Balancers (serverless-lb).
  6. Notieren Sie die IP-Adresse des Load-Balancers für die nächste Aufgabe.

gcloud

  1. Erstellen Sie eine serverlose NEG für Ihren Cloud Run-Dienst:
        gcloud compute network-endpoint-groups create SERVERLESS_NEG_NAME \
            --region=REGION \
            --network-endpoint-type=serverless  \
            --cloud-run-service=CLOUD_RUN_SERVICE_NAME
        
  2. Erstellen Sie einen regionalen Backend-Dienst. Legen Sie --protocol auf HTTP fest. Dieser Parameter wird ignoriert, ist aber erforderlich, da --protocol andernfalls standardmäßig TCP ist.
        gcloud compute backend-services create BACKEND_SERVICE_NAME \
            --load-balancing-scheme=INTERNAL_MANAGED \
            --protocol=HTTP \
            --region=REGION
        
  3. Fügen Sie dem Backend-Dienst das serverlose NEG als Backend hinzu.
        gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \
            --region=REGION \
            --network-endpoint-group=SERVERLESS_NEG_NAME \
            --network-endpoint-group-region=REGION
        
  4. Erstellen Sie eine regionale URL-Zuordnung, um eingehende Anfragen an den Backend-Dienst weiterzuleiten:
        gcloud compute url-maps create URL_MAP_NAME \
            --default-service=BACKEND_SERVICE_NAME \
            --region=REGION
        
    Diese beispielhafte URL-Zuordnung ist nur auf einen Backend-Dienst ausgerichtet, der eine einzelne serverlose Anwendung darstellt. Daher müssen keine Hostregeln oder Tools zum Abgleichen von Pfaden eingerichtet werden.
  5. Optional: Führen Sie diesen Schritt aus, wenn Sie HTTPS zwischen dem Client und dem Load Balancer verwenden. Dieser Schritt 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 regionale selbstverwaltete SSL-Zertifikatsressource:
          gcloud compute ssl-certificates create SSL_CERTIFICATE_NAME \
              --certificate CRT_FILE_PATH \
              --private-key KEY_FILE_PATH \
              --region=REGION
          
    • Erstellen Sie einen regionalen Zielproxy, um Anfragen an die 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 \
              --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 das HTTPS-Load-Balancing 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 \
              --region=REGION
          
    • Erstellen Sie eine Weiterleitungsregel, um eingehende Anfragen an den Proxy weiterzuleiten. Verwenden Sie nicht das Nur-Proxy-Subnetz für die IP-Adresse der Weiterleitungsregel. Sie können jede gültige IP-Adresse aus dem Subnetz (lb-subnet) konfigurieren.

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

Load-Balancer testen

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

Client-VM erstellen

In diesem Beispiel wird eine Client-VM (vm-client) in derselben Region wie der Load-Balancer erstellt. Der Client validiert die Konfiguration des Load-Balancers und demonstriert das erwartete Verhalten.

gcloud

Die Client-VM kann sich in einer beliebigen Zone in derselben REGION wie der Load-Balancer befinden. Außerdem kann sie jedes Subnetz im selben VPC-Netzwerk verwenden.

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

Firewallregel konfigurieren

In diesem Beispiel wird die folgende Firewallregel für die Test-Client-VM benötigt:

fw-allow-ssh. Eine Regel für eingehenden Traffic, die für die Test-Client-VM gilt und eingehende SSH-Verbindungen über TCP-Port 22 von jeder Adresse aus ermöglicht. Sie können einen restriktiveren IP-Quelladressbereich für diese Regel auswählen. Geben Sie dazu beispielsweise nur die IP-Adressbereiche des Systems an, von dem aus Sie SSH-Sitzungen initiieren. In diesem Beispiel wird das Ziel-Tag allow-ssh verwendet.

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 eingehende SSH-Verbindungen zulässt:
    • Name: 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.

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
    

Traffic an den Load-Balancer senden

Es kann einige Minuten dauern, bis die Load-Balancer-Konfiguration nach der ersten Bereitstellung übernommen wird.

  • Stellen Sie eine SSH-Verbindung zur Clientinstanz her.

    gcloud compute ssh vm-client \
      --zone=ZONE
    
  • Prüfen Sie, ob der Load-Balancer die Startseite des Cloud Run-Dienstes wie erwartet bereitstellt.

    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_DOMAIN_URL:443' --connect-to TEST_DOMAIN_URL:443:IP_ADDRESS:443
    

    Ersetzen Sie TEST_DOMAIN_URL durch die Domain, die mit Ihrer Anwendung verknüpft ist. Beispiel: test.example.com.

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

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.

URL-Maske verwenden

Beim Erstellen einer serverlosen NEG können Sie, statt einen bestimmten Cloud Run-Dienst auszuwählen, eine URL-Maske verwenden, um auf mehrere Dienste zu verweisen, die in derselben Domain bereitgestellt werden. Eine URL-Maske ist eine Vorlage für Ihr URL-Schema. Die serverlose NEG verwendet diese Vorlage, um den Dienstnamen aus der URL der eingehenden Anfrage zu extrahieren und die Anfrage dem entsprechenden Dienst zuzuordnen.

URL-Masken sind besonders nützlich, wenn Ihr Dienst einer benutzerdefinierten Domain zugeordnet ist und nicht der Standardadresse, die Google Cloud für den bereitgestellten Dienst angibt. Eine URL-Maske bietet die Möglichkeit, mehrere Dienste und Versionen mit einer einzigen Regel anzusprechen, selbst wenn Ihre Anwendung ein benutzerdefiniertes URL-Muster verwendet.

Falls Sie es noch nicht getan haben, lesen Sie den Abschnitt zu URL-Masken in der Übersicht zu serverlosen NEGs.

URL-Maske erstellen

Wenn Sie eine URL-Maske für Ihren Load-Balancer erstellen möchten, beginnen Sie mit der URL Ihres Dienstes. In diesem Beispiel wird eine serverlose Beispielanwendung verwendet, die unter https://example.com/login ausgeführt wird. Dies ist die URL, unter der der login-Dienst der Anwendung bereitgestellt wird.

  1. Entfernen Sie http oder https aus der URL. Es verbleibt example.com/login.
  2. Ersetzen Sie den Dienstnamen durch einen Platzhalter für die URL-Maske.
    • Cloud Run: Ersetzen Sie den Namen des Cloud Run-Dienstes durch den Platzhalter <service>. Wenn dem Cloud Run-Dienst ein Tag zugeordnet ist, ersetzen Sie den Namen des Tags durch den Platzhalter <tag>. In diesem Beispiel lautet die URL-Maske example.com/<service>.
  3. Optional: Wenn sich der Dienstname aus dem Pfadabschnitt der URL extrahieren lässt, kann die Domain weggelassen werden. Der Pfadteil der URL-Maske wird durch den ersten Schrägstrich (/) abgetrennt. Wenn in der URL-Maske kein / vorhanden ist, wird die Maske nur für den Host verwendet. Daher kann die URL-Maske in diesem Beispiel auf /<service> reduziert werden.

    Wenn sich <service> aus dem Hostteil der URL extrahieren lässt, können Sie den Pfad in der URL-Maske vollständig weglassen.

    Sie können auch alle Host- oder Subdomain-Komponenten weglassen, die vor dem ersten Platzhalter stehen, sowie alle Pfadkomponenten, die nach dem letzten Platzhalter stehen. In solchen Fällen erfasst der Platzhalter die erforderlichen Informationen für die Komponente.

Hier einige weitere Beispiele zur Veranschaulichung dieser Regeln:

In dieser Tabelle wird davon ausgegangen, dass Sie eine benutzerdefinierte Domain namens example.com haben und alle Ihre Cloud Run-Dienste dieser Domain zugeordnet werden.

Dienst, Tag-Name Benutzerdefinierte Domain-URL in Cloud Run URL-Maske
Dienst: login https://login-home.example.com/web <Dienst>-home.example.com
Dienst: login https://example.com/login/web example.com/<Dienst> oder /<Dienst>
Dienst: login; Tag: test https://test.login.example.com/web <Tag>.<Dienst>.example.com
Dienst: login; Tag: test https://example.com/home/login/test example.com/home/<Dienst>/<Tag> oder /home/<Dienst>/<Tag>
Dienst: login; Tag: test https://test.example.com/home/login/web <Tag>.example.com/home/<Dienst>

Serverlose NEG mit URL-Maske erstellen

Console

Für einen neuen Load-Balancer können Sie den gleichen gesamten End-to-End-Prozess verwenden, wie weiter oben in diesem Thema beschrieben. Geben Sie bei der Konfiguration des Back-End-Dienstes eine URL-Maske ein, statt einen bestimmten Dienst auszuwählen.

Wenn Sie bereits einen Load-Balancer haben, können Sie die Backend-Konfiguration bearbeiten und die serverlose NEG auf eine URL-Maske statt auf einen bestimmten Dienst verweisen lassen.

So fügen Sie einem vorhandenen Backend-Dienst eine serverlose NEG hinzu, die auf einer URL-Maske basiert:

  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 mit dem Backend-Dienst, den Sie bearbeiten möchten.
  3. Klicken Sie auf der Seite Details zum Load Balancer auf Bearbeiten .
  4. Klicken Sie auf der Seite Globalen externen Application Load Balancer bearbeiten auf Backend-Konfiguration.
  5. Klicken Sie auf der Seite Backend-Konfiguration für den Backend-Dienst, den Sie ändern möchten, auf Bearbeiten.
  6. Klicken Sie auf Back-End hinzufügen.
  7. Wählen Sie Serverlose Netzwerk-Endpunktgruppe erstellen aus.
    1. Geben Sie im Feld Name helloworld-serverless-neg ein.
    2. Unter Region wird die Region des Load-Balancers angezeigt.
    3. Unter Typ der Endpunktgruppe für ein serverloses Netzwerk ist Cloud Run der einzige unterstützte Typ für Netzwerk-Endpunktgruppen.
      1. Wählen Sie URL-Maske verwenden aus.
      2. Geben Sie eine URL-Maske ein. Weitere Informationen zum Erstellen einer URL-Maske finden Sie unter URL-Maske erstellen.
      3. Klicken Sie auf Erstellen.

  8. Klicken Sie im neuen Backend auf Fertig.
  9. Klicken Sie auf Aktualisieren.

gcloud

So erstellen Sie eine serverlose NEG mit der URL-Beispielmaske example.com/<service>:

gcloud compute network-endpoint-groups create SERVERLESS_NEG_MASK_NAME \
    --region=REGION \
    --network-endpoint-type=serverless \
    --cloud-run-url-mask="example.com/<service>"

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.

Serverlose NEG löschen

Eine Netzwerk-Endpunktgruppe kann nicht gelöscht werden, wenn sie mit einem Back-End-Dienst verknüpft ist. Bevor Sie eine NEG löschen, muss sie vom Back-End-Dienst getrennt sein.

Console

  1. Wechseln Sie zum Tab Backend-Dienste im Load-Balancing-Komponentenmenü, damit der zu löschende serverlose NEG derzeit von keinem Backend-Dienst verwendet wird.
    Zu „Backend-Dienste“
  2. Wenn die serverlose NEG verwendet wird, gehen Sie so vor:
    1. Klicken Sie auf den Namen des Backend-Dienstes, der die serverlose NEG verwendet.
    2. Klicken Sie auf Bearbeiten.
    3. Klicken Sie in der Liste der Backends auf , um das serverlose NEG-Backend aus dem Backend-Dienst zu entfernen.
    4. Klicken Sie auf Speichern.

  3. Rufen Sie in der Google Cloud Console die Seite Netzwerk-Endpunktgruppe auf.
    Zu „Netzwerk-Endpunktgruppe“
  4. Aktivieren Sie das Kästchen für die serverlose NEG, die Sie löschen möchten.
  5. Klicken Sie auf Löschen.
  6. Klicken Sie zur Bestätigung noch einmal auf Löschen.

gcloud

Um eine serverlose NEG aus einem Backend-Dienst zu entfernen, müssen Sie die Region angeben, in der die NEG erstellt wurde.

gcloud compute backend-services remove-backend BACKEND_SERVICE_NAME \
    --network-endpoint-group=SERVERLESS_NEG_NAME \
    --network-endpoint-group-region=REGION \
    --region=REGION

So löschen Sie die serverlose NEG:

gcloud compute network-endpoint-groups delete SERVERLESS_NEG_NAME \
    --region=REGION

Nächste Schritte