Mit verwalteten Instanzen arbeiten

Eine verwaltete Instanz ist eine Datenentität, die den beabsichtigten Status einer tatsächlichen VM-Instanz in einer verwalteten Instanzgruppe (Managed Instance Group, MIG) darstellt. In diesem Dokument erfahren Sie, wie Sie zuverlässig mit den verwalteten Instanzen einer MIG arbeiten können. Sie müssen möglicherweise Informationen zu einer bestimmten Instanz hinzufügen, entfernen, aktualisieren oder abrufen.

Damit Ihre Konfigurationsänderungen nicht von der MIG rückgängig gemacht werden, ist es wichtig, dass Sie die in diesem Dokument beschriebenen Methoden verwenden. Wenn Sie nicht entsprechend der Methoden der Gruppe arbeiten, erkennt die MIG Änderungen und versucht möglicherweise, die Gruppe zu reparieren. Wenn Sie beispielsweise eine Instanz in einer Gruppe löschen, erstellt die MIG diese Instanz gemäß der Spezifikation der verwalteten Instanz unter Umständen automatisch neu.

Hinweis

Was ist eine verwaltete Instanz?

Eine verwaltete Instanz ist eine Datenentität innerhalb einer verwalteten Instanzgruppe (Managed Instance Group, MIG), die den aktuellen Status und den beabsichtigten Status für eine tatsächliche VM-Instanz enthält.

Der aktuelle Status einer verwalteten Instanz umfasst die folgenden Felder:

  • Status des Lebenszyklus einer Instanz, z. B. RUNNING, STOPPING.
  • Aktuelle Aktion, die von der MIG für eine Instanz ausgeführt wird, z. B. RESTARTING, VERIFYING, NONE.
  • Status einer Instanz, z. B. HEALTHY, UNHEALTHY.

Der beabsichtigte Status einer verwalteten Instanz für eine tatsächliche VM-Instanz umfasst Folgendes:

  • Gewünschte Version, d. h. der Versionsname und die Instanzvorlage, die für die Instanz verwendet werden sollen.
  • Beibehaltener Status von Elementen (z. B. Laufwerke oder Metadaten), die beibehalten werden sollen.

Wie in Abbildung 1 dargestellt, behält die MIG für jede verwaltete Instanz in einer MIG eine tatsächliche VM bei und führt diese gemäß der Spezifikation der verwalteten Instanz aus.

Basierend auf der Konfiguration generiert die MIG automatisch verwaltete Instanzen, die den tatsächlichen VM-Instanzen entsprechen, die eine MIG in Ihrem Namen verwaltet.

Abbildung 1. Beziehung zwischen verwalteten Instanzen und zugehörigen VMs.

Informationen zu den Spezifikationen einer verwalteten Instanz finden Sie unter Informationen zu den verwalteten Instanzen in einer MIG abrufen.

Instanzen zu einer MIG hinzufügen

Sie haben verschiedene Möglichkeiten, weitere Instanzen zu einer MIG hinzuzufügen:

Wenn Sie überprüfen möchten, ob neu hinzugefügte Instanzen ausgeführt werden, überprüfen Sie den Status der Gruppe oder überprüfen Sie den Status der verwalteten Instanzen.

Manuelle Größenanpassung

Wenn für eine verwaltete Instanzgruppe noch keine automatische Skalierung festgelegt ist, können Sie die Größe der Gruppe manuell anpassen, um die Anzahl der Instanzen in der Gruppe zu ändern. Weitere Informationen finden Sie unter Größe einer MIG manuell anpassen.

Autoscaling

Verwaltete Instanzgruppen lassen sich so konfigurieren, dass Instanzen lastabhängig automatisch hinzugefügt oder entfernt werden. So können Ihre Anwendungen ansteigenden Traffic problemlos bewältigen und Sie können Ihre Kosten senken, wenn der Bedarf an Rechenressourcen sinkt. Weitere Informationen zum Autoscaling der MIG finden Sie unter Autoscaling von Instanzgruppen.

Instanzen mit bestimmten Namen hinzufügen

