In diesem Dokument wird beschrieben, wie Sie Konfigurationsaktualisierungen automatisch auf die VM-Instanzen in einer verwalteten Instanzgruppe (Managed Instance Group, MIG) anwenden.
Compute Engine verwaltet die VMs in einer MIG anhand der von Ihnen verwendeten Konfigurationskomponenten: Instanzvorlage, optionale Instanzkonfiguration und optionale zustandsorientierte Konfiguration.
Wenn Sie die VM-Konfiguration einer MIG durch Ändern dieser Komponenten aktualisieren, wendet Compute Engine die aktualisierte Konfiguration automatisch auf neue VMs an, die der Gruppe hinzugefügt werden.
Sie können eine automatische Aktualisierung (auch als proaktiver Aktualisierungstyp bezeichnet) einrichten, um eine aktualisierte Konfiguration auf vorhandene VMs anzuwenden. Die MIG führt Konfigurationsaktualisierungen automatisch für alle oder einen Teil der VMs der Gruppe aus. Sie können die Geschwindigkeit der Bereitstellung, die Unterbrechungsmaß Ihres Dienstes und, mithilfe eines Canary-Updates, die Anzahl der Instanzen, die die MIG mit der neuen Konfiguration aktualisiert, steuern. Nachdem Sie die neue Konfiguration angegeben haben, müssen Sie keine zusätzliche Eingabe machen und die Aktualisierung wird von selbst abgeschlossen.
Wenn Sie eine neue Konfiguration nur selektiv auf neue oder bestimmte Instanzen in einer MIG anwenden möchten, finden Sie weitere Informationen unter Aktualisierungen der VM-Konfiguration in einer MIG selektiv anwenden. Weitere Informationen finden Sie unter Methoden zum Anwenden einer neuen Konfiguration auf vorhandene VMs.
Hinweise
- Wenn Sie eine zustandsorientierte MIG aktualisieren, lesen Sie den Abschnitt Zustandsorientierte Konfiguration in MIGs anwenden, aufrufen und entfernen.
-
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. Zum Ausführen von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so 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
-
Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
gcloud initWenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
- Set a default region and zone.
REST
Wenn Sie die REST API-Beispiele auf dieser Seite in einer lokalen Entwicklungsumgebung verwenden möchten, verwenden Sie die Anmeldedaten, die Sie der gcloud CLI bereitstellen.
Installieren Sie die Google Cloud CLI. Initialisieren Sie die Google Cloud CLI nach der Installation mit dem folgenden Befehl:
gcloud initWenn Sie einen externen Identitätsanbieter (IdP) verwenden, müssen Sie sich zuerst mit Ihrer föderierten Identität in der gcloud CLI anmelden.
Weitere Informationen finden Sie in der Dokumentation zur Google Cloud -Authentifizierung unter Für die Verwendung von REST authentifizieren.
Beschränkungen
- Wenn Sie eine zustandsorientierte MIG haben und automatisierte Rolling Updates verwenden möchten, müssen Sie die Instanznamen beibehalten, wenn Sie Instanzen ersetzen, oder entsprechend die Ersatzmethode auf
RECREATEsetzen.
Grundlegendes Rolling Update starten
Ein Basic-Rolling Update ist ein Update, das nach und nach auf alle Instanzen in einer MIG angewendet wird, bis alle Instanzen auf die neueste beabsichtigte Konfiguration aktualisiert wurden. Beim Rolling Update werden automatisch Instanzen übersprungen, die bereits die aktuellste Konfiguration haben.
Sie können verschiedene Aspekte eines Rolling Updates steuern, beispielsweise wie viele Instanzen für die Aktualisierung offline gehen, wie lange zwischen dem Aktualisieren der einzelnen Instanzen gewartet wird, ob die neue Vorlage alle oder nur einen Teil der Instanzen betrifft usw.
Das sollten Sie bei einem Rolling Update bedenken:
Die Updates sind zuerst nur geplant. Wenn Sie eine Updateanfrage stellen, gibt die Compute Engine API eine erfolgreiche Antwort zurück, um die Gültigkeit der Anfrage zu bestätigen. Das bedeutet jedoch nicht, dass das Update erfolgreich war. Sie müssen den Status der Gruppe prüfen, um herauszufinden, ob das Update erfolgreich bereitgestellt wurde.
Die Instance Group Updater API ist eine deklarative API. Die API erwartet eine Anfrage, die angibt, wie die gewünschte Konfiguration der verwalteten Instanzgruppe nach dem Update aussehen soll; sie erwartet keinen Funktionsaufruf.
Automatisierte Updates unterstützen bis zu zwei Instanzvorlagenversionen in Ihrer MIG. Sie können also zwei unterschiedliche Instanzvorlagenversionen für Ihre Gruppe angeben, was für Canary Updates hilfreich ist.
Wählen Sie eine der folgenden Optionen aus, um ein Basic-Rolling Update zu starten, das auf alle Instanzen in der Gruppe angewendet wird:
Console
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Wählen Sie die MIG aus, die Sie aktualisieren möchten.
Klicken Sie auf Bearbeiten.
Klicken Sie auf Instanzvorlage und Überschreibungen, um den Bereich zu maximieren, und fügen Sie eine Vorlage zum Testen hinzu:
- Klicken Sie auf Vorlage zum Testen hinzufügen.
- Wählen Sie in der Liste Instanzvorlage für Tests eine neue Vorlage aus.
Wenn die Vorlage, die Sie testen möchten, nicht verfügbar ist, wählen Sie die Option Neue Instanzvorlage erstellen aus und folgen Sie der Anleitung, um eine Vorlage zu erstellen.
- Geben Sie im Feld Ziel wird ausgeführt die Anzahl oder den Prozentsatz der Instanzen ein, auf die Sie die neue Vorlage anwenden möchten.
- Wählen Sie im Feld Instanzen oder Prozentsatz entweder Instanzen oder Prozent aus, um die Zahl anzugeben, die Sie im Feld Zielvorlauf eingegeben haben.
Klicken Sie auf Richtlinie aktualisieren, um den Bereich zu maximieren, und gehen Sie so vor:
- Wählen Sie Automatisch aus, falls das nicht bereits ausgewählt ist.
- Übernehmen Sie für die anderen Optionen die Standardwerte oder ändern Sie sie nach Bedarf.
Klicken Sie auf Speichern, um das Update zu starten.
gcloud
Führen Sie den Befehl
rolling-action start-updateaus.gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=INSTANCE_TEMPLATE_URL [--zone=ZONE | --region=REGION]Dabei gilt:
INSTANCE_GROUP_NAME: Name der MIG.INSTANCE_TEMPLATE_URL: Die URL der Instanzvorlage, die Sie zum Erstellen von VMs in der MIG verwenden möchten. Die URL kann entweder die ID oder den Namen der Instanzvorlage enthalten. Geben Sie einen der folgenden Werte an:- Für eine regionale Instanzvorlage:
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Für eine globale Instanzvorlage:
INSTANCE_TEMPLATE_ID
- Für eine regionale Instanzvorlage:
ZONE: Geben Sie bei zonalen MIGs die Zone an.REGION: Geben Sie bei regionalen MIGs die Region an.
REST
Rufen Sie die Methode
patchfür eine regionale oder zonale MIG-Ressource auf.Die folgende Anfrage zeigt beispielsweise bei einer regionalen MIG die Mindestkonfiguration an, die erforderlich ist, um alle Instanzen automatisch auf die neue Instanzvorlage zu aktualisieren.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", "updatePolicy": { "type": "PROACTIVE" } }Nachdem Sie die Anfrage gestellt haben, können Sie das Update überwachen, damit Sie wissen, wann die Aktualisierung beendet ist.
Fügen Sie für erweiterte Konfigurationen weitere Aktualisierungsoptionen hinzu. Wenn Sie nichts anderes angeben, werden die Optionen
maxSurgeundmaxUnavailablestandardmäßig auf1gesetzt, multipliziert mit der Anzahl der betroffenen Zonen. Das bedeutet, dass während der Aktualisierung immer nur eine Instanz in jeder betroffenen Zone offline geht und die MIG nur eine zusätzliche Instanz pro Zone erstellt.Optionen für das Update konfigurieren
Für komplexere Updates können Sie wie in den folgenden Abschnitten beschrieben weitere Optionen konfigurieren.
Typ aktualisieren
Verwaltete Instanzgruppen unterstützen zwei Arten von Aktualisierungsmodus:
- Automatische (proaktive) Aktualisierungen
- Selektive (opportunistische) Aktualisierungen
Wenn Sie Aktualisierungen automatisch anwenden möchten, wählen Sie den Modus proaktiv aus.
Wenn eine automatische Aktualisierung potenziell zu störend ist, können Sie auch eine opportunistische Aktualisierung vornehmen. Die MIG wendet eine opportunistische Aktualisierung nur an, wenn Sie die Aktualisierung für ausgewählte Instanzen manuell starten oder wenn neue Instanzen erstellt werden. Neue Instanzen können erstellt werden, wenn Sie oder ein anderer Dienst, z. B. Autoscaling, die Größe der MIG anpassen. Compute Engine startet keine aktiven Anfragen, um opportunistische Updates für vorhandene Instanzen anzuwenden.
Weitere Informationen zu automatischen und selektiven Updates finden Sie unter Methoden zum Anwenden einer neuen Konfiguration auf vorhandene VMs.
Maximaler Spitzenwert
Mit der Option
maxSurgekonfigurieren Sie, wie viele neue Instanzen die MIG bei einer automatischen Aktualisierung oberhalb ihrertargetSizeerstellen kann. Wenn Sie beispielsweisemaxSurgeauf 5 festlegen, verwendet die MIG die neue Instanzvorlage, um bis zu fünf neue Instanzen über der Zielgröße zu erstellen. Durch einen höheren Wert fürmaxSurgekönnen Sie die Aktualisierung beschleunigen. Dabei werden Ihnen die zusätzlichen Instanzen gemäß derPreisliste für Compute Engine in Rechnung gestellt.Sie können entweder eine feste Anzahl angeben oder, falls die verwaltete Instanzgruppe mindestens 10 Instanzen umfasst, einen Prozentsatz. Wenn Sie einen Prozentsatz festlegen, rundet der Updater bei Bedarf die Anzahl von Instanzen auf.
Wenn Sie den Wert
maxSurgenicht festlegen, wird der Standardwert verwendet. Für zonale MIGs ist die Standardeinstellung fürmaxSurge1. Bei regionalen MIGs ist die Standardeinstellung die Anzahl der Zonen, die der Gruppe zugeordnet sind, also3.maxSurgefunktioniert nur, wenn Sie genügend Kontingente oder Ressourcen zur Unterstützung der zusätzlichen Ressourcen haben.Wenn für Ihr Update kein Ersetzen der VMs erforderlich ist, wird diese Option ignoriert. Sie können erzwingen, dass VMs während eines Updates ersetzt werden, indem Sie die Option Mindestaktion festlegen.
Maximal nicht verfügbar
Mit der Option
maxUnavailablekonfigurieren Sie, wie viele Instanzen während einer automatischen Aktualisierung nicht verfügbar sind. Wenn Sie beispielsweise fürmaxUnavailable5 festlegen, werden jeweils nur fünf Instanzen zur Aktualisierung offline genommen. Mit diesem Parameter können Sie steuern, wie stark Ihr Dienst durch das Update gestört wird und wie schnell die Aktualisierung bereitgestellt wird.Die Zahl beinhaltet auch Instanzen, die aus anderen Gründen nicht verfügbar sind. Wenn beispielsweise eine Gruppe gerade neu skaliert wird, sind Instanzen, die gerade erstellt werden, möglicherweise nicht verfügbar. Diese Instanzen werden auf die
maxUnavailable-Nummer angerechnet.Sie können eine feste Anzahl angeben oder, falls die verwaltete Instanzgruppe mindestens 10 Instanzen umfasst, einen Prozentsatz. Wenn Sie einen Prozentsatz festlegen, rundet der Updater bei Bedarf die Anzahl von Instanzen ab.
Wenn Sie während einer Aktualisierung keine nicht verfügbaren Maschinen angeben möchten, setzen Sie den Wert
maxUnavailableauf0und den WertmaxSurgeauf größer als 0. Mit diesen Einstellungen entfernt Compute Engine jede alte Maschine erst, wenn die neue Maschine erstellt ist und ausgeführt wird.Wenn Sie den Wert
maxUnavailablenicht festlegen, wird der Standardwert verwendet. Für zonale MIGs ist die Standardeinstellung1. Bei regionalen MIGs ist die Standardeinstellung die Anzahl der Zonen, die der Gruppe zugeordnet sind, also3.Mindestwartezeit
Mit der Option
minReadySeclegen Sie fest, wie lange gewartet wird, bis eine neue oder neu gestartete Instanz als aktualisiert gilt. Mit dieser Option können Sie die Geschwindigkeit steuern, mit der das automatische Update bereitgestellt wird. Der Timer startet, wenn die beiden folgenden Bedingungen erfüllt sind:- Der Status der Instanz ist
RUNNING. - Wenn die Systemdiagnose aktiviert ist, wird der Wert
HEALTHYzurückgegeben.
Damit die Systemdiagnose fehlerfrei ausgeführt wird, wartet der Updater auf die folgenden Bedingungen:
- Wartet auf den Zeitraum, der vom
autohealingPolicies.initialDelaySec-Wert der MIG angegeben wurde, damit die Systemdiagnose alsHEALTHYzurückgegeben wird. - Die durch
minReadySecfestgelegte Zeit.
Wenn die Systemdiagnose nicht innerhalb von
initialDelaySecden StatusHEALTHYzurückgibt, interpretiert der Updater die VM-Instanz als fehlerhaft und beendet die Aktualisierung möglicherweise. Während die VM-Instanz in den durchinitialDelaySecundminReadySecfestgelegten Zeiträumen geprüft wird, hat diecurrentActionder Instanz den StatusVERIFYING. Der zugrunde liegende VM-Instanzstatus bleibt jedochRUNNING.Wenn keine Systemdiagnosen für die Gruppe durchgeführt werden, startet der Timer, sobald die Instanz den Status
RUNNINGhat.Der Höchstwert für das Feld
minReadySecsind 3.600 Sekunden (1 Stunde).Das folgende Diagramm zeigt, wie sich die Optionen "Zielgröße", "Maximal nicht verfügbar", "Maximaler Spitzenwert" und "Mindestwartezeit" auf Ihre Instanzen auswirken. Weitere Informationen zur Zielgröße finden Sie unter Canary-Updates.
Mindestaktion
Verwenden Sie die Option „Mindestaktion“, um Unterbrechungen so weit wie möglich zu minimieren oder um eine umfangreichere Aktion als erforderlich anzuwenden. So muss Compute Engine zum Beispiel keine VM neu starten, um die Metadaten zu ändern. Wenn Ihre Anwendung Instanzmetadaten nur beim Neustart einer VM liest, können Sie die Mindestaktion auf Neustart festlegen, um Metadatenänderungen zu übernehmen.
Wenn ein Update eine umfassendere Aktion erfordert, als Sie mit diesem Flag festgelegt haben, führt Compute Engine die Aktion aus, die notwendig ist, um das Update auszuführen. Wenn Sie beispielsweise einen Neustart als Mindestaktion angeben, versucht der Updater, Instanzen neu zu starten, um das Update anzuwenden. Wenn Sie jedoch das Betriebssystem ändern, was nicht durch einen Neustart der Instanz möglich ist, ersetzt der Updater die VM-Instanzen der Gruppe durch neue.
Weitere Informationen und gültige Optionen finden Sie unter Unterbrechungsmaß während eines Rolling Updates steuern.
Umfangreichste erlaubte Aktion
Verwenden Sie die Option mit der umfangreichsten erlaubten Aktion, um ein Update zu verhindern, wenn es zu einer größeren Unterbrechung führen würde, als tragbar ist. Wenn ein Update aufgrund dieser Einstellung nicht abgeschlossen werden kann, schlägt die Aktualisierung fehl und Ihre VMs behalten ihre vorherige Konfiguration bei.
Weitere Informationen finden Sie unter Unterbrechungsmaß während eines Rolling Updates steuern.
Ersetzungsmethode
Wenn Sie eine MIG proaktiv aktualisieren, löscht die Gruppe standardmäßig Ihre VM-Instanzen und tauscht sie gegen neue Instanzen mit neuen Namen aus. Wenn Sie die Namen Ihrer VM-Instanzen beibehalten möchten, verwenden Sie die Option
replacementMethod.Das Beibehalten vorhandener Instanznamen kann nützlich sein, wenn Sie Anwendungen oder Systeme haben, die von der Verwendung bestimmter Instanznamen abhängig sind. Einige Anwendungen, z. B. Memcached, benötigen Instanznamen, da sie keinen Discovery-Dienst haben. Daher verliert die Anwendung bei jeder Änderung eines Instanznamens die Verbindung zu dieser bestimmten VM.
Damit Instanznamen beibehalten werden, legen Sie für die Ersetzungsmethode
RECREATEanstelle vonSUBSTITUTEfest, wenn Sie die MIG mit der gcloud CLI oder der Compute Engine API aktualisieren. Wenn Sie die MIG über die Google Cloud Console aktualisieren, klicken Sie alternativ das Kästchen Namen beim Ersetzen von VMs beibehalten an.Gültige Werte für
replacementMethodsind:SUBSTITUTE(Standard) Ersetzt VM-Instanzen während Aktualisierungen schneller, da neue VMs erstellt werden, bevor alte VMs heruntergefahren werden. Instanznamen werden jedoch nicht beibehalten, da die Namen noch von den alten Instanzen verwendet werden.RECREATE. Behält Instanznamen während einer Aktualisierung bei. Compute Engine gibt den Instanznamen frei, wenn die alte VM heruntergefahren wird. Anschließend erstellt Compute Engine eine neue Instanz mit diesem Namen. Für diesen Modus müssen Sie fürmaxSurgeden Wert0festlegen.
Weitere Informationen finden Sie unter Instanznamen beibehalten.
Weitere Aktualisierungsbeispiele
Hier sehen Sie einige Befehlszeilenbeispiele mit üblichen Konfigurationsoptionen:
Rolling Update aller VM-Instanzen mit bis zu fünf neuen Instanzen über der Zielgröße
gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ --max-surge=5 \ [--zone=ZONE | --region=REGION]Rolling Update mit maximal drei nicht verfügbaren Maschinen und einer Mindestwartezeit von 3 Minuten, ehe eine neue Instanz als verfügbar gekennzeichnet wird
gcloud beta compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ --min-ready=3m \ --max-unavailable=3 \ [--zone=ZONE | --region=REGION]Rolling Update aller VM-Instanzen mit bis zu 10 % neuer Instanzen über der Zielgröße
Wenn Sie beispielsweise 1.000 Instanzen haben und den folgenden Befehl ausführen, erstellt der Updater bis zu 100 Instanzen, bevor er Instanzen entfernt, die die alte Instanzvorlage ausführen.
gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ --max-surge=10% \ [--zone=ZONE | --region=REGION]Canary Updates
Ein Canary Update ist eine Aktualisierung, die auf eine Teilmenge von Instanzen in der Gruppe angewendet wird. Mit einem Canary Update können Sie neue Features oder Upgrades für eine zufällige Teilmenge von Instanzen testen, anstatt ein möglicherweise störendes Update für alle Instanzen zu veröffentlichen. Falls der Test nicht erfolgreich ist, müssen Sie nur die Teilmenge der Instanzen zurücksetzen und können so die Unterbrechung für Ihre Nutzer minimieren.
Ein Canary Update erfolgt genauso wie ein standardmäßiges Rolling Update, mit der Ausnahme, dass die Anzahl der Instanzen, die aktualisiert werden sollen, unter der Gesamtgröße der Instanzgruppe liegt. Wie bei einem standardmäßigen Rolling Update können Sie zusätzliche Optionen konfigurieren, um das Maß an Unterbrechung für Ihren Dienst zu steuern.
Canary Update starten
Geben Sie zum Starten eines Canary Updates bis zu zwei Instanzvorlagenversionen an. Dies sind normalerweise eine neue Instanzvorlage für das Canary Update und die aktuelle Instanzvorlage für die restlichen Instanzen. Sie können beispielsweise festlegen, dass 20 % Ihrer Instanzen anhand der Vorlage
NEW_INSTANCE_TEMPLATEerstellt werden, während die restlichen Instanzen weiterhin die VorlageOLD_INSTANCE_TEMPLATEverwenden. Mehr als zwei Instanzvorlagen gleichzeitig sind nicht möglich. DieNEW_INSTANCE_TEMPLATEkann entweder eine regionale Instanzvorlage aus derselben Region wie die Ihres MIG oder eine globale Instanzvorlage sein.Sie müssen immer eine Zielgröße (
targetSize) für die Canary-Version angeben. Ohne die Zielgröße für die Canary-Version können Sie kein Canary Update starten. Wenn Sie beispielsweise festlegen, dass 10 % der Instanzen für den Canary-Test verwendet werden sollen, bleiben die restlichen 90 % unberührt und nutzen weiter die aktuelle Instanzvorlage.Console
- Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
- Wählen Sie die verwaltete Instanzgruppe aus, die Sie aktualisieren möchten.
- Klicken Sie auf Bearbeiten.
- Klicken Sie auf Instanzvorlage und Überschreibungen, um den Bereich zu maximieren.
- Klicken Sie auf Vorlage zum Testen hinzufügen.
- Wählen Sie in der Liste Instanzvorlage für Tests eine neue Vorlage aus.
Wenn die Vorlage, die Sie testen möchten, nicht verfügbar ist, wählen Sie die Option Neue Instanzvorlage erstellen aus und folgen Sie der Anleitung, um eine Vorlage zu erstellen.
- Geben Sie im Feld Ziel wird ausgeführt die Anzahl oder den Prozentsatz der Instanzen ein, auf die Sie die neue Vorlage anwenden möchten.
- Wählen Sie im Feld Instanzen oder Prozentsatz entweder Instanzen oder Prozent aus, um die Zahl anzugeben, die Sie im Feld Zielvorlauf eingegeben haben.
- Optional: Wenn Sie andere Optionen für die Updates konfigurieren möchten, klicken Sie auf Update-Richtlinie, um den Abschnitt zu maximieren. Ändern Sie die Felder nach Bedarf.
- Klicken Sie auf Speichern, um das Update zu starten.
gcloud
Führen Sie den Befehl
rolling-action start-updateaus. Geben Sie sowohl die aktuelle Vorlage als auch die neue Vorlage an, um genau festzulegen, wie viele Instanzen die jeweilige Vorlage verwenden sollen:gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=CURRENT_INSTANCE_TEMPLATE \ --canary-version=template=NEW_TEMPLATE,target-size=SIZE \ [--zone=ZONE | --region=REGION]Dabei gilt:
INSTANCE_GROUP_NAMEist der Name der Instanzgruppe.CURRENT_INSTANCE_TEMPLATE: Die aktuelle Instanzvorlage, die von der Gruppe verwendet wird.NEW_TEMPLATEist die neue Vorlage, die Sie testen möchten.SIZEist die Anzahl oder der Prozentsatz der Instanzen, auf die dieses Update angewendet werden soll. Sie müssen das Attributtarget-sizefür die Vorlage--canary-versionfestlegen. Einen Prozentsatz können Sie nur einrichten, wenn die Instanzgruppe mindestens 10 Instanzen umfasst.ZONE: Geben Sie bei zonalen MIGs die Zone an.REGION: Geben Sie bei regionalen MIGs die Region an.
Mit dem folgenden Befehl wird ein Canary Update durchgeführt, bei dem
example-template-Bauf 10 % der Instanzen in der Gruppe angewendet wird:gcloud compute instance-groups managed rolling-action start-update example-mig \ --version=template=example-template-A \ --canary-version=template=example-template-B,target-size=10%REST
Rufen Sie die Methode
patchfür eine regionale oder zonale MIG-Ressource auf. Geben Sie im Anfragetext sowohl die aktuelle Instanzvorlage als auch die neue Instanzvorlage an, die Sie testen möchten. Beispiele:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE", "targetSize": { "[percent|fixed]": NUMBER|PERCENTAGE # Use `fixed` for a specific number of instances } }, { "instanceTemplate": "global/instanceTemplates/CURRENT_INSTANCE_TEMPLATE" } ] }Dabei gilt:
NEW_TEMPLATEist der Name der neuen Vorlage, die Sie testen möchten.NUMBER|PERCENTAGEist die Anzahl bzw. der Prozentsatz der Instanzen für das Canary Update. Einen Prozentsatz können Sie nur einrichten, wenn die Instanzgruppe mindestens 10 Instanzen umfasst. Geben Sie andernfalls eine feste Zahl an.CURRENT_INSTANCE_TEMPLATE: Die aktuelle Instanzvorlage, die von der Gruppe verwendet wird.
Weitere Optionen finden Sie unter Optionen für das Update konfigurieren.
Nachdem Sie die Anfrage gestellt haben, können Sie das Update überwachen, damit Sie wissen, wann die Aktualisierung beendet ist.
Rollforward für ein Canary Update durchführen
Nach einem Canary Update können Sie entscheiden, ob Sie die Aktualisierung für alle MIG vornehmen oder ein Rollback durchführen möchten.
Console
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
[Zu Instanzgruppen](https://console.cloud.google.com/compute/instanceGroups){: target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="body" track-metadata-end-goal="rollForwardCanaryUpdate" class="button button-primary"}
Wählen Sie die verwaltete Instanzgruppe aus, die Sie aktualisieren möchten.
Klicken Sie auf Bearbeiten.
Aktualisieren Sie für die Instanzvorlage, die Sie für den Test ausgewählt haben, den Wert Ziel wird ausgeführt der Testvorlage auf 100%, um die Testvorlage auf alle Instanzen anzuwenden.
Alternativ können Sie die ursprüngliche Vorlage durch die Testvorlage ersetzen und die Instanzvorlage für Tests löschen.
Klicken Sie auf Speichern, um das Update zu starten.
gcloud
Wenn Sie mit dem Canary Update zufrieden sind, führen Sie die Aktualisierung durch, indem Sie einen weiteren
rolling-action start-update-Befehl senden, aber nur das Flagversionfestlegen und das Flag--canary-versionweglassen.gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=NEW_TEMPLATE \ [--zone=ZONE | --region=REGION]REST
Rufen Sie die Methode
patchfür eine regionale oder zonale MIG-Ressource auf. Legen Sie im Anfragetext die neue Instanzvorlage alsversionfest und lassen Sie die vorherige Instanzvorlage weg. Lassen Sie die Zielgrößenspezifikation weg, um das Update auf 100 % der Instanzen anzuwenden. Beispiel:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE" # New instance template } ] }Updates im Blick behalten
Nachdem Sie das Update initiiert haben, kann es einige Zeit dauern, bis die neue Konfiguration für alle betroffenen Instanzen eingeführt ist. Sie können den Fortschritt einer Aktualisierung überwachen, indem Sie Folgendes prüfen:
- Prüfen Sie anhand des Gruppenstatus, ob alle VMs die Zielvorlagenversion erreicht haben.
- Prüfen Sie unter Aktuelle Aktionen für Instanzen, ob bestimmte VMs ihre Zielvorlagenversion erreicht haben.
- Informationen zu zustandsorientierten MIGs finden Sie auch unter Prüfen, ob instanzspezifische Konfigurationen angewendet wurden.
Gruppenstatus
Auf Gruppenebene fügt Compute Engine Werte in das schreibgeschützte Feld
statusein, das die FlagsversionTarget.isReachedundisStableenthält. Mit der gcloud CLI oder REST können Sie auf diese Flags zugreifen. Sie können auch die Google Cloud Console verwenden, um die Anzahl von bereits aktualisierten Instanzen und die Zielanzahl von zu aktualisierenden Instanzen aufzurufen.Console
Ein Rolling Update für eine Gruppe können Sie auf der Detailseite der Gruppe beobachten.
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
[Zu Instanzgruppen](https://console.cloud.google.com/compute/instanceGroups){: target="console" track-type="tasks" track-name="consoleLink" track-metadata-position="body" track-metadata-end-goal="monitorUpdates" class="button button-primary"}
Wählen Sie die verwaltete Instanzgruppe aus, die Sie beobachten möchten. Auf der Übersichtsseite der Gruppe sehen Sie die Vorlagen, die die einzelnen Instanzen verwenden.
Klicken Sie auf den Tab Details, um Einzelheiten anzuzeigen.
Im Bereich Instanzvorlage sehen Sie die aktuelle und die angestrebte Anzahl der Instanzen für jede Instanzvorlage.
Klicken Sie auf Parameter aktualisieren, um die Update-Einstellungen zu maximieren.
gcloud
Führen Sie den Befehl
describeaus.gcloud compute instance-groups managed describe INSTANCE_GROUP_NAME \ [--zone=ZONE | --region=REGION]Sie können auch den Befehl
gcloud compute instance-groups managed wait-untilmit dem Flag--version-target-reachedverwenden, um zu warten, bisstatus.versionTarget.isReachedfür die Gruppe auftruegesetzt ist:gcloud compute instance-groups managed wait-until INSTANCE_GROUP_NAME \ --version-target-reached \ [--zone=ZONE | --region=REGION]REST
Rufen Sie die Methode
getfür eine regionale oder zonale MIG-Ressource auf.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/get
Prüfen, ob die Einführung eines Updates abgeschlossen ist
Prüfen Sie, ob die Einführung einer Aktualisierung abgeschlossen ist. Prüfen Sie dazu den Wert des Feldes
status.versionTarget.isReachedder MIG:Wird
status.versionTarget.isReachedauftruegesetzt, bedeutet das, dass alle VM-Instanzen mithilfe der Zielversion erstellt wurden oder gerade erstellt werden.Wird
status.versionTarget.isReachedauffalsegesetzt, bedeutet das, dass mindestens eine VM noch nicht die Zielversion verwendet. Bei einem Canary Update weistfalseaußerdem darauf hin, dass die Anzahl der VMs, die eine Zielversion verwenden, nicht mit der Zielgröße übereinstimmt.
Prüfen, ob eine verwaltete Instanzgruppe stabil ist
Prüfen Sie, ob alle Instanzen in einer verwalteten Instanzgruppe ausgeführt werden und fehlerfrei sind, indem Sie den Wert des Feldesstatus.isStableder Gruppe prüfen.Wenn
status.isStableauffalsegesetzt ist, bedeutet das, dass Änderungen aktiv sind, ausstehen oder dass die MIG selbst geändert wird.Wenn
status.isStableauftruegesetzt ist, bedeutet das Folgendes:- Die Instanzen in der MIG werden nicht geändert und die
currentActionfür alle Instanzen istNONE. - Es gibt keine Änderungen bei Instanzen in der MIG.
- Die MIG selbst wird nicht geändert.
Beachten Sie, dass die Stabilität einer MIG von zahlreichen Faktoren abhängt, da eine MIG auf verschiedene Arten geändert werden kann. Beispiele:
- Sie stellen eine Anfrage, um eine neue Instanzvorlage bereitzustellen.
- Sie stellen eine Anfrage, um in der Gruppe Instanzen zu erstellen, zu löschen, deren Größe anzupassen oder sie zu aktualisieren.
- Durch das Autoscaling wird eine Anfrage gestellt, um die Größe der MIG zu ändern.
- Eine Ressource für die automatische Reparatur ersetzt in der MIG eine oder mehrere fehlerhafte Instanzen.
- In einer regionalen MIG werden einige der Instanzen neu verteilt.
Sobald alle Aktionen abgeschlossen sind, wird
status.isStablefür diese MIG wieder auftruegesetzt.Aktuelle Aktionen auf Instanzen
Verwenden Sie die Google Cloud CLI oder REST, um Details zu den Instanzen in einer verwalteten Instanzgruppe aufzurufen. Die Details enthalten den Instanzstatus und die aktuellen Aktionen, die die Gruppe auf ihren Instanzen ausführt.
gcloud
Alle verwalteten Instanzen
Prüfen Sie den Status und die aktuellen Aktionen für alle Instanzen in der Gruppe mit dem Befehl
list-instances.gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ [--zone=ZONE | --region=REGION]Der Befehl gibt eine Liste der Instanzen in der Gruppe zurück, einschließlich ihres Status, aktueller Aktionen und weiterer Details:
NAME: vm-instances-9pk4 ZONE: us-central1-f STATUS: HEALTH_STATE: ACTION: CREATING INSTANCE_TEMPLATE: my-new-template VERSION_NAME: LAST_ERROR: NAME: vm-instances-h2r1 ZONE: us-central1-f STATUS: STOPPING HEALTH_STATE: ACTION: DELETING INSTANCE_TEMPLATE: my-old-template VERSION_NAME: LAST_ERROR:
Die Spalte
HEALTH_STATEist leer, sofern Sie keine Systemdiagnose eingerichtet haben.Eine bestimmte verwaltete Instanz
Zum Prüfen des Status und der aktuellen Aktion für eine bestimmte Instanz in der Gruppe verwenden Sie den Befehl
describe-instance.gcloud compute instance-groups managed describe-instance INSTANCE_GROUP_NAME \ --instance INSTANCE_NAME \ [--zone=ZONE | --region=REGION]Der Befehl liefert Details zur Instanz, einschließlich des Instanzstatus, der aktuellen Aktion und (für zustandsorientierte MIGs) des beibehaltenen Status:
currentAction: NONE id: '6789072894767812345' instance: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/instances/example-mig-hz41 instanceStatus: RUNNING name: example-mig-hz41 preservedStateFromConfig: metadata: example-key: example-value preservedStateFromPolicy: disks: persistent-disk-0: autoDelete: NEVER mode: READ_WRITE source: https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-a/disks/example-mig-hz41 version: instanceTemplate: https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-templateREST
Rufen Sie die Methode
listManagedInstancesfür eine regionale oder zonale MIG-Ressource auf. Wenn Sie beispielsweise Details zu den Instanzen in einer zonalen MIG-Ressource abrufen möchten, können Sie die folgende Anfrage stellen:GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/listManagedInstances
Der Aufruf gibt eine Liste der Instanzen für die MIG zurück, einschließlich
instanceStatusundcurrentActionjeder Instanz.{ "managedInstances": [ { "instance": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/vm-instances-prvp", "instanceStatus": "RUNNING", "currentAction": "REFRESHING", "id": "5317605642920955957", "version": { instanceTemplate": "https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template" }, "name": "vm-instances-prvp" }, { "instance": "https://www.googleapis.com/compute/v1/projects/example-project/zones/us-central1-f/instances/vm-instances-w2t5", "instanceStatus": "RUNNING", "currentAction": "REFRESHING", "id": "2800161036826218547", "version": { "instanceTemplate": "https://www.googleapis.com/compute/v1/projects/example-project/global/instanceTemplates/example-template" }, "name": "vm-instances-w2t5" } ] }Wenn Sie die Systemdiagnose einrichten, enthält die Antwort auch das Feld
instanceHealth.Eine Liste der gültigen
instanceStatus-Feldwerte finden Sie unter Lebenszyklus von VM-Instanzen.Wenn an einer Instanz eine Änderung vorgenommen wird, setzt das verwaltete Feld der Instanz das Feld
currentActionauf eine der folgenden Aktionen, damit Sie den Fortschritt der Änderung verfolgen können. Andernfalls wird das FeldcurrentActionaufNONEgesetzt.Folgende
currentAction-Werte sind möglich:ABANDONING. Die Instanz wird gerade aus der MIG entfernt.CREATING: Die Instanz wird gerade erstellt.CREATING_WITHOUT_RETRIES. Die Instanz wird ohne Neuversuche erstellt. Wenn die Instanz beim ersten Versuch nicht erstellt wird, versucht die MIG nicht, die Instanz noch einmal zu ersetzen.DELETING: Die Instanz wird gerade gelöscht.RECREATING. Die Instanz wird gerade ersetzt.REFRESHING: Die Instanz wird aus den aktuellen Zielpools entfernt und anschließend zu den in der Liste enthaltenen Zielpools wieder hinzugefügt. Diese Liste kann mit den bestehenden Zielpools identisch sein oder davon abweichen.RESTARTING: Die Instanz wird gerade mit den Methodenstopundstartneu gestartet.RESUMING. Die Instanz wird gerade fortgesetzt, nach dem sie vorher gesperrt war.STARTING. Die Instanz wird gerade gestartet, nachdem sie vorher beendet wurde.STOPPING: Die Instanz wird beendet.SUSPENDING: Die Instanz wird angehalten.VERIFYING: Die Instanz wurde erstellt und wird gerade verifiziert.NONE: Für die Instanz werden gerade keine Aktionen durchgeführt.
Rollback für ein Update ausführen
Es gibt keinen eigenen Befehl, um für eine Aktualisierung ein Rollback durchzuführen und das System auf eine vorherige Version zurückzusetzen. Wenn Sie jedoch für ein Update (sei es ein vollständiges oder ein Canary Update) ein Rollback durchführen möchten, können Sie eine neue Aktualisierungsanfrage mit der Instanzvorlage stellen, auf die die Instanzen zurückgesetzt werden sollen.
gcloud
Der folgende gcloud CLI sorgt beispielsweise dafür, dass eine Aktualisierung so schnell wie möglich rückgängig gemacht wird: Ersetzen Sie dabei
OLD_INSTANCE_TEMPLATEdurch den Namen der Instanzvorlage, auf die die Instanzgruppe zurückgesetzt werden soll.gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version=template=OLD_INSTANCE_TEMPLATE \ --max-unavailable=100% \ [--zone=ZONE | --region=REGION]REST
Rufen Sie die Methode
patchfür eine regionale oder zonale MIG-Ressource auf.Geben Sie im Anfragetext die frühere Instanzvorlage als
versionan:PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "maxUnavailable": { "percent": 100 } }, "versions": [ { "instanceTemplate": "global/instanceTemplates/OLD_INSTANCE_TEMPLATE" # Old instance template } ] }Bei einer regionalen MIG mit weniger als 10 Instanzen müssen Sie einen festen Wert für
maxUnavailableverwenden und den Wert auf die Anzahl der Instanzen in der Gruppe festlegen.Der Updater behandelt eine Rollback-Anfrage wie eine normale Aktualisierungsanfrage, sodass Sie zusätzliche Optionen für die Aktualisierung angeben können.
Aktualisierung stoppen
Es gibt keine eigene Methode und keinen Befehl, um eine Aktualisierung anzuhalten. Sie können aber ein Update von proaktiv in opportunistisch ändern. Wenn die Größe der Gruppe nicht durch andere Dienste wie Autoscaling angepasst wird, bedeutet diese Änderung, dass die Aktualisierung stoppt.
Führen Sie den folgenden Befehl aus, um mit der gcloud CLI eine Aktualisierung von proaktiv in opportunistisch zu ändern:
gcloud compute instance-groups managed rolling-action stop-proactive-update INSTANCE_GROUP_NAME \ [--zone=ZONE | --region=REGION]So halten Sie die Aktualisierung vollständig an, nachdem Sie sie von proaktiv in opportunistisch umgewandelt haben:
Stellen Sie eine Anfrage, um festzustellen, wie viele Instanzen aktualisiert wurden.
gcloud compute instance-groups managed list-instances INSTANCE_GROUP_NAME \ [--zone=ZONE | --region=REGION]
Die gcloud CLI gibt eine Antwort zurück, die eine Liste der Instanzen in der Gruppe und ihren aktuellen Status enthält:
NAME ZONE STATUS HEALTH_STATE ACTION INSTANCE_TEMPLATE VERSION_NAME LAST_ERROR vm-instances-9pk4 us-central1-f RUNNING HEALTHY NONE example-new-template vm-instances-j1h8 us-central1-f RUNNING HEALTHY NONE example-old-template vm-instances-ngod us-central1-f STAGING UNKNOWN CREATING example-new-template
In diesem Beispiel wurden zwei Instanzen bereits aktualisiert.
Senden Sie als Nächstes eine Anfrage für eine neue Aktualisierung, geben Sie jedoch darin die Anzahl der bereits aktualisierten Instanzen als Zielgröße an:
gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --version template=OLD_INSTANCE_TEMPLATE \ --canary-version template=NEW_INSTANCE_TEMPLATE,target-size=2 \ [--zone=ZONE | --region=REGION]
Der Updater betrachtet dieses Update als abgeschlossen, sodass keine anderen Instanzen aktualisiert werden und das Update anhält.
Geschwindigkeit eines Rolling Updates steuern
Standardmäßig werden Aktualisierungen nach einer entsprechenden Anfrage so schnell wie möglich durchgeführt. Wenn Sie sich nicht sicher sind, ob Sie ein Update vollständig anwenden möchten, oder wenn Sie Änderungen vorsichtig testen möchten, können Sie die Geschwindigkeit des Updates mithilfe der folgenden Methoden steuern:
- Starten Sie statt einer vollständigen Aktualisierung ein Canary Update.
- Legen Sie einen hohen Wert für
minReadySecfest. Hiermit bestimmen Sie, wie viele Sekunden der Updater wartet, bevor er eine Instanz als erfolgreich aktualisiert betrachtet und mit der nächsten Instanz fortfährt. - Aktivieren Sie Systemdiagnosen, damit der Updater darauf wartet, dass Ihre Anwendung startet und meldet, dass sie fehlerfrei ist, bevor er die Instanz als erfolgreich aktualisiert betrachtet und mit der nächsten Instanz fortfährt.
- Legen Sie niedrige Werte für
maxUnavailableundmaxSurgefest. Damit sorgen Sie dafür, dass immer nur wenige Instanzen gleichzeitig aktualisiert werden. - Aktualisieren Sie Instanzen in einer MIG selektiv, anstatt sie automatisch zu aktualisieren.
Sie können die Aktualisierungsrate auch mit einer Kombination dieser Methoden steuern.
Unterbrechungsmaß während eines Rolling Updates steuern
Je nach Art der Aktualisierung kann diese sich negativ auf den Lebenszykluszustand einer Instanz auswirken. Beispiel: Wenn Sie das Bootlaufwerk einer Instanz ändern möchten, müssen Sie die Instanz ersetzen. Um das Maß der Unterbrechung während eines Rolling Updates zu steuern, legen Sie folgende Optionen fest:
Mindestaktion: Verwenden Sie diese Option, um Unterbrechungen so weit wie möglich zu minimieren oder um eine umfangreichere Aktion als erforderlich anzuwenden.
- Wenn Sie Unterbrechungen so weit wie möglich einschränken möchten, legen Sie die Mindestaktion auf
REFRESHfest. Wenn ein Update eine umfassendere Aktion erfordert, führt Compute Engine die Aktion aus, die notwendig ist, um das Update auszuführen. - Wenn Sie eine umfassendere Aktion anwenden möchten als notwendig, legen Sie die Mindestaktion auf
RESTARToderREPLACEfest. So muss Compute Engine zum Beispiel keine VM neu starten, um die Metadaten zu ändern. Wenn Ihre Anwendung Instanzmetadaten nur beim Neustart einer VM liest, können Sie die Mindestaktion aufRESTARTfestlegen, um Metadatenänderungen zu übernehmen.
- Wenn Sie Unterbrechungen so weit wie möglich einschränken möchten, legen Sie die Mindestaktion auf
Umfassendste erlaubte Aktion: Verwenden Sie diese Option, um ein Update zu verhindern, wenn dies zu einer längeren Unterbrechung führen würde, als tragbar ist. Wenn ein Update eine umfassendere Aktion erfordert, als die mit diesem Flag festgelegte, schlägt die Aktualisierungsanfrage fehl. Beispiel: Wenn Sie als umfassendste zulässige Aktion
RESTARTfestlegen, schlägt der Versuch, das Bootlaufwerk-Image zu aktualisieren, fehl. Dieses Update erfordert ein Ersetzen der Instanz, eine umfassendere Aktion als einen Neustart.
Beide Optionen akzeptieren die folgenden Werte:
Wert Beschreibung Welche Instanzattribute können aktualisiert werden? REFRESHDie Instanz wird nicht gestoppt. Zusätzliche Laufwerke, Instanzmetadaten, Labels, Tags RESTARTDie Instanz wird gestoppt und noch einmal gestartet. Zusätzliche Laufwerke, Instanzmetadaten, Labels, Tags, Maschinentyp REPLACE(Standardeinstellung.) Ersetzen der die Instanz gemäß der Option Ersetzungsmethode. Alle Instanzattribute, die in der Instanzvorlage oder der instanzspezifischen Konfiguration gespeichert sind Die umfangreichste erlaubte Aktion kann nicht weniger umfangreich sein als die Mindestaktion.
Wenn Sie Updates automatisch einführen, gelten die folgenden Standardeinstellungen:
- Standardmäßig ist die Mindestaktion
REPLACE. Wenn Sie unnötige Unterbrechungen vermeiden möchten, legen Sie für die Mindestaktion einen weniger hohen Wert fest. - Standardmäßig ist die umfassendste erlaubte Aktion
REPLACE. Wenn Sie eine solche Störung nicht tolerieren können, sollten Sie die umfassendste erlaubte Aktion auf einen weniger hohen Wert setzen.
Sie können das Standardverhalten ändern, indem Sie mit der Compute Engine API die Felder
updatePolicy.minimalActionundupdatePolicy.mostDisruptiveAllowedActionin der MIG-Ressource festlegen. Dazu rufen Sie beispielsweise die MethoderegionInstanceGroupManagers.patchauf. Alternativ können Sie die spezifischen für VM-Updates zulässige Aktionen auswählen, wenn Sie die MIG über die Google Cloud Console aktualisieren. Informationen zum Aufrufen der aktuellen Einstellungen finden Sie unter Attribute einer MIG abrufen.Ein Update schlägt fehl, wenn eine umfangreichere Aktion nötig ist, als Sie erlaubt haben. In diesem Fall können Sie die Aktualisierung mit einer umfangreicheren zulässigen Aktion wiederholen oder die Instanz selektiv aktualisieren. Compute Engine führt eine Best-Effort-Validierung durch, um zu prüfen, ob Instanzen mit dem angegebenen Unterbrechungslimit aktualisiert werden können. Aufgrund gleichzeitiger Änderungen im System kann sich die Situation jedoch nach dem Start der Aktualisierung ändern. Wenn ein Vorgang bei einer bestimmten Instanz fehlschlägt, listen Sie Instanzfehler auf, um den Fehler anzuzeigen.
Rollierenden Neustart oder rollierenden Austausch durchführen
Bei einem rollierenden Neustart werden alle Instanzen angehalten und neu gestartet. Bei einer rollierenden Ersetzung werden alle Instanzen gemäß der Option für die Ersetzungsmethode ersetzt. Ein rollierender Neustart oder eine rollierende Ersetzung kann aus folgenden Gründen sinnvoll sein:
- Beheben von Speicherlecks
- Neustart einer Anwendung, damit sie auf einer neuen virtuellen Maschine ausgeführt werden kann
- Wenden Sie eine regelmäßige Ersetzung als Best Practice zum Testen von Instanzen an.
- Aktualisieren des Betriebssystem-Images Ihrer Instanz oder erneute Ausführung von Startskripts zur Aktualisierung der Software
Wenn Sie einen rollierenden Neustart oder eine rollierende Ersetzung der Instanzen mit derGoogle Cloud Console oder der Google Cloud CLI durchführen, werden die folgenden zugrunde liegenden Aktionen in der MIG ausgeführt. Wenn Sie jedoch REST verwenden, müssen Sie diese Felder in der Anfrage festlegen, um einen Neustart oder einen Ersetzungsvorgang auszulösen.
- Wenn
updatePolicy.typegleichOPPORTUNISTICist, ändert die MIG den Typ inAUTOMATIC. - Die MIG aktualisiert die
versions.namejeder Instanz.
Wählen Sie eine der folgenden Optionen aus, um einen fortlaufenden Neustart oder Austausch durchzuführen:
Console
Rufen Sie in der Google Cloud Console die Seite Instanzgruppen auf.
Wählen Sie die verwaltete Instanzgruppe mit den VMs aus, die Sie neu starten oder ersetzen möchten.
Klicken Sie auf VMs neu starten/ersetzen.
Wählen Sie im Bereich Vorgang die Option Neustart oder Ersetzen aus.
- Wenn Sie Neustart auswählen, ändern Sie die folgenden Parameter oder verwenden Sie die Standardwerte:
- Wenn Sie Ersetzen auswählen, gehen Sie so vor:
- Wählen Sie aus, ob die Instanznamen beim Ersetzen von Instanzen beibehalten werden sollen.
- Geben Sie die folgenden Parameter an oder verwenden Sie die Standardwerte:
Klicken Sie zum Starten des Vorgangs auf VMs neu starten oder VMs ersetzen.
gcloud
Verwenden Sie den Befehl
restartoderreplace.Mit den folgenden Befehlen wird ein rollierender Neustart oder eine rollierende Ersetzung von Instanzen in einer zonalen MIG durchgeführt. Ersetzen Sie bei einer regionalen MIG das
--zone=ZONE-Flag durch--region=REGION.So starten Sie alle Instanzen in einer zonalen MIG nacheinander neu:
gcloud compute instance-groups managed rolling-action restart INSTANCE_GROUP_NAME \ --zone=ZONESo ersetzen Sie alle Instanzen in einer zonalen MIG nacheinander:
gcloud compute instance-groups managed rolling-action replace INSTANCE_GROUP_NAME \ --zone=ZONE
Diese Befehle lassen sich mit den Optionen für Aktualisierungen (z. B.
--max-surgeund--max-unavailable) zusätzlich anpassen.REST
Senden Sie eine
PATCH-Anfrage mit einer der folgenden Methoden:- Verwenden Sie für eine regionale MIG die Methode
regionInstanceGroupManagers.patch. - Verwenden Sie bei einer zonalen MIG die Methode
instanceGroupManagers.patch.
Im Anfragetext müssen Sie die folgenden Felder festlegen. Wenn Sie diese Felder nicht angeben, kann die Anfrage trotzdem erfolgreich sein, aber die MIG führt keinen Neustart oder Ersatzvorgang durch.
Setzen Sie das Feld
updatePolicy.minimalActionaufRESTARToderREPLACE.Legen Sie das Feld
versions.namefest. Geben Sie beispielsweise eine Versionsnummer mit einem Zeitstempel an:v2-ddmmyyhhmm.Legen Sie das Feld
versions.instanceTemplateauf die aktuelle Vorlagen-URL fest.
Wenn Sie alle Instanzen in einer zonalen MIG neu starten möchten, senden Sie die folgende Anfrage. Wenn Sie alle Instanzen ersetzen möchten, legen Sie im selben Antrag das Feld
minimialActionaufREPLACEfest.PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "minimalAction": "RESTART", "type": "PROACTIVE" }, "versions": [ { "instanceTemplate": "global/instanceTemplates/CURRENT_INSTANCE_TEMPLATE", "name": "v2-1705499403" } ] }Sie können die Anfrage mit den Optionen für Aktualisierungen (z. B.
maxSurgeundmaxUnavailable) zusätzlich anpassen.Nachdem Sie einen Neustart oder einen Ersetzungsvorgang abgeschlossen haben, können Sie die VMs der MIG auflisten und das Feld
versions.namejeder VM prüfen, um festzustellen, welche VMs neu gestartet oder ersetzt wurden.Weitere Beispiele für Ersetzung/Neustart
Rollierenden Neustart aller VMs, wobei immer zwei gleichzeitig neu gestartet werden
Durch diesen Befehl werden immer zwei VMs der Gruppe gleichzeitig neu gestartet. Hierbei wird keine neue Instanzvorlage angegeben.
gcloud compute instance-groups managed rolling-action restart INSTANCE_GROUP_NAME \ --max-unavailable=2 \ [--zone=ZONE | --region=REGION]Rollierenden Neustart aller VMs so schnell wie möglich ausführen
gcloud compute instance-groups managed rolling-action restart INSTANCE_GROUP_NAME \ --max-unavailable=100% \ [--zone=ZONE | --region=REGION]Rollierende Ersetzung aller VMs so schnell wie möglich ausführen
gcloud compute instance-groups managed rolling-action replace INSTANCE_GROUP_NAME \ --max-unavailable=100% \ [--zone=ZONE | --region=REGION]Instanznamen beibehalten
Wenn Sie die Namen Ihrer VM-Instanzen über ein Update hinweg beibehalten möchten, setzen Sie
replacementMethodaufRECREATE. Sie müssen auch fürmaxUnavailableeinen größeren Wert als0und fürmaxSurgegenau den Wert0festlegen. Wenn Sie Instanzen neu erstellen, anstatt sie zu ersetzen, dauert die Aktualisierung länger. Allerdings bleiben die Namen der aktualisierten Instanzen unverändert.Wenn Sie keine Ersetzungsmethode angeben, wird der aktuelle Wert der MIG für
updatePolicy.replacementMethodverwendet. Wenn dafür keine Angabe existiert, wird der Standardwert (substitute) verwendet, bei dem VM-Instanzen durch neue Instanzen mit zufällig generierten Namen ersetzt werden.gcloud
Fügen Sie beim Ausführen eines
rolling-action-Befehls das Flag--replacement-method=recreatean.gcloud compute instance-groups managed rolling-action start-update INSTANCE_GROUP_NAME \ --replacement-method=recreate \ --version=template=NEW_TEMPLATE \ --max-unavailable=5 \ [--zone=ZONE | --region=REGION]REST
Rufen Sie die Methode
patchfür eine regionale oder zonale MIG-Ressource auf. Geben Sie im Anfragetext das AttributupdatePolicy.replacementMethodan.PATCH /compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME { "updatePolicy": { "type": "PROACTIVE", "maxUnavailable": { "fixed": 5 }, "replacementMethod": "RECREATE" }, "versions": [ { "instanceTemplate": "global/instanceTemplates/NEW_TEMPLATE" } ] }Nachdem Sie die Anfrage gestellt haben, können Sie das Update überwachen, damit Sie wissen, wann die Aktualisierung beendet ist.
Regionale verwaltete Instanzgruppe aktualisieren
Eine regionale MIG enthält VM-Instanzen, die innerhalb einer Region auf mehrere Zonen verteilt sind, im Gegensatz zu einer zonalen MIG, die nur Instanzen in einer Zone enthält. Mit regionalen MIGs können Sie Ihre Instanzen auf mehrere Zonen verteilen, um die Verfügbarkeit Ihrer Anwendung zu verbessern. Dies gilt insbesondere in extremen Fällen, in denen eine Zone ausfällt oder eine ganze Gruppe von Instanzen nicht mehr reagiert.
Die Aktualisierung einer regionalen MIG ist im Prinzip mit der Durchführung einer Aktualisierung für eine zonale MIG vergleichbar. Die wenigen Unterschiede werden unten beschrieben. Wenn Sie die Aktualisierung einer regionalen MIG starten, aktualisiert der Updater die Instanzen immer proportional und gleichmäßig über die einzelnen Zonen hinweg. Sie können nicht auswählen, welche Instanzen in welchen Zonen zuerst aktualisiert werden, oder Instanzen nur in einer Zone aktualisieren.
Unterschiede zwischen der Aktualisierung regionaler und zonaler MIGs
Regionale MIGs haben die folgenden Standardaktualisierungswerte:
maxUnavailable=NUMBER_OF_ZONESmaxSurge=NUMBER_OF_ZONES
NUMBER_OF_ZONESist die Anzahl der Zonen, die der regionalen MIG zugeordnet sind. Die Anzahl der Zonen für eine regionale MIG ist standardmäßig3. Sie können aber auch eine andere Zahl auswählen.Wenn Sie bei der Definition eines Updates feste Zahlen verwenden, müssen sie entweder
0oder größer bzw. gleich der Anzahl der Zonen sein, die der regionalen MIG zugeordnet sind. Wenn die Gruppe zum Beispiel auf drei Zonen verteilt ist, können SiemaxSurgenicht auf1oder2setzen, weil der Updater in jeder der drei Zonen eine zusätzliche Instanz erstellen muss.Feste Zahlen oder Prozentsätze in Aktualisierungsanfragen verwenden
Wenn Sie in Ihrer Aktualisierungsanfrage eine feste Zahl angeben, wird diese durch die Anzahl der Zonen in der regionalen MIG geteilt und gleichmäßig verteilt. Wenn Sie beispielsweise
maxSurge=10angeben, teilt der Updater 10 durch die Anzahl der Zonen in der Region und erstellt anhand des Ergebnisses neue Instanzen. Wenn sich die Anzahl der Instanzen nicht gleichmäßig auf die Zonen verteilen lässt, fügt der Updater die verbleibenden Instanzen einer zufällig ausgewählten Zone hinzu. Bei 10 Instanzen in drei Zonen erhalten also zwei Zonen 3 Instanzen und eine Zone erhält 4 Instanzen. Für Canary Updates wird die gleiche Logik auf die ParametermaxUnavailableundtargetSizeangewendet.Einen Prozentsatz können Sie nur angeben, wenn Ihre MIG mindestens 10 VM-Instanzen umfasst. Prozentsätze werden je nach Situation unterschiedlich behandelt:
Wenn Sie bei einem Canary Update einen Prozentsatz an VM-Instanzen festlegen, versucht der Updater, die Instanzen gleichmäßig auf die Zonen zu verteilen. Der Rest wird in jeder Zone auf- oder abgerundet, aber die Gesamtdifferenz beträgt nicht mehr als eine VM-Instanz pro Gruppe. Bei einer MIG mit 10 Instanzen und einem Prozentsatz für die Zielgröße von 25 % wird die Aktualisierung zum Beispiel auf zwei bis drei VM-Instanzen angewendet.
Wenn Sie für Aktualisierungsoptionen wie
maxSurgeundmaxUnavailableeinen Prozentsatz angeben, wird dieser unabhängig für jede Zone gerundet.
Nächste Schritte
- Informationen zu MIGs und verwalteten Instanzen ansehen
- Instanzvorlagen erstellen
- Mit Image-Familien und rollierenden Ersetzungen das Betriebssystem-Image auf allen VMs einer verwalteten Instanzgruppe aktualisieren.
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: 2025-10-22 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-10-22 (UTC)."],[],[]] -