Neue VM-Konfigurationen in einer MIG anwenden


Auf dieser Seite wird erläutert, wie Sie VM-Instanzen in einer verwalteten Instanzgruppe (Managed Instance Group, MIG) konfigurieren und welche Methoden Sie verwenden können, um die Konfiguration auf die vorhandenen VMs in der Gruppe anzuwenden.

Sie geben die gewünschte Konfiguration für die VMs in einer MIG mit den folgenden VM-Konfigurationskomponenten an:

  • Erforderlich: Instanzvorlage
  • Optional: Konfiguration aller Instanzen
  • Optional: Zustandsorientierte Konfiguration

Wenn Sie die beabsichtigte Konfiguration mithilfe dieser Komponenten aktualisieren, wendet Compute Engine die aktualisierte Konfiguration automatisch auf neue VMs an, die der Gruppe hinzugefügt werden.

Verwenden Sie die auf dieser Seite beschriebenen Methoden, um eine aktualisierte Konfiguration auf vorhandene VMs anzuwenden:

  • Automatische Rollouts mit einem Unterbrechungsbudget und optionalen Canary-Updates neuer Vorlagen
  • Selektive, manuelle Aktualisierungen nur auf bestimmte VMs, um Unterbrechungen zu minimieren
  • Bestimmte VMs neu erstellen

Sie können Ihre MIG auch so konfigurieren, dass die neueste verfügbare Konfiguration auf VMs während VM-Reparatur angewendet wird. Weitere Informationen finden Sie unter Konfigurationsupdates während der Reparatur anwenden.

Wenn Sie nur die Größe einer MIG ändern müssen, lesen Sie die Dokumentation zum Hinzufügen oder Entfernen von VMs in einer MIG. Weitere Informationen zum Konfigurieren von MIG-Features finden Sie in den Dokumenten zu Autoscaling, automatischer Reparatur und Load-Balancing und zustandsorientierte Arbeitslasten.

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 wie folgt bei Compute Engine authentifizieren.

    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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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.

Konfigurationskomponenten für VMs in einer MIG

Sie konfigurieren die VMs in einer MIG mit den folgenden Komponenten:

KomponenteEigenschaftenAnwendungsfall
Instanzvorlage Maschinentyp, Image des Bootlaufwerks, Labels, Startskript und andere VM-Attribute Erforderlich: Verwenden Sie eine Instanzvorlage, um die erforderlichen und optionalen Instanzattribute für alle VMs in der Gruppe zu definieren.

Optional: Wenn Sie einen zweiten VM-Konfiguration testen möchten, können Sie der Gruppe eine zweite Instanzvorlage hinzufügen und diese auf eine Teilmenge der VMs in der Gruppe anwenden.
Konfiguration aller Instanzen Labels und Metadaten Optional: Verwenden Sie eine instanzspezifische Konfiguration, um die Instanzvorlagenattribute für alle VMs in der Gruppe schnell zu überschreiben.
Zustandsorientierte Konfiguration Zustandsorientierte Laufwerke, IP-Adressen und Metadaten Optional: Wenn Sie eine zustandsorientierte Arbeitslast unterstützen müssen, fügen Sie den VMs in der Gruppe eine zustandsorientierte Konfiguration hinzu.

Wenn Sie eine Konfiguration für die Gruppe über diese Komponenten aktualisieren, müssen Sie die aktualisierte Konfiguration auf vorhandene VMs in der Gruppe anwenden, um die aktualisierte Konfiguration wirksam zu machen.

Methoden zum Anwenden einer neuen Konfiguration auf vorhandene VMs

Nachdem Sie die VM-Konfiguration einer MIG aktualisiert haben, können Sie die neue Konfiguration mit den folgenden Methoden auf vorhandene VMs in der Gruppe anwenden:

  • Automatisch (proaktiv): Verwenden Sie diese Methode, wenn die MIG neue Konfigurationen automatisch auf alle oder einen Teil der vorhandenen VMs in der Gruppe anwenden soll. Das Maß der Unterbrechung der Ausführung von VMs hängt von der konfigurierten Aktualisierungsrichtlinie ab. Sie können mit dieser Methode neue Instanzvorlagen aktualisieren. Setzen Sie den Aktualisierungstyp der MIG auf „proaktiv“, um diese Methode zu verwenden.
  • Selektiv (opportunistisch): Verwenden Sie diese Methode, wenn Sie die Aktualisierung manuell anwenden oder alle vorhandenen VMs in der Gruppe gleichzeitig aktualisieren möchten. Sie wählen eine oder alle VMs aus, die auf die neueste Konfiguration aktualisiert werden sollen. Setzen Sie den Aktualisierungstyp der MIG auf „opportunistisch“, um diese Methode zu verwenden.
  • Neuerstellung von VMs: Wenden Sie neue Konfigurationen an, indem Sie bestimmte VMs neu erstellen.