Wenn Sie ein System haben, das von bestimmten Namen abhängig ist, verwenden Sie das gcloud-Tool oder die API, um VMs mit bestimmten Namen zu einer vorhandenen MIG hinzuzufügen.

Die Namen, die Sie diesen verwalteten Instanzen zuweisen, bleiben erhalten, wenn die VM von der MIG neu erstellt wird. Weitere Informationen zum Beibehalten des Status von MIG-Instanzen finden Sie unter Zustandsorientierte MIGs.

Beschränkungen

Wenn Sie Instanzen mit bestimmten Namen erstellen, beachten Sie:

  • Während der Instanzerstellung müssen Sie das Autoscaling deaktivieren.
  • Die Aktualisierungsrichtlinie der MIG muss opportunistisch sein.
  • Wenn Sie eine regionale MIG aktualisieren:
  • Sie können in einem Projekt keine doppelten VM-Instanznamen verwenden.

gcloud

Führen Sie den Befehl instance-groups managed create-instance aus.

gcloud compute instance-groups managed create-instance INSTANCE_GROUP_NAME \
    --instance INSTANCE_NAME \
    [--region REGION | --zone ZONE]

Dabei gilt:

  • INSTANCE_GROUP_NAME ist der Name der regionalen oder zonalen MIG, der eine neue Instanz hinzugefügt werden soll.
  • INSTANCE_NAME ist der Name, den die neue Instanz haben soll.

API

Führen Sie in der API eine POST-Anfrage für die Methode regionInstanceGroupManagers.createInstances aus. Verwenden Sie für eine zonal verwaltete Instanzgruppe die Methode instanceGroupManagers.createInstances. Fügen Sie dabei in den Anfragetext das Feld instances mit den Namen einer oder mehrerer Instanzen ein.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/createInstances
{
  "instances": [
    {
      "name": "INSTANCE_NAME_1"
    },
    {
      "name": "INSTANCE_NAME_2"
    }
  ]
}

Ausgewählte Instanzen in einer Gruppe aktualisieren

Instanzen selektiv in einer MIG aktualisieren

Instanzen aus einer MIG löschen

Wenn Sie verwaltete Instanzen löschen, reduziert die MIG die targetSize der Gruppe und löscht die entsprechenden VM-Instanzen.

Wenn Sie eine zustandsorientierte MIG einrichten, löscht die MIG die beibehaltenen Zustandskonfigurationen der Instanzen. Die MIG entfernt die Instanzen auch aus allen Zielpools, denen sie angehören.

Wenn die Gruppe Teil eines Back-End-Dienstes ist, für den der Verbindungsausgleich aktiviert ist, kann es nach Ablauf des Verbindungsausgleichs bis zu 60 Sekunden dauern, bis die VM-Instanz entfernt oder gelöscht wird.

Sie haben unterschiedliche Möglichkeiten, eine verwaltete Instanz und damit auch die entsprechende VM-Instanz zu löschen:

Bestimmte Instanzen löschen

Nach dem Löschen bestimmter Instanzen aus einer verwalteten Instanzgruppe gelten weiterhin die festgelegten Autoscaling-Einstellungen. Wenn Sie Instanzen aus einer Gruppe entfernen, ermittelt das Autoscaling unter Umständen eine Steigerung der Arbeitslast auf den anderen Instanzen der Gruppe und erhöht die Gruppengröße wieder auf das bisherige Niveau. Um dies zu verhindern, sollten Sie das Autoscaling beenden, bevor Sie Instanzen löschen.

Einzelne verwaltete Instanzen können Sie in der Google Cloud Console, mit dem gcloud-Befehlszeilentool oder mit der API löschen.

Console

  1. Rufen Sie in der Cloud Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

  2. Klicken Sie in der Spalte Name der Liste auf die Instanzgruppe, aus der Sie einzelne Instanzen löschen möchten. Ihnen wird eine Seite mit den Attributen der Instanzgruppe und einer Liste der zur Gruppe gehörenden Instanzen angezeigt.

  3. Wählen Sie im Abschnitt Mitglieder aus der Liste der Instanzen eine oder mehrere Instanzen aus, die Sie löschen möchten.

  4. Klicken Sie auf Instanz löschen. Die ausgewählten Instanzen werden gelöscht.

