Durch die Kombination von benutzerdefinierten Image-Familien und fortlaufenden Updates können Sie Upgrades von Betriebssystem-Images mit einem Klick in Ihrer verwalteten Instanzgruppe (MIG) aktivieren.
Betriebssystem-Image-Upgrades mit einem Klick bieten unter anderem diese Vorteile:
- Sie funktionieren bei allen VM-Typen und allen Instanzgruppengrößen.
- Sie unterstützen sowohl Windows- als auch Linux-Images und -Container.
- Instanzen werden anhand ihrer aktuellen Instanzvorlage oder optional anhand einer neuen Vorlage neu erstellt, sodass Sie benutzerdefinierte Startskripts und Metadaten beibehalten können.
- Funktioniert mit zustandsorientierten MIGs, sodass Sie optional Daten auf Nicht-Bootlaufwerken beibehalten können.
- Der Rollout eines Updates für die neue Betriebssystemversion erfolgt automatisch, ohne dass nach der anfänglichen Anfrage zusätzliche Nutzereingaben erforderlich sind.
- Sie unterstützen Batch-Updates mit einer optionalen Systemdiagnose.
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 Cloud de Confiance by S3NS Dienste und APIs überprüft. Zur Ausführung von Code oder Beispielen aus einer lokalen Entwicklungsumgebung können Sie sich so bei Compute Engine authentifizieren:
-
Installieren Sie die Google Cloud CLI und melden Sie sich dann mit Ihrer föderierten Identität in der gcloud CLI an. Nach der Anmeldung initialisieren Sie die Google Cloud CLI mit dem folgenden Befehl:
gcloud init - Legen Sie eine Standardregion und -zone fest.
-
Wie funktionieren Betriebssystem-Image-Upgrades mit einem Klick?
Wenn Sie ein Update aufrufen, ersetzt die MIG die Bootlaufwerke aller VMs in der Gruppe durch die neueste Version des Betriebssystem-Images aus Ihrer benutzerdefinierten Image-Familie. Die MIG behält Metadaten und Startskripts bei, die Sie in der Instanzvorlage für jede VM in der Gruppe eingerichtet haben. Nicht-Bootlaufwerke werden anhand ihrer Spezifikation in der Instanzvorlage neu erstellt. Informationen zum Speichern von Daten finden Sie unter Zustandsorientierte Laufwerke in MIGs konfigurieren.
Zur Begrenzung von Anwendungsunterbrechungen können Sie stapelweise aktualisieren, wobei ein bestimmter Prozentsatz der VMs weiterhin ausgeführt wird. Wenn Sie die Zuverlässigkeit erhöhen möchten, können Sie für die MIG eine anwendungsbasierte Systemdiagnose konfigurieren: Die Gruppe wartet darauf, dass die Fehlerfreiheit einer Anwendung auf aktualisierten VMs gemeldet wird, bevor sie weitere Updates für andere VMs durchführt.
Hinweise
Installieren Sie die Google Cloud CLI oder aktualisieren Sie sie auf die neueste Version.
Achten Sie darauf, dass Sie eine Instanzvorlage erstellt haben, die auf eine Image-Familie verweist. Google empfiehlt die Verwendung benutzerdefinierter Image-Familien, um das Risiko der Einführung einer Image-Version zu verringern, die mit Ihrer Anwendung nicht kompatibel ist. Sie können dafür sorgen, dass nur kompatible Image-Versionen eingeführt werden, indem Sie Ihrer benutzerdefinierten Image-Familie Images erst nach einem Kompatibilitätstest mit Ihrer Anwendung hinzufügen.
Wenn Ihre Instanzvorlage auf eine Image-Familie verweist, erstellt die MIG Instanzen immer anhand des neuesten Images in der Familie. Beispiel:
- Wenn die MIG neue Instanzen hinzufügt, weil Sie oder das Autoscaling der MIG die Größe der MIG erhöht haben.
- Wenn die MIG eine Instanz neu erstellt, weil dieser Vorgang manuell ausgelöst wurde oder für eine automatische Reparatur erforderlich ist.
Testen Sie das neue Image mit Ihrer Anwendung, bevor Sie es zu Ihrer Image-Familie hinzufügen und einführen.
Optional können Sie eine anwendungsbasierte Systemdiagnose für Ihre verwaltete Instanzgruppe erstellen. Mit einer anwendungsbasierten Systemdiagnose wird überprüft, ob Ihre Anwendung auf allen VMs in der MIG wie erwartet reagiert. Sie können das Update so konfigurieren, dass nur eine nicht verfügbare VM zulässig ist. Wenn eine Anwendung nicht wie erwartet reagiert, markiert die MIG diese VM als nicht verfügbar und die Einführung wird nicht fortgesetzt.
Betriebssystem-Image-Upgrades mit einem Klick für MIGs durchführen
So aktualisieren Sie alle VMs in einer MIG auf das neueste Image aus einer benutzerdefinierten Image-Familie:
Starten Sie eine rollierende Ersetzung mit diesem Befehl:
gcloud compute instance-groups managed rolling-action replace instance-group-name \ [--max-surge=max-surge ] [--max-unavailable=max-unavailable]Ersetzen Sie Folgendes:
instance-group-name: Der Name der MIG, mit der gearbeitet werden soll.max-surge: Die maximale Anzahl zusätzlicher VMs, die während des Aktualisierungsvorgangs vorübergehend erstellt werden können. Dies kann eine feste Zahl (z. B.5) oder ein Prozentsatz der Größe der MIG (z. B.10%) sein.max-unavailable: Die maximale Anzahl an VMs, die während des Aktualisierungsvorgangs nicht verfügbar sein dürfen. Dies kann eine feste Zahl (5) oder ein Prozentsatz der Größe der MIG (10%) sein.
Sie können Systemdiagnosen mit den Optionen
--max-unavailableund--max-surgekombinieren, um weitere Updates zu verhindern, wenn diese die Verfügbarkeit von VMs beeinträchtigen.Aktualisierung überwachen: Verwenden Sie den Unterbefehl
wait-until, um zu prüfen, ob das Feldstatus.versionTarget.isReachedder MIG auftruefestgelegt ist.gcloud compute instance-groups managed wait-until instance-group-name --version-target-reached
Ersetzen Sie Folgendes:
instance-group-name: Der Name der MIG, mit der gearbeitet werden soll.
Der Befehl wird beantwortet, wenn die Gruppe aktualisiert wurde.
Sie können auch Instanzen auflisten, um den Status der einzelnen Instanzen zu sehen.
gcloud compute instance-groups managed list-instances instance-group-name
Der Befehl gibt eine Liste der Instanzen und ihrer Details zurück, einschließlich Status, Zustand und aktuelle Aktionen für jede VM. Wenn alle VMs den Status
RUNNINGund keine aktuelle Aktion haben, ist die MIG auf dem neuesten Stand und stabil.Wenn Sie ein Rollback zu einem vorherigen Betriebssystem-Image durchführen müssen, müssen Sie eine Instanzvorlage erstellen und das gewünschte Image angeben. Starten Sie dann ein Rolling Update, um alle verwalteten Instanzen zu aktualisieren, damit sie diese Vorlage verwenden. Weitere Informationen finden Sie unter Rollback für Aktualisierung durchführen.
Beispiel
In diesem Beispiel werden die folgenden Aufgaben behandelt:
- Instanzvorlage für einfache Betriebssystem-Image-Updates erstellen:
- Geben Sie in der Instanzvorlage eine benutzerdefinierte Image-Familie an.
- Erstellen Sie eine MIG anhand der Vorlage.
- Richten Sie eine Systemdiagnose ein, um Unterbrechungen durch ein Image-Update zu begrenzen.
- Fügen Sie einer Image-Familie ein neues Image hinzu.
- Rufen Sie ein Betriebssystem-Update mit einem einzigen Befehl auf.
- Überwachen Sie das Update.
Aktivieren und führen Sie Betriebssystem-Upgrades mit einem Klick für eine MIG mit diesen Schritten durch:
Erstellen Sie eine Instanzvorlage, in der eine benutzerdefinierte Image-Familie angegeben ist. Die Image-Familie sollte getestete und vertrauenswürdige Images enthalten. Jede VM, die von der MIG anhand dieser Vorlage erstellt wird, verwendet das neueste verfügbare Image dieser Familie.
gcloud compute instance-templates create example-template \ --machine-type n1-standard-4 \ --image-family my-image-family \ --image-project my-project \ --tags=http-serverErstellen Sie eine MIG anhand der Instanzvorlage. In diesem Beispiel wird die MIG mit drei auf
example-templateberuhenden Instanzen gestartet. Da die Instanzvorlage eine Image-Familie angibt, erstellt die MIG jede VM mit dem neuesten Image aus der Familie.gcloud compute instance-groups managed create example-group \ --base-instance-name example \ --size 3 \ --zone us-east1-b \ --template example-template
Optional: Konfigurieren und aktivieren Sie eine anwendungsbasierte Systemdiagnose. Wenn Ihre App nach einem Image-Update nicht reagiert, können Sie den Systemdiagnosestatus in Kombination mit der Einstellung maxUnavailable verwenden, um weitere Rollouts der MIG zu stoppen.
Erstellen Sie eine Systemdiagnose, die auf dem Anfragepfad
/healthnach einer HTTP-Antwort200sucht. Die GitHub-Anwendung, die sich auf der jeweiligen Instanz befindet, verwendet diesen Pfad.gcloud compute health-checks create http example-autohealer-check \ --check-interval 10 \ --timeout 5 \ --healthy-threshold 2 \ --unhealthy-threshold 3 \ --request-path "/health"Erstellen Sie eine Firewallregel, damit die Systemdiagnoseprüfungen auf die Instanzen zugreifen können. Die Systemdiagnoseprüfungen stammen von Adressen in den Bereichen
130.211.0.0/22und35.191.0.0/16.gcloud compute firewall-rules create default-allow-http-health-check \ --network default \ --allow tcp:80 \ --source-ranges 130.211.0.0/22,35.191.0.0/16Fügen Sie die Systemdiagnose zur MIG hinzu.
gcloud compute instance-groups managed update example-group \ --zone us-east1-b --health-check example-autohealer-check
Wenn ein Update verfügbar, getestet und mit Ihrer Anwendung kompatibel ist, erstellen Sie ein neues Image und nehmen Sie dieses Image mit dem Flag
--familyin die benutzerdefinierte Image-Familie auf.gcloud compute images my-image-v2 \ --source-disk boot-disk-1 \ --source-disk-zone us-central1-f \ --family my-image-familyIn diesem Beispiel ist
my-image-v2das neueste Image inmy-image-family. Es beruht auf dem Quelllaufwerkboot-disk-1.Rufen Sie eine rollierende Ersetzung auf, um alle VMs in der MIG zu ersetzen. Die MIG ersetzt jede VM anhand der Instanzvorlage der Gruppe. In der Instanzvorlage ist
my-image-familyangegeben. Daher ruft jede VM das neueste Image in der Familie (my-image-v2) ab.Sie können konfigurieren, wie stark die Unterbrechung durch das Update ist. In diesem Beispiel erstellt die MIG eine zusätzliche VM über die Zielgröße der Gruppe hinaus und entfernt keine vorhandenen VMs, bis diese eine VM ausgeführt wird.
gcloud compute instance-groups managed rolling-action replace example-group \ --max-surge 1 --max-unavailable 0Überwachen Sie den Status der Updates mit dem Befehl
wait-untilzusammen mit dem Flag--version-target-reached. Der Befehl wird beantwortet, wenn die Gruppe aktualisiert wurde.gcloud compute instance-groups managed wait-until --version-target-reached example-group \ --zone us-east1- Waiting for group to reach version target ... Version target is reachedSie können mit dem Befehl
list-instancesauch für jede VM den Status, das Ergebnis der Systemdiagnose, die aktuellen Aktionen, die Instanzvorlage und die Version abrufen.gcloud compute instance-groups managed list-instances example-group \ --zone us-east1-b NAME ZONE STATUS HEALTH_STATE ACTION INSTANCE_TEMPLATE VERSION_NAME LAST_ERROR test-211p us-east1-b RUNNING HEALTHY NONE example-template 0/2020-01-30 13:34:28.843377+00:00 test-t5qb us-east1-b RUNNING UNKNOWN VERIFYING example-template 0/2020-01-30 13:34:28.843377+00:00 test-x331 us-east1-b RUNNING HEALTHY NONE example-template 0/2020-01-20 20:39:51.819399+00:00Wenn Sie ein Rollback auf ein früheres Image durchführen müssen, gehen Sie so vor:
- Erstellen Sie eine neue Instanzvorlage, in der das gewünschte Image angegeben ist.
- Starten Sie ein Rolling Update, um die Instanzvorlage anzuwenden.
Nächste Schritte
- Weitere Informationen zu Best Practices für Image-Familien
- Mehr über Instanzgruppen erfahren
- Details zu Instanzvorlagen
- Weitere Informationen zu Rolling Updates in MIGs.