Eine nicht verwaltete Instanzgruppe ist eine Sammlung von VM-Instanzen (Virtual Machine), die sich in einem einzelnen Projekt, einer einzelnen Zone, einem VPC-Netzwerk und einem Subnetz befinden. Eine nicht verwaltete Instanzgruppe ist nützlich zum Gruppieren von VMs, die individuelle Konfigurationseinstellungen oder eine Feinabstimmung erfordern. Sie könnenn nicht verwaltete Instanzgruppe im Backend-Dienst eines Load Balancers verwenden.
Für VMs, die konsistente Konfigurationseinstellungen erfordern, können Sie eine verwaltete Instanzgruppe (Managed Instance Group, MIG) verwenden, die auf einer Instanzvorlage basiert. Verwenden Sie nach Möglichkeit verwaltete Instanzgruppen statt nicht verwalteter. Informationen zum Erstellen einer verwalteten Instanzgruppe finden Sie unter Eine MIG erstellen.
Sie können jeden der Instanzgruppentypen als Back-End zu einem Google Cloud Load-Balancer hinzufügen. Weitere Informationen finden Sie unter Cloud Load Balancing. Weitere Informationen zur Anzahl der von Cloud Load Balancing pro Instanzgruppe unterstützten VMs finden Sie unter VMs pro Instanzgruppe.
Unter Instanzgruppen finden Sie weitere Informationen dazu.
Hinweise
- Lesen Sie mehr über den Unterschied zwischen verwalteten und nicht verwalteten Instanzgruppen.
-
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:
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
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.
-
Mit nicht verwalteten Instanzgruppen arbeiten
Gruppen erstellen
Im Unterschied zu verwalteten Instanzgruppen sind nicht verwaltete Instanzgruppen nur Sammlungen einzelner VMs, für die keine gemeinsame Instanzvorlage verwendet wird. Sie erstellen einfach eine Gruppe und fügen dieser einzelne VMs hinzu.
- Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
- Klicken Sie auf Instanzgruppe erstellen.
- Klicken Sie auf Neue nicht verwaltete Instanzgruppe.
- Geben Sie einen Namen für die nicht verwaltete Instanzgruppe ein.
- Wählen Sie unter Standort eine Region und eine Zone aus.
- Wählen Sie ein Netzwerk und ein Subnetzwerk aus.
- Wählen Sie unter VM-Instanzen die VMs aus, die dieser Gruppe hinzugefügt werden sollen.
- Klicken Sie auf Erstellen.
Erstellen Sie eine neue nicht verwaltete Instanzgruppe mit dem Befehl instance-groups unmanaged create:
gcloud compute instance-groups unmanaged createinstance-group-name \ --zone=zone
Ersetzen Sie Folgendes:
instance-group-name
: der Name der Gruppe, die Sie erstellen möchten.zone
: die Zone, in der Sie die Gruppe erstellen möchten.
Damit Sie mit REST eine nicht verwaltete Instanzgruppe erstellen können, senden Sie eine POST
-Anfrage mit der Methode instanceGroups.insert:
POST https://compute.googleapis.com/compute/v1/projects/project-id /zones/zone /instanceGroups { "name": "instance-group-name " }
Ersetzen Sie Folgendes:
instance-group-name
: der Name der Gruppe, die Sie erstellen möchten.zone
: die Zone, in der Sie die Gruppe erstellen möchten.project-id
: die Projekt-ID für das Projekt mit der Gruppe.
Wenn Sie eine neue nicht verwaltete Instanzgruppe mit dem Google Cloud CLI oder REST erstellen, werden der Gruppe keine VMs automatisch hinzugefügt. Sie können VMs manuell zur nicht verwalteten Instanzgruppe hinzufügen.
Gruppen auflisten und beschreiben
Rufen Sie eine Liste vorhandener nicht verwalteter Instanzgruppen ab.
In der Google Cloud Console werden auf der Seite Instanzgruppen vorhandene nicht verwaltete und verwaltete Instanzgruppen aufgeführt.
Listen Sie alle nicht verwalteten Instanzgruppen in Ihrem Projekt in der Google Cloud CLI mit instance-groups unmanaged list auf:
gcloud compute instance-groups unmanaged list
Weitere Informationen zu einer bestimmten nicht verwalteten Instanzgruppe erhalten Sie mit dem Befehl instance-groups unmanaged describe:
gcloud compute instance-groups unmanaged describeinstance-group-name \ --zone=zone
Ersetzen Sie Folgendes:
instance-group-name
: der Name der zu beschreibenden Gruppe.zone
: die Zone der Gruppe.
Damit Sie Instanzgruppen mit REST auflisten können, senden Sie eine GET
-Anfrage mit der Methode instanceGroups.list:
GET https://compute.googleapis.com/compute/v1/projects/project-id /zones/zone /instanceGroups
Damit Sie über die API Informationen zu einer bestimmten nicht verwalteten Instanzgruppe abrufen können, senden Sie eine GET
-Anfrage mit der Methode instanceGroups.get:
GET https://compute.googleapis.com/compute/v1/projects/project-id /zones/zone /instanceGroups/instance-group-name
Ersetzen Sie Folgendes:
instance-group-name
: der Name der zu beschreibenden Gruppe.zone
: die Zone der Gruppe.project-id
: die Projekt-ID für das Projekt mit der Gruppe.
Gruppen löschen
Im Unterschied zu einer verwalteten Instanzgruppe werden beim Löschen einer nicht verwalteten Instanzgruppe keine der VMs gelöscht, die sich in der Gruppe befinden. Durch das Löschen einer nicht verwalteten Instanzgruppe wird nur die logische Gruppierung von VMs aufgehoben.
Sie können eine Instanzgruppe nicht löschen, wenn sie das Back-End einesGoogle Cloud Load Balancers ist. Sie müssen zuerst das Back-End aus dem Back-End-Dienst entfernen.
- Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
- Wählen Sie eine oder mehrere nicht verwaltete Instanzgruppen aus der Liste aus.
- Klicken Sie auf Löschen, um die Gruppen zu entfernen. Die Gruppen werden entfernt, aber die VMs in den Gruppen werden nicht gelöscht.
Löschen Sie eine nicht verwaltete Instanzgruppe mit dem Befehl instance-groups unmanaged delete:
gcloud compute instance-groups unmanaged deleteinstance-group-name \ --zone=zone
Ersetzen Sie Folgendes:
instance-group-name
: der Name der Gruppe, die Sie löschen möchten.zone
: die Zone der Gruppe.
Senden Sie zum Löschen einer nicht verwalteten Instanzgruppe mit REST eine DELETE
-Anfrage mit der Methode instanceGroups.delete:
DELETE https://compute.googleapis.com/compute/v1/projects/project-id /zones/zone /instanceGroups/instance-group-name
Ersetzen Sie Folgendes:
instance-group-name
: der Name der Gruppe, die Sie löschen möchten.zone
: die Zone der Gruppe.project-id
: die Projekt-ID für das Projekt mit der Gruppe.
Gruppenmitgliedschaft
VMs hinzufügen
Nachdem Sie eine nicht verwaltete Instanzgruppe erstellt haben, können Sie der Gruppe VMs hinzufügen. Sie können VMs jedoch nur gruppieren, wenn die erste oder einzige Netzwerkschnittstelle (nic0
) jeder VM an dasselbe VPC-Netzwerk angehängt ist. Die maximale Anzahl an VMs, die Sie einer nicht verwalteten Instanzgruppe hinzufügen können, beträgt 2.000. Wenn Sie der Gruppe mehr als 2.000 VMs hinzufügen möchten, wenden Sie sich an den Support.
- Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
- Klicken Sie in der Spalte Name der Liste auf den Namen der Instanzgruppe, der Sie die VMs hinzufügen möchten. Es wird eine Seite mit den Eigenschaften der Instanzgruppe und einer Liste der VMs geöffnet, die bereits in der Gruppe enthalten sind.
- Klicken Sie auf Bearbeiten, um die nicht verwaltete Instanzgruppe zu bearbeiten.
- Wählen Sie unter VM-Instanzen eine oder mehrere vorhandene VMs aus, die der Gruppe hinzugefügt werden sollen. Sie können nur VMs, die sich in derselben Zone, demselben VPC-Netzwerk und demselben Subnetz befinden, als vorhandene VMs auswählen.
- Klicken Sie auf Speichern, um die neuen VMs zur Gruppe hinzuzufügen.
Fügen Sie Instanzen zu einer nicht verwalteten Instanzgruppe mit dem Befehl instance-groups unmanaged add-instances hinzu:
gcloud compute instance-groups unmanaged add-instancesinstance-group-name \ --zone=zone \ --instances=list-of-VM-names
Ersetzen Sie Folgendes:
instance-group-name
: der Name der Gruppe, der Sie VMs hinzufügen möchten.zone
: die Zone der Gruppe.list-of-VM-names
: eine durch Kommas getrennte Liste von VMs in derselben Zone, demselben VPC-Netzwerk und demselben Subnetz.
Damit Sie VMs zu einer nicht verwalteten Instanzgruppe hinzufügen können, senden Sie eine POST
-Anfrage mit der Methode instanceGroups.addInstances:
POST https://compute.googleapis.com/compute/v1/projects/project-id /zones/zone /instanceGroups/instance-group-name /addInstances { "instances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/project-id /zones/zone /instances/instance-1-name ", "instance": "https://www.googleapis.com/compute/v1/projects/project-id /zones/zone /instances/instance-2-name ", .... } ] }
Ersetzen Sie Folgendes:
instance-group-name
: der Name der Gruppe, der Sie VMs hinzufügen möchten.zone
: die Zone der Gruppe.project-id
: die Projekt-ID für das Projekt mit der Gruppe.instance-1-name
undinstance-2-name
: die Namen der VMs in derselben Zone, demselben VPC-Netzwerk und demselben Subnetz, die Sie der Gruppe hinzufügen möchten.
VMs auflisten
Sie können eine Liste der Mitglieds-VMs in einer nicht verwalteten Instanzgruppe abrufen.
- Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
- Klicken Sie in der Liste in der Spalte Name auf den Namen der nicht verwalteten Instanzgruppe, die Sie aufrufen möchten. Es wird eine Seite mit der Liste der in der Gruppe enthaltenen Instanzen geöffnet.
Listen Sie die VMs in einer nicht verwalteten Instanzgruppe mit dem Befehl instance-groups unmanaged list-instances auf:
gcloud compute instance-groups unmanaged list-instancesinstance-group-name \ --zone=zone
Ersetzen Sie Folgendes:
instance-group-name
: der Name der Gruppe, deren Mitglieder Sie auflisten möchten.zone
: die Zone der Gruppe.
Damit Sie VMs in einer nicht verwalteten Instanzgruppe auflisten können, senden Sie eine POST
-Anfrage mit der Methode instanceGroups.listInstances:
POST https://compute.googleapis.com/compute/v1/projects/project-id /zones/zone /instanceGroups/instance-group-name /listInstances
Ersetzen Sie Folgendes:
instance-group-name
: der Name der Gruppe, deren Mitglieder Sie auflisten möchten.zone
: die Zone der Gruppe.project-id
: die Projekt-ID für das Projekt mit der Gruppe.
VMs entfernen
Sie können VMs aus einer nicht verwalteten Instanzgruppe entfernen. Beim Entfernen einer VM aus der Instanzgruppe wird die VM nicht gelöscht.
- Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
- Klicken Sie in der Liste in der Spalte Name auf den Namen der Instanzgruppe, aus der Sie VMs entfernen möchten. Es wird eine Seite mit den Eigenschaften der Instanzgruppe und einer Liste der in der Gruppe enthaltenen VMs geöffnet.
- Wählen Sie in der Liste eine oder mehrere VMs aus, die Sie aus der Gruppe entfernen möchten.
- Klicken Sie auf Aus Gruppe entfernen. VMs, die Sie aus einer nicht verwalteten Instanzgruppe entfernen, bleiben erhalten und werden weiterhin ausgeführt, bis Sie sie beenden oder löschen.
Entfernen Sie mit dem Befehl instance-groups unmanaged remove-instances VMs aus einer nicht verwalteten Instanzgruppe:
gcloud compute instance-groups unmanaged remove-instancesinstance-group-name \ --zone=zone \ --instances=list-of-VM-names
Ersetzen Sie Folgendes:
instance-group-name
: der Name der Gruppe mit den zu entfernenden Instanzen.zone
: die Zone der Gruppe.list-of-VM-names
: eine durch Kommas getrennte Liste der VMs, die Sie aus der Gruppe entfernen möchten.
Damit Sie VMs aus einer nicht verwalteten Instanzgruppe entfernen können, senden Sie eine POST
-Anfrage mit der Methode instanceGroups.removeInstances. So können Sie mehrere VMs gleichzeitig entfernen:
POST https://compute.googleapis.com/compute/v1/projects/project-id /zones/zone /instanceGroups/instance-group-name /removeInstances { "instances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/project-id /zones/zone /instances/instance-1-name ", "instance": "https://www.googleapis.com/compute/v1/projects/project-id /zones/zone /instances/instance-2-name ", .... } ] }
Ersetzen Sie Folgendes:
instance-group-name
: der Name der Gruppe mit den zu entfernenden Instanzen.zone
: die Zone der Gruppe.project-id
: die Projekt-ID für das Projekt mit der Gruppe.instance-1-name
undinstance-2-name
: die Namen der VMs, deren Verknüpfung mit der Gruppe aufgehoben werden soll.
Mit benannten Ports arbeiten
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 namens http-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:
- 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.
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:
instance-group-a
mit dem benannten Porthttp-port:80
instance-group-b
mit dem benannten Porthttp-port:79
Dieser Back-End-Dienst sendet Traffic für VMs in instance-group-a
an Port 80 und für VMs in instance-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ür app2
und 83 für app3
. 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 Port 8888
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 auf my-service-name
gesetzt ist:
gcloud compute backend-services update my-backend-service \ --port-name=my-service-name
Benannte Ports erstellen
- Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
- Klicken Sie in der Liste in der Spalte Name 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 nicht verwaltete Instanzgruppe zu bearbeiten.
- Klicken Sie im Abschnitt Portzuordnung auf Port hinzufügen und geben Sie einen Portnamen sowie die Portnummer ein. Fügen Sie bei Bedarf andere benannte Ports hinzu oder entfernen Sie welche.
- Klicken Sie auf Speichern, um die Liste der benannten Ports für die nicht verwaltete Instanzgruppe zu aktualisieren.
Um benannte Ports einer nicht verwalteten Instanzgruppe hinzuzufügen, verwenden Sie den Befehl instance-groups
unmanaged set-named-ports
.
gcloud compute instance-groups unmanaged set-named-portsinstance-group-name \ --zone=zone \ --named-ports=port-name :port-number ,...
Um benannte Ports in einer nicht verwalteten Instanzgruppe aufzulisten, verwenden Sie den Befehl instance-groups unmanaged get-named-ports
:
Richten Sie mit dem Befehl set-named-ports
einen oder mehrere benannte Ports ein:
gcloud compute instance-groups unmanaged set-named-portsINSTANCE_GROUP \ --named-portsPORT_NAME :PORT ,PORT_NAME :PORT
Beispiel:
gcloud compute instance-groups unmanaged set-named-portsINSTANCE_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
und 80
für dieselbe Anwendung bestimmt sind, können Sie name1
allen diesen Ports zuweisen. Zusätzlich könnten Sie zwei Namen, name2
und name3
, dem Port 8080
zuweisen. Schließlich könnten Sie den Port 9000
wie im folgenden Beispiel name4
zuweisen:
gcloud compute instance-groups unmanaged set-named-portsINSTANCE_GROUP \ --named-ports name1:10,name1:20,name1:80,\ name2:8080,name3:8080,\ name4:9000
Wenn Sie mit dem Google Cloud CLI alle benannten Ports aus einer nicht verwalteten Instanzgruppe entfernen möchten, verwenden Sie instance-groups unmanaged set-named-ports mit einer leeren Liste benannter Ports:
gcloud compute instance-groups unmanaged set-named-portsinstance-group-name \ --zone=zone \ --named-ports=""
Ersetzen Sie in allen obigen Beispielen Folgendes, sofern vorhanden:
instance-group-name
: der Name der Instanzgruppe.zone
: die Zone der Gruppe.port-name
undport-number
: Der Portname und die Portnummer stellen eine Zuordnung von einem ausgewählten Namen zu einer Portnummer dar. Sie können mehrere durch Kommas getrennte Zuordnungen angeben. Zum Beispiel istport-one:80,port-two:8080
eine gültige Liste benannter Ports.
Beschreiben Sie die Instanzgruppe und notieren Sie sich den fingerprint (Fingerabdruck).
Damit Sie benannte Ports hinzufügen können, senden Sie eine
POST
-Anfrage mit der Methode instanceGroups.setNamedPorts. Wenn Sie alle benannten Ports entfernen möchten, geben Sie fürnamedPorts
eine leere Liste an.POST https://compute.googleapis.com/compute/v1/projects/
project-id /zones/zone /instanceGroups/instance-group-name /setNamedPorts { "fingerprint": "fingerprint ", "namedPorts": [ { "name": "port-name ", "port":port-number }, { "name": "port-name ", "port":port-number }, .... ] }Ersetzen Sie Folgendes:
instance-group-name
: der Name der Instanzgruppe.zone
: die Zone der Gruppe.project-id
: die Projekt-ID für das Projekt mit der Gruppe.port-name
undport-number
: Der Portname und die Portnummer stellen eine Zuordnung von einem ausgewählten Namen zu einer Portnummer dar.fingerprint
: Dies ist der Fingerabdruck aus dem vorherigen Schritt.
Nächste Schritte
- Verwaltete Instanzgruppe mit VMs in einer einzelnen Zone erstellen
- Verwaltete Instanzgruppe mit VMs in mehreren Zonen in einer Region erstellen
- Cloud Load Balancing.