gcloud

Zum Löschen einer Instanz mit dem gcloud-Tool verwenden Sie den Befehl instance-groups managed delete-instances:

gcloud compute instance-groups managed delete-instances INSTANCE_GROUP_NAME \
    --instances INSTANCE_NAME_1,INSTANCE_NAME_2 \
    [--region REGION | --zone ZONE]

Der Befehl gibt den Vorgangsstatus pro Instanz zurück:

  • SUCCESS wird zurückgegeben, wenn das gcloud-Tool die Instanz gelöscht hat.
  • FAIL wird für alle Instanzen zurückgegeben, wenn eine in der Anfrage angegebene Instanz kein Mitglied der Gruppe ist, ein Mitglied bereits gelöscht oder verworfen wurde oder die Anfrage aus einem anderen Grund fehlschlägt.
  • SKIPPED wird nur zurückgegeben, wenn Sie das Flag --skip-instances-on-validation-error verwenden und die Instanz kein Mitglied der Gruppe ist oder bereits gelöscht oder verworfen wurde.
  • MEMBER_NOT_FOUND wird nur für regionale Gruppen zurückgegeben, wenn das gcloud-Tool die Zone nicht aus dem Instanznamen auflösen konnte.

Wenn Sie davon ausgehen, dass Ihre Löschanfrage mit gleichzeitigen Vorgängen in Konflikt stehen könnte, verwenden Sie das Flag --skip-instances-on-validation-error. Dieses Flag gibt an, ob die Anfrage auch dann fortgesetzt werden soll, wenn die Anfrage Instanzen enthält, die keine Mitglieder der Gruppe sind oder bereits gelöscht oder verworfen wurden, z. B. Instanzen, die von einem Autoscaling gelöscht wurden. Wenn Sie dieses Flag weglassen und in der Anfrage eine solche Instanz angegeben ist, schlägt der Vorgang standardmäßig fehl. Der Vorgang schlägt immer fehl, wenn die Anfrage einen falsch formatierten Instanznamen oder einen Verweis auf eine Instanz in einer anderen Zone oder Region als der Zone oder Region der Gruppe enthält.

Mit dem folgenden Befehl wird beispielsweise das Löschen von vier Instanzen angefordert, von denen drei jedoch nicht mehr in der Gruppe enthalten sind:

gcloud compute instance-groups managed delete-instances example-mig \
    --instances=example-instance-1,example-instance-2,example-instance-3,example-instance-4 \
    --region=us-central1 \
    --skip-instances-on-validation-error

In diesem Beispiel haben drei Instanzen die Validierung nicht bestanden, sodass sie übersprungen wurden, während example-instance-3 gelöscht wurde:

Updated [https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceGroupManagers/example-mig].
PROJECT          ZONE           INSTANCE               STATUS   VALIDATION_ERROR
example-project  us-central1-a  example-instance-1     SKIPPED  Cannot delete instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-1 that was already deleted.
example-project  us-central1-a  example-instance-2     SKIPPED  Cannot delete instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-2 that was already abandoned.
example-project  us-central1-a  example-instance-3     SUCCESS
example-project  us-central1-a  example-instance-4     SKIPPED  Cannot find instance https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-instance-4.

Wenn Sie das Flag --skip-instances-on-validation-error weglassen und keine der Instanzen die Validierung besteht, wird keine Instanz gelöscht:

gcloud compute instance-groups managed delete-instances example-mig \
    --instances=example-instance-1,example-instance-2,example-instance-3,example-instance-4 \
    --region=us-central1