Weitere Informationen zum Festlegen des Updatetyps einer MIG finden Sie unter Proaktive oder opportunistische Aktualisierung einrichten.

Automatisch (proaktiv)

Der Typ des automatischen Updates wird auch als proaktiver Updatetyp bezeichnet. Wenn Sie den Updatetyp der MIG auf „Proaktiv” setzen, wendet die MIG bei Bedarf automatisch aktualisierte Konfigurationen auf VMs an.

Das Festlegen des Updatetyps der MIG auf proaktiv bietet zwei Hauptvorteile:

  • Der Rollout eines Updates erfolgt automatisch nach Ihren Vorgaben, ohne dass nach der anfänglichen Anfrage zusätzliche Eingaben erforderlich sind. Sie können die Geschwindigkeit der Bereitstellung, den Umfang des Dienstes und den Umfang der Aktualisierung angeben.
  • Sie können partielle Einführungen automatisieren, die Canary-Tests ermöglichen.

Informationen zum Festlegen des Updatetyps der MIG finden Sie unter Proaktive oder opportunistische Aktualisierung einrichten.

Weitere Informationen zu automatischen Rollouts finden Sie unter Aktualisierungen der VM-Konfiguration in einer MIG automatisch anwenden.

Selektiv (opportunistisch)

Ein selektiver Updatetyp wird auch als opportunistischer Aktualisierungstyp bezeichnet. Wenn Sie den Updatetyp der MIG auf „opportunistisch” einstellen, wendet die MIG neue Konfigurationen nur dann auf vorhandene VMs an, wenn Sie bestimmte VMs, die aktualisiert werden sollen, selektiv auswählen.

Das Festlegen des Updatetyps der MIG auf opportunistisch bietet folgende Vorteile:

  • Sie können die VMs auswählen, die Sie aktualisieren möchten.
  • Sie können den Zeitpunkt und die Reihenfolge der Aktualisierungen steuern.
  • Sie können die gcloud CLI oder REST verwenden, um alle Instanzen sofort zu aktualisieren.

In bestimmten Fällen ist ein selektiver Aktualisierungstyp nützlich, um die Stabilität des Systems nicht unnötig zu gefährden. Es könnten beispielsweise folgende Szenarien vorliegen:

  • Eine der VMs in Ihrer MIG ist ausgefallen und muss repariert werden. Sie möchten jedoch nicht, dass sich die Konfiguration ändert. Wenn Sie den Updatetyp der MIG auf „opportunistisch“ setzen und Aktualisierungen während der Reparatur nicht erzwungen haben, repariert Compute Engine die VM mit derselben Konfiguration wie zum Erstellen dieser VM, auch wenn die ursprüngliche Instanzvorlage nicht mehr vorhanden ist.

  • Sie haben eine automatisch skalierte MIG und möchten ein nicht kritisches Update ohne dringende Aktualisierung anwenden. Setzen Sie den Aktualisierungstyp der MIG auf „Opportunistisch“, um sicherzustellen, dass Compute Engine Ihre vorhandenen VMs nicht entfernt, um das Update anzuwenden. Beim Herunterskalieren werden beim Autoscaling VMs mit der alten Konfiguration bevorzugt. Wenn die Gruppe horizontal skaliert wird, erstellt sie VMs mit der neuesten Konfiguration.

Informationen zum Festlegen des Updatetyps der MIG finden Sie unter Proaktive oder opportunistische Aktualisierung einrichten.

Weitere Informationen zur selektiven Aktualisierung von VMs finden Sie unter Aktualisierungen der VM-Konfiguration in einer MIG selektiv anwenden.

VMs neu erstellen

Sie können jede VM in einer MIG neu erstellen. In diesem Fall wendet die MIG jede aktualisierte Konfiguration an, die noch nicht auf diese VM angewendet wurde. Weitere Informationen finden Sie unter VMs in einer MIG neu erstellen.

Proaktive oder opportunistische Aktualisierung einrichten

Wenn Sie neue Konfigurationen automatisch auf vorhandene VMs anwenden möchten, setzen Sie den Aktualisierungstyp der MIG auf „proaktiv“. Wenn Sie neue Konfigurationen nur auf vorhandene VMs anwenden möchten, wenn Sie eine zu aktualisierende VM auswählen, legen Sie den Aktualisierungstyp der MIG auf „opportunistisch” fest.

Verwenden Sie die Google Cloud Console, die Google Cloud CLI oder REST.

Console

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

    Zur Seite Instanzgruppen

  2. Wählen Sie die MIG aus, die Sie aktualisieren möchten.

  3. Klicken Sie oben auf der Seite auf VMs aktualisieren.

  4. Wählen Sie zum Festlegen einer anderen Vorlage für die Gruppe unter Neue Vorlage die zu verwendende Instanzvorlage aus.

  5. Wählen Sie unter Konfiguration aktualisieren entweder die automatische oder die selektive Aktualisierung aus.

