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
- Installieren Sie Google Cloud CLI.
- Stellen Sie einen Cloud Run-Dienst bereit.
- 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
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie auf VPC-Netzwerk erstellen.
Geben Sie für Name
lb-network
ein.Wählen Sie unter Modus für Subnetzerstellung die Option Benutzerdefiniert aus.
Legen Sie im Abschnitt Neues Subnetz folgende Konfigurationsparameter für das Subnetz fest:
- Geben Sie für Name
lb-subnet
ein. - Wählen Sie eine Region aus.
- Geben Sie
10.1.2.0/24
als IP-Adressbereich ein. - Klicken Sie auf Fertig.
- Geben Sie für Name
Klicken Sie auf Erstellen.
gcloud
Erstellen Sie das benutzerdefinierte VPC-Netzwerk mit dem Befehl
gcloud compute networks create
:gcloud compute networks create lb-network --subnet-mode=custom
Erstellen Sie ein Subnetz im Netzwerk
lb-network
. In diesem Beispiel wird der IP-Adressbereich10.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
Rufen Sie in der Google Cloud Console die Seite VPC-Netzwerke auf.
Klicken Sie auf den Namen des freigegebenen VPC-Netzwerks, dem Sie das Nur-Proxy-Subnetz hinzufügen möchten.
Klicken Sie auf Subnetz hinzufügen.
Geben Sie im Feld Name
proxy-only-subnet
ein.Wählen Sie eine Region aus.
Setzen Sie Zweck auf Regional verwalteter Proxy.
Geben Sie einen IP-Adressbereich als
10.129.0.0/23
ein.Klicken Sie auf Hinzufügen.
gcloud
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.
Console
Konfiguration starten
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf Load-Balancer erstellen.
- Wählen Sie unter Typ des Load Balancers die Option Application Load Balancer (HTTP/HTTPS) aus und klicken Sie auf Weiter.
- Wählen Sie für Öffentlich oder intern die Option Intern aus und klicken Sie auf Weiter.
- Wählen Sie für Regionenübergreifende oder Einzelregion-Bereitstellung die Option Am besten für regionale Arbeitslasten aus und klicken Sie auf Weiter.
- Klicken Sie auf Konfigurieren.
Grundlegende Konfiguration
- Geben Sie
serverless-lb
als Name für den Load-Balancer ein. - Wählen Sie das Netzwerk als
lb_network
aus. - Lassen Sie das Fenster geöffnet, um fortzufahren.
Frontend konfigurieren
- Bevor Sie fortfahren, benötigen Sie ein SSL-Zertifikat.
- Klicken Sie auf Frontend-Konfiguration.
- Geben Sie einen Namen ein.
- Füllen Sie die folgenden Felder aus, um einen internen Anwendungs-Load-Balancer zu konfigurieren.
- Wählen Sie unter Protokoll die Option HTTPS aus.
- Wählen Sie unter Subnetzwerk das Subnetzwerk aus.
- Wählen Sie unter IP-Version die Option IPv4 aus.
- Wählen Sie unter IP-Adresse die Option Sitzungsspezifisch aus.
- Wählen Sie unter Port die Option
443
aus. 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:
- Klicken Sie auf Neues Zertifikat erstellen.
- Geben Sie im Feld Name einen Namen ein.
- Laden Sie in den entsprechenden Feldern Ihre PEM-formatierten Dateien hoch:
- Zertifikat
- Privater Schlüssel
- Klicken Sie auf Erstellen.
- Optional: So erstellen Sie einen HTTP-Load-Balancer:
- Wählen Sie unter Protokoll die Option HTTP aus.
- Wählen Sie unter Subnetzwerk das Subnetzwerk aus.
- Wählen Sie unter IP-Version die Option IPv4 aus.
- Wählen Sie unter IP-Adresse die Option Sitzungsspezifisch aus.
- Wählen Sie unter Port die Option
80
aus. - Klicken Sie auf Fertig.
Wenn Sie diesen Prozess testen möchten, ohne eine SSL-Zertifikatsressource einzurichten, können Sie einen HTTP-Load-Balancer einrichten.
Backend-Dienste konfigurieren
- Klicken Sie auf Backend-Konfiguration.
- 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.
- Geben Sie im Fenster Backend-Dienst erstellen einen Namen ein.
- Wählen Sie unter Backend-Typ die Option Endpunktgruppe in serverlosem Netzwerk aus.
- Lassen Sie das Protokoll unverändert. Dieser Parameter wird ignoriert.
- Wählen Sie unter Backends > Neues Backend die Option Endpunktgruppe für ein serverloses Netzwerk erstellen aus.
- Geben Sie im Fenster Endpunktgruppe für ein serverloses Netzwerk erstellen einen Namen ein.
- Unter Region wird die Region des Load-Balancers angezeigt.
- 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.
- Wählen Sie Dienstname auswählen aus.
- Wählen Sie in der Drop-down-Liste Dienst den Cloud Run-Dienst aus, für den Sie einen Load-Balancer erstellen möchten.
- Klicken Sie auf Fertig.
- Klicken Sie auf Erstellen.
- 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.
- Klicken Sie auf Einfache Host- und Pfadregel.
- Wählen Sie aus der Drop-down-Liste Backend einen Backend-Dienst aus.
Konfiguration prüfen
- Klicken Sie auf Prüfen und abschließen.
- Prüfen Sie die Werte für Backend, Host- und Pfadregeln und Frontend.
- Optional: Klicken Sie auf Entsprechender Code, um die REST API-Anfrage aufzurufen, die zum Erstellen des Load-Balancers verwendet wird.
- Klicken Sie auf Erstellen. Warten Sie, bis der Load-Balancer erstellt ist.
- Klicken Sie auf den Namen des Load-Balancers (serverless-lb).
- Notieren Sie die IP-Adresse des Load-Balancers für die nächste Aufgabe.
gcloud
- 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
- 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
- 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
- Erstellen Sie eine regionale URL-Zuordnung, um eingehende Anfragen an den Backend-Dienst weiterzuleiten:
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.gcloud compute url-maps create URL_MAP_NAME \ --default-service=BACKEND_SERVICE_NAME \ --region=REGION
- 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:
- Regionale von Google verwaltete Zertifikate mit projektspezifischer DNS-Autorisierung. Weitere Informationen finden Sie unter Regionales von Google verwaltetes Zertifikat bereitstellen.
- Regionale von Google verwaltete (private) Zertifikate mit Certificate Authority Service. Weitere Informationen finden Sie unter Regionales von Google verwaltetes Zertifikat mit CA Service bereitstellen.
- Erstellen Sie einen regionalen Zielproxy, um Anfragen an die URL-Zuordnung weiterzuleiten.
Erstellen Sie einen HTTP-Zielproxy für einen HTTP-Load-Balancer: 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-http-proxies create TARGET_HTTP_PROXY_NAME \ --url-map=URL_MAP_NAME \ --region=REGION
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: Für einen HTTPS-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
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
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
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
- Rufen Sie in der Google Cloud Console die Seite Firewall auf.
Zu den Firewall-Richtlinien - 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.
- Name:
- Klicken Sie auf Erstellen.
gcloud
Erstellen Sie die Firewallregel
fw-allow-ssh
, um SSH-Verbindungen zu VMs mit dem Netzwerk-Tagallow-ssh
zu ermöglichen. Wenn Siesource-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.
- Entfernen Sie
http
oderhttps
aus der URL. Es verbleibtexample.com/login
. - 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-Maskeexample.com/<service>
.
- Cloud Run: Ersetzen Sie den Namen des Cloud Run-Dienstes durch den Platzhalter
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:
- Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
Load-Balancing aufrufen - Klicken Sie auf den Namen des Load-Balancers mit dem Backend-Dienst, den Sie bearbeiten möchten.
- Klicken Sie auf der Seite Details zum Load Balancer auf Bearbeiten .
- Klicken Sie auf der Seite Globalen externen Application Load Balancer bearbeiten auf Backend-Konfiguration.
- Klicken Sie auf der Seite Backend-Konfiguration für den Backend-Dienst, den Sie ändern möchten, auf Bearbeiten.
- Klicken Sie auf Back-End hinzufügen.
- Wählen Sie Serverlose Netzwerk-Endpunktgruppe erstellen aus.
- Geben Sie im Feld Name
helloworld-serverless-neg
ein. - Unter Region wird die Region des Load-Balancers angezeigt.
- Unter Typ der Endpunktgruppe für ein serverloses Netzwerk ist Cloud Run der einzige unterstützte Typ für Netzwerk-Endpunktgruppen.
- Wählen Sie URL-Maske verwenden aus.
- Geben Sie eine URL-Maske ein. Weitere Informationen zum Erstellen einer URL-Maske finden Sie unter URL-Maske erstellen.
- Klicken Sie auf Erstellen.
- Klicken Sie im neuen Backend auf Fertig.
- 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
Rufen Sie in der Google Cloud Console die Seite Load-Balancing auf.
- Klicken Sie auf den Namen des Load-Balancers, den Sie ändern möchten.
- Klicken Sie auf Bearbeiten.
- Klicken Sie auf Frontend-Konfiguration.
- Maximieren Sie Erweiterte Funktionen. Geben Sie für HTTP-Keepalive-Zeitlimit ein Zeitlimit ein.
- Klicken Sie auf Aktualisieren.
- 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
- 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“ - Wenn die serverlose NEG verwendet wird, gehen Sie so vor:
- Klicken Sie auf den Namen des Backend-Dienstes, der die serverlose NEG verwendet.
- Klicken Sie auf Bearbeiten.
- Klicken Sie in der Liste der Backends auf , um das serverlose NEG-Backend aus dem Backend-Dienst zu entfernen.
- Klicken Sie auf Speichern.
- Rufen Sie in der Google Cloud Console die Seite Netzwerk-Endpunktgruppe auf.
Zu „Netzwerk-Endpunktgruppe“ - Aktivieren Sie das Kästchen für die serverlose NEG, die Sie löschen möchten.
- Klicken Sie auf Löschen.
- 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
- Regionalen internen Application Load Balancer mit Cloud Run mithilfe von Terraform bereitstellen
- Load-Balancing-Einrichtung bereinigen
- Bereitstellung von freigegebener VPC aufheben
- Logging und Monitoring für regionalen internen Application Load Balancer.
- Probleme mit regionalen internen Application Load Balancern beheben