Updated [https://www.googleapis.com/compute/v1/projects/example-project/regions/us-central1/instanceGroupManagers/example-mig].
PROJECT          ZONE             INSTANCE              STATUS
example-project  us-central1-a    example-instance-1    FAIL
example-project  us-central1-a    example-instance-2    FAIL
example-project  us-central1-a    example-instance-3    FAIL
example-project  us-central1-a    example-instance-4    FAIL

API

Führen Sie in der API eine POST-Anfrage für die Methode regionInstanceGroupManagers.deleteInstances aus. Verwenden Sie für eine zonal verwaltete Instanzgruppe die Methode instanceGroupManagers.deleteInstances.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/deleteInstances

{
  "instances": [
    "zones/ZONE/instances/INSTANCE_NAME_1",
    "zones/ZONE/instances/INSTANCE_NAME_2"
   ]
}

Wenn Sie davon ausgehen, dass Ihre Löschanfrage mit gleichzeitigen Vorgängen in Konflikt stehen könnte, verwenden Sie das Feld skipInstancesOnValidationError. Dieses Feld gibt an, ob die Anfrage auch dann fortgesetzt werden soll, wenn die Anfrage Instanzen enthält, die keine Mitglieder der Gruppe sind oder bereits gelöscht oder verworfen wurden, z. B. Instanzen, die von einem Autoscaling gelöscht wurden. Wenn Sie dieses Flag weglassen und in der Anfrage eine solche Instanz angegeben ist, schlägt der Vorgang standardmäßig fehl. Der Vorgang schlägt immer fehl, wenn die Anfrage einen falsch formatierten Instanznamen oder einen Verweis auf eine Instanz in einer anderen Zone oder Region als der Zone oder Region der Gruppe enthält.

Die folgende Anfrage zum Löschen von zwei Instanzen ist beispielsweise erfolgreich, auch wenn eine der Instanzen bereits gelöscht wurde:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/deleteInstances

{
 "instances": [
  "zones/ZONE/instances/INSTANCE_NAME_1",
  "zones/ZONE/instances/INSTANCE_NAME_2"
 ],
 "skipInstancesOnValidationError": true
}

Sie können sich anhand des Vorgangs die Instanzen ansehen, die im Vorgang übersprungen wurden. Verwenden Sie für regionale MIGs die Methode regionOperations.get. Verwenden Sie für zonale MIGs die Methode zoneOperations.get. Warnungen werden im Warnfeld des Vorgangs aufgelistet.

Nach einer Anfrage zum Löschen von Instanzen in einer verwalteten Instanzgruppe werden die Instanzen angehalten, sobald das System sie löschen kann. Je nachdem, wie viele Instanzen Sie aus der Gruppe löschen möchten, kann dies einige Zeit dauern. Überprüfen Sie den Status der Gruppe oder überprüfen Sie den Status der verwalteten Instanzen.

Instanzen in einer MIG verwerfen

Sie können eine VM-Instanz von einer verwalteten Instanzgruppe trennen, um Fehler daran leichter zu beheben, ohne die gesamte Gruppe in Mitleidenschaft zu ziehen. Durch das Verwerfen einer Instanz wird diese auch aus den Load-Balancern entfernt, die der verwalteten Instanzgruppe zugewiesen sind. Bestimmten Instanzen manuell zugeteilte Zielpools werden dagegen nicht entfernt.

Das Verwerfen von Instanzen reduziert den angegebenen Wert targetSize der Instanzgruppe, ändert jedoch keine der festgelegten Autoscaling-Einstellungen. Verwaltete Instanzgruppen, für die Autoscaling eingerichtet ist, fügen weiterhin automatisch bei Bedarf Instanzen hinzu oder entfernen diese.

Wenn die Gruppe Teil eines Back-End-Dienstes ist, für den der Verbindungsausgleich aktiviert ist, kann es nach Ablauf des Verbindungsausgleichs bis zu 60 Sekunden dauern, bis die VM-Instanz entfernt oder gelöscht wird.

Sie können Instanzen aus einer verwalteten Instanzgruppe mit der Google Cloud Console, dem gcloud-Tool oder der API verwerfen.

Console

  1. Rufen Sie in der Cloud Console die Seite Instanzgruppen auf.

    Zu den Instanzgruppen

  2. Klicken Sie in der Spalte Name der Liste auf die Instanzgruppe, aus der Sie Instanzen entfernen möchten. Ihnen wird eine Seite mit den Attributen der Instanzgruppe und einer Liste der zur Gruppe gehörenden Instanzen angezeigt.

  3. Wählen Sie im Abschnitt Mitglieder aus der Liste der Instanzen eine oder mehrere Instanzen aus, die Sie aus der Gruppe entfernen möchten.

  4. Klicken Sie auf Aus Gruppe entfernen. Die ausgewählten Instanzen werden aus der Gruppe entfernt, werden aber weiterhin ausgeführt.

gcloud

Um eine Instanz aus der Instanzgruppe zu entfernen, ohne die Instanz zu löschen, verwenden Sie den Befehl instance-groups managed abandon-instances.

gcloud compute instance-groups managed abandon-instances INSTANCE_GROUP_NAME \
    --instances INSTANCE_NAME_1,INSTANCE_NAME_2 \
    [--region REGION | --zone ZONE]

API

Führen Sie in der API eine POST-Anfrage für die Methode regionInstanceGroupManagers.abandonInstances aus. Verwenden Sie für eine zonal verwaltete Instanzgruppe die Methode instanceGroupManagers.abandonInstances.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/abandonInstances

{
 "instances": [
  "zones/ZONE/instances/INSTANCE_NAME_1",
  "zones/ZONE/instances/INSTANCE_NAME_2"
 ]
}

Nach einer Anfrage zum Verwerfen von Instanzen aus einer verwalteten Instanzgruppe werden diese so bald wie möglich aus der Gruppe entfernt. Überprüfen Sie den Status der Gruppe oder überprüfen Sie den Status der verwalteten Instanzen.

Instanzen in einer MIG neu erstellen

Verwenden Sie diese Methode, um ausgewählte VMs so zu aktualisieren, dass sie die aktuelle Instanzvorlage und gegebenenfalls die zustandsorientierte Konfiguration verwenden. Wenn Sie alle VMs in einer verwalteten Instanzgruppe neu erstellen müssen, starten Sie stattdessen ein Rolling Update.

Wenn die Gruppe Teil eines Back-End-Dienstes ist, für den der Verbindungsausgleich aktiviert ist, kann es nach Ablauf des Verbindungsausgleichs bis zu 60 Sekunden dauern, bis die VM-Instanz entfernt oder gelöscht wird.

Verwenden Sie zum Neuerstellen bestimmter Instanzen in der verwalteten Instanzgruppe das gcloud-Tool oder die API.

gcloud

Führen Sie den Befehl instance-groups managed recreate-instances aus.

gcloud compute instance-groups managed recreate-instances INSTANCE_GROUP_NAME \
    --instances INSTANCE_NAME_1,INSTANCE_NAME_2 \
    [--region REGION | --zone ZONE]

API

Führen Sie in der API eine POST-Anfrage für die Methode regionInstanceGroupManagers.recreateInstances aus. Verwenden Sie für eine zonal verwaltete Instanzgruppe die Methode instanceGroupManagers.recreateInstances.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/recreateInstances

{
 "instances": [
  "zones/ZONE/instances/INSTANCE_NAME_1",
  "zones/ZONE/instances/INSTANCE_NAME_2"
 ]
}

Nach einer Anfrage zum Neuerstellen von VM-Instanzen in einer verwalteten Instanzgruppe werden die neuen VMs gestartet, sobald das System sie bereitstellen kann. Je nachdem, wie viele Instanzen Sie neu erstellen lassen, kann dies einige Zeit dauern. Überprüfen Sie den Status der Gruppe oder überprüfen Sie den Status der verwalteten Instanzen.

Informationen zu Instanzen in einer MIG abrufen

Mehr dazu finden Sie unter Informationen zu den verwalteten Instanzen in einer MIG abrufen.

Zustandsorientierte Instanzen in einer MIG konfigurieren

Weitere Informationen finden Sie unter Zustandsorientierte MIGs konfigurieren.

Nächste Schritte