gcloud

Verwenden Sie den Befehl rolling-action start-update und setzen Sie das Flag --type auf opportunistic oder proactive.

gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \
    --version=template=NEW_TEMPLATE \
    --type=TYPE

Sie können auch den Betabefehl update verwenden und das Flag --update-policy-type einfügen.

gcloud beta compute instance-groups managed update INSTANCE_GROUP_NAME \
    --update-policy-type=TYPE

Dabei gilt:

  • INSTANCE_GROUP_NAME ist der Name der Gruppe
  • NEW_TEMPLATE: Name der neuen Vorlage für die Gruppe
  • TYPE: Art der Aktualisierung, opportunistic oder proactive

REST

Rufen Sie die Methode patch auf einer zonalen oder regionalen MIG-Ressource auf.

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

{
  "updatePolicy": {
    "type": "TYPE" # Choose an opportunistic or proactive update
  },
  "versions": [{
    "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE",
    }]
}

Dabei gilt:

  • PROJECT_ID: das Projekt, in dem die MIG vorhanden ist.
  • REGION: Region, in der sich die MIG befindet Ersetzen Sie bei einer zonalen MIG regions/REGION durch zones/ZONE.
  • INSTANCE_GROUP_NAME: ist der Name der Gruppe.
  • NEW_TEMPLATE: Name der neuen Vorlage für die Gruppe.
  • TYPE: Art der Aktualisierung, OPPORTUNISTIC oder PROACTIVE.

Weitere Informationen zum Festlegen einer neuen Vorlage und zum Anwenden dieser Vorlage auf neue und vorhandene VMs in einer MIG finden Sie auf den folgenden Seiten:

Aktualisierungsrichtlinientyp der Gruppe prüfen

Sie können den aktuell konfigurierten Aktualisierungsrichtlinientyp Ihrer MIG („opportunistisch” oder „proaktiv”) und andere Aktualisierungsrichtlinieneinstellungen mit der gcloud CLI oder REST aufrufen.

gcloud

Verwenden Sie den Befehl describe und fügen Sie das Flag --format ein, um nur die Einstellungen updatePolicy aufzulisten.

gcloud beta compute instance-groups managed describe INSTANCE_GROUP_NAME \
    --format="(updatePolicy)"

REST

Senden Sie eine GET-Anfrage an eine zonale oder regionale MIG und prüfen Sie das Feld updatePolicy.

GET https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME

Informationen zum Ändern des Richtlinientyps finden Sie unter Proaktive oder opportunistische Aktualisierung einrichten.

Updates für angehaltene und beendete VMs

Wenn Sie Pools von VMs in einer MIG angehalten und beendet haben, können Sie angehaltene oder beendete VMs selektiv (wie andere laufende VMs) aktualisieren. Wenn Sie automatische (proaktive) Updates konfigurieren, aktualisiert die MIG die VMs in der folgenden Reihenfolge:

  1. Ausgeführte, angehaltene und angehaltene VMs
  2. VMs mit dem Status SUSPENDING oder STOPPING

Bei einer automatischen Aktualisierung berechnet die MIG die maximale Surge und die maximal verfügbare Verfügbarkeit nur basierend auf der Zielanzahl der ausgeführten VMs und zieht die VMs im Standby-Pool nicht in Betracht.

Wenn für die automatische Aktualisierung VMs in der Gruppe ersetzt werden müssen, führt die MIG Folgendes aus:

  1. Löscht die angehaltenen und beendeten VMs.
  2. Erstellt neue VMs mit der neuen Instanzvorlage.
  3. Führt den Initialisierungsprozess aus.
  4. Hält die VMs an oder beendet sie.

Wenn für die automatische Aktualisierung nur das Aktualisieren oder Neustarten von VMs in der Gruppe erforderlich ist, führt die MIG Folgendes aus:

  1. Setzt die VMs fort oder startet sie.
  2. Führt die Aktualisierung der VMs durch, wenn sie ausgeführt werden.
  3. Führt den Initialisierungsprozess aus.
  4. Hält die VMs an oder beendet sie.

Canary Updates

Wenn Sie Canary Updates in einer MIG initiieren möchten, die angehaltene oder beendete VMs hat, gilt Folgendes:

  • Im Standby-Richtlinienmodus manual aktualisiert die MIG nur die ausgeführten VMs basierend auf der Anzahl oder dem Prozentsatz der VMs, auf die das Update angewendet werden soll. Die angehaltenen und angehaltenen VMs bleiben in den vorherigen Versionen.
  • Im Standby-Richtlinienmodus scale-out-pool können Sie kein Canary Update in der MIG initiieren.

