Auf dieser Seite wird beschrieben, wie Sie dem Back-End-Dienst oder Zielpool eines Load Balancers eine vorhandene verwaltete Instanzgruppe (MIG) hinzufügen.
Ein Load Balancer verteilt den Nutzer-Traffic, wodurch das Risiko von Leistungsproblemen in Ihrer Anwendung reduziert wird. Cloud Load Balancing verwendet zur Weiterleitung von Traffic sowohl verwaltete als auch nicht verwaltete Instanzgruppen. Je nach Typ des verwendeten Load-Balancers können Sie Instanzgruppen einem Zielpool oder Back-End-Dienst hinzufügen.
Informationen zum Erstellen eines bestimmten Load Balancer-Typs mit einem MIG-Backend finden Sie in der Cloud Load Balancing-Dokumentation.
Hinweise
-
Richten Sie die Authentifizierung ein, falls Sie dies noch nicht getan haben.
Bei der Authentifizierung wird Ihre Identität für den Zugriff auf Google Cloud-Dienste und APIs überprüft.
Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Öffnen Sie in der Google Cloud Console die Seite "Load-Balancing".
- Klicken Sie auf den Namen des Backend-Dienstes, in den Sie die verwaltete Instanzgruppe einfügen möchten.
- Klicken Sie auf Bearbeiten.
- Klicken Sie auf Back-End hinzufügen.
- Wählen Sie die Instanzgruppe aus, die Sie einfügen möchten.
- Bearbeiten Sie alle optionalen Einstellungen, die Sie ändern möchten.
- Speichern Sie die Änderungen.
- Rufen Sie in der Google Cloud Console die Seite „Zielpools“ auf.
- Klicken Sie auf den Zielpool, dem Sie die Instanzgruppe hinzufügen möchten.
- Klicken Sie auf Bearbeiten.
- Scrollen Sie nach unten zum Abschnitt VM-Instanzen und klicken Sie auf Instanzgruppen auswählen.
- Wählen Sie eine Instanzgruppe aus dem Drop-down-Menü aus.
- Speichern Sie die Änderungen.
INSTANCE_GROUP
ist der Name der Instanzgruppe.TARGET_POOL,..
ist der Name von einem oder mehreren Zielpools, denen diese Instanzgruppe hinzugefügt werden soll.PROJECT_ID
ist die Projekt-ID für diese Anfrage.REGION
ist die Region für die Instanzgruppe.INSTANCE_GROUP
ist der Name der Instanzgruppe.- Der Traffic wird auf alle Ports mit demselben Portnamen verteilt.
- Ein Back-End-Dienst kann Traffic immer nur an einen benannten Port weiterleiten.
Wenn Sie für einen benannten Port mehrere Portnummern verwenden, müssen alle Ports für dieselbe Anwendung gelten.
Beispiel:
http:80,http:8080
funktioniert, aberhttp:80,http:443
funktioniert nicht, da Port 80 TLS im Allgemeinen nicht unterstützt.instance-group-a
mit dem benannten Porthttp-port:80
instance-group-b
mit dem benannten Porthttp-port:79
- Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
- Klicken Sie auf den Namen der Instanzgruppe, in der Sie benannte Ports festlegen möchten. Ihnen wird eine Seite mit den Attributen der Instanzgruppe angezeigt.
- Klicken Sie auf Bearbeiten, um die verwaltete Instanzgruppe zu bearbeiten.
- Klicken Sie im Bereich Portzuordnung auf Port hinzufügen und geben Sie den gewünschten Portnamen sowie die Portnummern ein, die Sie mit dem Namen verknüpfen möchten. Klicken Sie noch einmal auf Port hinzufügen, wenn Sie weitere Einträge benötigen.
- Klicken Sie auf Speichern, um die Änderungen zu speichern und die benannten Ports auf die Instanzen in der verwalteten Instanzgruppe anzuwenden.
- Load-Balancing für hochverfügbare Anwendungen verwenden
- Instanzvorlage erstellen, die für eine verwaltete Instanzgruppe verwendet werden kann
- Regionale verwaltete Instanzgruppe erstellen
- Automatische Reparatur für die verwaltete Instanzgruppe aktivieren
- Autoscaling für die verwaltete Instanzgruppe aktivieren
REST
Verwenden Sie die von der gcloud CLI bereitgestellten Anmeldedaten, um die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung zu verwenden.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Weitere Informationen finden Sie unter Für die Verwendung von REST authentifizieren in der Dokumentation zur Google Cloud-Authentifizierung.
Verwaltete Instanzgruppe zu einem Back-End-Dienst hinzufügen
Zum Erstellen der meisten Arten von Load-Balancern ist ein Backend-Dienst erforderlich.
Ein Back-End-Dienst kann mehrere Back-Ends enthalten. Eine Instanzgruppe ist ein Backend-Typ. Die Instanzen in der Instanzgruppe reagieren auf Traffic vom Load-Balancer. Der Backend-Dienst wiederum weiß, welche Instanzen er verwenden kann und wie viel Traffic diese verarbeiten können und aktuell verarbeiten. Außerdem überwacht der Back-End-Dienst die Systemdiagnose und stellt keine neuen Verbindungen zu fehlerhaften Instanzen her.
Folgen Sie dieser Anleitung, um einen Backend-Dienst um eine verwaltete Instanzgruppe zu erweitern.
Console
gcloud
Führen Sie den Befehl
add-backend
aus:gcloud compute backend-services add-backend BACKEND_SERVICE_NAME \ --instance-group=INSTANCE_GROUP \ [--instance-group-region=INSTANCE_GROUP_REGION | --instance-group-zone=INSTANCE_GROUP_ZONE] \ --balancing-mode=BALANCING_MODE
Die Unterstützung des Balancing-Modus hängt vom Typ des Load Balancers ab. Eine vollständige Liste finden Sie unter Für jeden Load Balancer verfügbare Balancing-Modi.
Je nach Balancing-Modus der verwalteten Instanzgruppe sind zusätzliche Parameter erforderlich. Weitere Informationen finden Sie in der SDK-Dokumentation zum Befehl
add-backend
.REST
Informationen zum Hinzufügen eines Backend-Dienstes mit der REST API finden Sie unter backendServices.
Beschränkungen
Beim Load Balancing mit einer regionalen MIG wird die
max-rate
-Zielkapazität in den Balancing-ModiRATE
undUTILIZATION
nicht unterstützt. Weitere Informationen zu den Nutzungsrichtlinien für jeden Load Balancer finden Sie unter Balancing-Modi und Einstellungen für die Zielkapazität.Verwaltete Instanzgruppe zu einem Zielpool hinzufügen
Ein Zielpool ist ein Objekt, das eine oder mehrere VM-Instanzen enthält. Ein Zielpool wird in externen Passthrough-Network Load Balancern verwendet. Dabei werden Nutzeranfragen von einem Load-Balancer an den hinzugefügten Zielpool weitergeleitet. Die Instanzen, die Teil dieses Zielpools sind, leiten diese Anfragen weiter und geben eine Antwort zurück. Sie können eine verwaltete Instanzgruppe einem Zielpool hinzufügen, sodass der Zielpool automatisch aktualisiert wird, wenn Instanzen in der Instanzgruppe hinzugefügt oder entfernt werden.
Bevor Sie eine verwaltete Instanzgruppe einem Zielpool hinzufügen können, muss der Zielpool vorhanden sein. Weitere Informationen finden Sie in der Dokumentation zum Hinzufügen eines Zielpools.
Folgen Sie dieser Anleitung, um einem Zielpool eine vorhandene verwaltete Instanzgruppe hinzuzufügen. Dadurch werden alle VM-Instanzen, die Teil der verwalteten Instanzgruppe sind, dem Zielpool hinzugefügt.
Console
gcloud
Führen Sie den Befehl
set-target-pools
aus:gcloud compute instance-groups managed set-target-pools INSTANCE_GROUP \ --target-pools TARGET_POOL,..
Dabei gilt:
REST
Rufen Sie die Methode
setTargetPools
für eine regionale MIG oder zonale MIG auf. Beispiel:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/regionInstanceGroupManagers/INSTANCE_GROUP/setTargetPools
Dabei gilt:
Der Anfragetext muss eine Liste der URIs zu den Zielpools enthalten, zu denen Sie diese Gruppe hinzufügen möchten. Beispiel:
{ "targetPools": [ "regions/us-central1/targetPools/example-targetpool-1", "regions/us-central1/targetPools/example-targetpool-2" ] }
Benannte Ports verwalteten Instanzgruppen zuweisen
Benannte Ports sind Schlüssel/Wert-Paare, die den Namen und die Nummer eines Ports repräsentieren. Der Portname steht für den Namen eines Dienstes oder einer Anwendung. Die Portnummer steht für den Port, an dem der Dienst oder die Anwendung ausgeführt wird.
Benannte Ports werden von Cloud Load Balancing verwendet. Load-Balancer, die als Proxys dienen, abonnieren in ihrer Back-End-Dienst-Konfiguration einen einzelnen benannten Port. Der Name des Ports wird anhand der Zuordnung benannter Ports für jedes Instanzgruppen-Back-End in eine Portnummer übersetzt.
Ein Back-End-Dienst kann beispielsweise einen Port mit dem Namen
http-port
abonnieren. Die Back-End-Instanzgruppe kann einen Port namenshttp-port:80
haben. Die Back-End-Instanzgruppe weist den Load-Balancer an, Traffic über ein Protokoll wie TCP an eine VM in der Gruppe an Port 80 zu senden. Das Protokoll wird im Back-End-Dienst des Load-Balancers definiert.Benannte Ports sind einfache Metadaten, die von Proxy-Load-Balancern verwendet werden. Sie steuern keine Netzwerk- oder Firewallressourcen in Compute Engine.
Mehrere Portnummern für einen benannten Port verwenden
Sie können jedem Dienstnamen mehrere Ports zuweisen. Sie können für jeden Port auch mehrere Dienstnamen zuweisen.
Beachten Sie die folgenden Aspekte:
Sie können in einer Instanzgruppe mehrere benannte Ports zuweisen. Nehmen Sie zur Veranschaulichung einmal an, Sie hätten einen Back-End-Dienst, der den benannten Port
http-port
abonniert und zwei Back-End-Instanzgruppen hat:Dieser Back-End-Dienst sendet Traffic für VMs in
instance-group-a
an Port 80 und für VMs ininstance-group-b
an Port 79.Wenn Sie eine Instanzgruppe mehreren Back-End-Diensten (für mehrere Load-Balancer) hinzufügen und die Instanzgruppe für verschiedene Ports auf jedem Load-Balancer bereitgestellt wird, dürfen Sie einem einzelnen benannten Port nicht alle Portnummern hinzufügen. Erstellen Sie stattdessen einen eindeutigen benannten Port und ordnen Sie ihn einer Reihe von Ports zu, die für jeden Back-End-Dienst bereitgestellt werden sollen.
Angenommen, Sie haben drei Anwendungen mit jeweils einem eigenen Load-Balancer. Jede Anwendung hat eine eigene Portnummer: 81 für
app1
, 82 fürapp2
und 83 fürapp3
. Wenn alle drei Back-End-Dienste eine allgemeine Instanzgruppe verwenden, weisen Sie dieser Instanzgruppe die benannten Ports in Form von[app1:81, app2:82, app3:83]
zu.Benannte Ports und Systemdiagnosen
Damit ein benannter Port mit mehreren Portnummern für einen Backend-Dienst mit einem externen Application Load Balancer oder mit einem internen Application Load Balancer funktioniert, muss die Systemdiagnose anstelle einer bestimmten Portnummer das Flag
--use-serving-port
haben. Diese Option ist in der Google Cloud Console nicht verfügbar. Zum Festlegen von--use-serving-port
müssen Sie die Google Cloud CLI oder die API verwenden.Angenommen, Sie haben eine Anwendung, die mithilfe von Load-Balancing den Traffic an drei verschiedene Ports (81, 82, 83) für einen Backend-Dienst mit einer einzigen Instanzgruppe verteilt. Sie können die Ports dieser Instanzgruppen in Form von
[app:81, 82, 83]
zuweisen. Die Systemdiagnose muss in diesem Szenario das Flag--use-serving-port
haben.Weitere Informationen finden Sie in der Dokumentation zum Load-Balancing-Systemdiagnose.
Benannte Ports und Firewallregeln
Google Cloud-Firewallregeln werden von benannten Ports nicht erstellt oder geändert. Damit Sie Traffic zu Back-End-VMs zulassen können, müssen Sie dennoch die erforderlichen Firewallregeln erstellen.
Benannte Ports und Back-End-Dienste
Zusätzlich zur Konfiguration der Instanzgruppe müssen Sie auch den Back-End-Dienst konfigurieren. Angenommen, Sie legen den benannten Port für eine Instanzgruppe mit dem Namen
my-service-name
und dem Port8888
fest:gcloud compute instance-groups set-named-ports my-unmanaged-ig \ --named-ports=my-service-name:8888
Dann müssen Sie in der Konfiguration des Backend-Dienstes auf den benannten Port verweisen, wobei
--port-name
im Back-End-Dienst aufmy-service-name
gesetzt ist:gcloud compute backend-services update my-backend-service \ --port-name=my-service-name
Benannte Ports erstellen
Console
gcloud
Legen Sie für verwaltete Instanzgruppen mit dem Befehl
instance-groups managed set-named-ports
einen oder mehrere benannte Ports fest. Verwenden Sie für nicht verwaltete Gruppen den Befehlinstance-groups set-named-ports
.gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \ --named-ports PORT_NAME:PORT,PORT_NAME:PORT
Beispiel:
gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \ --named-ports name1:80,name2:8080
Sie können für jeden Namen oder Port mehrere Einträge erstellen, wenn Sie einem Dienstnamen mehrere Ports oder einem Dienst mehrere Namen zuweisen möchten. Beispiel: Wenn die Ports
10
,20
und80
für dieselbe Anwendung bestimmt sind, können Siename1
allen diesen Ports zuweisen. Zusätzlich könnten Sie zwei Namen,name2
undname3
, dem Port8080
zuweisen. Schließlich könnten Sie den Port9000
wie im folgenden Beispielname4
zuweisen:gcloud compute instance-groups managed set-named-ports INSTANCE_GROUP \ --named-ports name1:10,name1:20,name1:80,\ name2:8080,name3:8080,\ name4:9000
Die Portnamenzuordnung für eine verwaltete Instanzgruppe prüfen Sie mit dem Befehl
get-named-ports
:gcloud compute instance-groups managed get-named-ports INSTANCE_GROUP
NAME PORT name1 10 name1 20 name1 80 name2 8080 name3 8080 name4 9000
REST
Die API
instanceGroupManagers
bietet nicht die API-MethodesetNamedPorts
. Verwenden Sie für diese Aufgabe stattdessen die APIinstanceGroups
.Erstellen Sie eine Anfrage an die API
instanceGroups
. Geben Sie dabei den Namen der Instanzgruppe an. Ermitteln Sie den aktuellen Wert der Instanzgruppe fürfingerprint
durch Abrufen von Informationen über eine bestimmte Gruppe. Fügen Sie denfingerprint
-Wert sowie eines oder mehrerenamedPorts
-Wertpaare in den Anfragetext ein:POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroups/INSTANCE_GROUP/setNamedPorts { "fingerprint": "42WmSpB8rSM=", "namedPorts": [ { "name": "PORT_NAME", "port": PORT_NUMBER }, { "name": "PORT_NAME", "port": PORT_NUMBER } ] }
Wenn z. B. die Ports
10
,20
und80
für dieselbe Anwendung bestimmt sind, können Sie allen diesen Portsname1
zuweisen. Zusätzlich könnten Sie zwei Namen,name2
undname3
, dem Port8080
zuweisen. Schließlich könnten Sie den Port9000
wie im folgenden Beispielname4
zuweisen:POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts { "fingerprint": "42WmSpB8rSM=", "namedPorts": [ { "name": "name1", "port": 8080 }, { "name": "name2", "port": 9000 } ] }
Erstellen Sie mehrere Einträge für diesen Namen, wenn Sie einem Dienstnamen mehrere Ports zuweisen möchten. Weisen Sie beispielsweise
name1
die Ports10
,20
und80
zu. Ordnen Sie außerdemname2
Port8080
zu.POST https://compute.googleapis.com/compute/v1/projects/myproject/zones/us-central1-a/instanceGroups/example-group/setNamedPorts { "fingerprint": "42WmSpB8rSM=", "namedPorts": [ { "name": "name1", "port": 10 }, { "name": "name1", "port": 20 } { "name": "name1", "port": 80 } { "name": "name2", "port": 8080 } { "name": "name3", "port": 80 } { "name": "name4", "port": 8080 } ] }
Stellen Sie eine
GET
-Anfrage, die auf die Gruppe verweist, um eine Liste der benannten Ports zu erhalten, die bereits einer verwalteten Instanzgruppe zugewiesen sind:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP
Nächste Schritte
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers. Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2024-12-22 (UTC).
-