Beziehung zwischen den Feldern versions und instanceTemplate

Wenn Sie REST verwenden, empfehlen wir die Verwendung der Felder instanceGroupManagers.versions und regionInstanceGroupManagers.versions zum Konfigurieren von Instanzvorlagen für zonale und regionale MIGs.

Die Funktionalität des Legacy-Feldes instanceTemplate überschneidet sich mit dem Feld versions, da Sie mit beiden Feldern angeben können, welche Instanzvorlage die MIG verwendet, um VMs zu erstellen. Sie können jedoch nur mit dem Feld versionseine erweiterte (Canary-)Konfiguration mit zwei Vorlagen definieren.

Aus Gründen der Abwärtskompatibilität unterstützen MIGs auch weiterhin das Festlegen des übergeordneten Feldes instanceTemplate. Wir empfehlen jedoch, nur das Feld versions zu verwenden. Die gleichzeitige Verwendung des übergeordneten Feldes instanceTemplate und des Feldes versions kann zu Unklarheiten und Verwirrung führen.

Wenn Sie beim Aufrufen der Methoden update() und patch() sowohl das Feld instanceTemplate als auch das Feld versions angeben, gibt es drei mögliche Ergebnisse:

  • Sie legen für beide Felder den gleichen Wert fest.

    Das ist eine gültige Anfrage. In diesem Fall entsteht keine Mehrdeutigkeit und die neue Instanzvorlage wird auf die MIG angewendet.

    In der folgenden Anfrage geben beispielsweise die oberste Ebene instanceTemplate und das Feld versions die gleiche Instanzvorlage an, die sich von der vorhandenen aktuellen Vorlage unterscheidet, sodass die MIG auf die neue Instanzvorlage aktualisiert wird:

    {
     "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE",
     "versions": [
      {
       "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE"
      }
     ],
     "updatePolicy": {
       "type": "PROACTIVE"
     }
    }
    
  • Sie legen für beide Felder Werte fest, die nicht übereinstimmen, aber nur ein Wert weicht von der aktuellen Instanzvorlage in der MIG ab.

    Das ist eine gültige Anfrage. Das Feld, das von der aktuellen Einstellung abweicht, wird als der gewünschte Wert angewendet. Beispiel: Sie rufen die Methode update() und geben beide Felder, aber nur ein Feld wird aktualisiert:

    {
     "instanceTemplate": "global/instanceTemplates/CURRENT_TEMPLATE",
     "versions": [
      {
       "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE"
      }
     ],
     "updatePolicy": {
       "type": "PROACTIVE"
     }
    }
    
  • Sie legen für beide Felder Werte fest, die nicht übereinstimmen, und beide Werte unterscheiden sich von der aktuellen Instanzvorlage in der MIG.

    Diese Einstellung ist ungültig und gibt einen Fehler zurück, da kein eindeutiger Intent erkennbar ist.

    {
     "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE",
     "versions": [
      {
       "instanceTemplate": "global/instanceTemplates/A_DIFFERENT_NEW_TEMPLATE"
      }
     ],
     "updatePolicy": {
       "type": "PROACTIVE"
     }
    }
    

Die Felder versions und instanceTemplate sowie die Methode get()

Wenn Sie nur eine Instanzvorlage angeben, entweder über das übergeordnete Feld instanceTemplate oder über das Feld versions oder über beide, gibt die Methode get() in ihrer Antwort beide Felder zurück. Dadurch wird das neue Feld versions abwärtskompatibel. Solange Sie nur eine Instanzvorlage in einem dieser Felder angeben, ändert sich an der Rückgabe der Methode get() im Feld instanceTemplate nichts.

Enthält das Feld versions dagegen zwei Instanzvorlagen, gibt die Methode get() ein leeres übergeordnetes Feld instanceTemplate zurück. Da es nicht möglich ist, im übergeordneten Feld instanceTemplate eine Canary-Konfiguration mit zwei Instanzvorlagen unmissverständlich anzugeben, wird es bei Canary Updates nicht verwendet.

Das Feld versions und die Methode setInstanceTemplate()

Aus Gründen der Abwärtskompatibilität funktioniert die Methode setInstanceTemplate() wie zuvor, sodass Sie die von der MIG verwendete Vorlage ändern können, um VMs zu erstellen. Wenn Sie diese Methode aufrufen, wird das Feld versions mit der Instanzvorlage überschrieben, die durch die Methode setInstanceTemplate() angegeben wird.

Die Methode setInstanceTemplate() legt auch die updatePolicy auf OPPORTUNISTIC fest. Dadurch wird verhindert, dass die MIG aktiv eine Instanzvorlage bereitstellt, die nicht explizit im Feld versions angegeben ist.

Nächste Schritte