Zustandsorientierte verwaltete Instanzgruppen


Mit zustandsorientierten verwalteten Instanzgruppen (zustandsorientierten MIGs) können Sie hochverfügbare Bereitstellungen zustandsorientierter Arbeitslasten auf VM-Instanzen erstellen. Zu den zustandsorientierten Arbeitslasten zählen Anwendungen mit zustandsorientierten Daten oder Konfigurationen wie Datenbanken, monolithische Legacy-Anwendungen sowie Batch-Berechnungen mit langer Ausführungszeit und Prüfpunktausführung.

Mit zustandsorientierten MIGs können Sie die Verfügbarkeit und Ausfallsicherheit solcher zustandsorientierter Anwendungen durch automatische Reparatur (automatische Wiederherstellung fehlgeschlagener Arbeitslasten), Bereitstellungen in mehreren Zonen und automatische Rolling Updates verbessern.

Eine zustandsorientierte verwaltete Instanzgruppe behält den eindeutigen Status jeder Instanz (einschließlich Instanzname, angehängte nichtflüchtige Speicher, IP-Adressen und Metadaten) bei Neustart, Wiederherstellung, automatischer Reparatur oder Aktualisierung der VM bei.

Auf dieser Seite wird beschrieben, wann zustandsorientierte MIGs verwendet werden sollten. Außerdem erhalten Sie eine allgemeine Übersicht über ihre Funktionsweise. Weitere Informationen finden Sie unter Funktionsweise zustandsorientierter MIGs.

Informationen zum Einrichten einer zustandsorientierten MIG finden Sie unter Zustandsorientierte MIGs konfigurieren.

Unterschied zwischen zustandsorientierten und zustandslosen Arbeitslasten

Mit verwalteten Instanzgruppen können Sie sowohl zustandsorientierte als auch zustandslose Arbeitslasten unterstützen. Der Hauptunterschied zwischen zustandsorientierten und zustandslosen Arbeitslasten besteht darin, dass zustandsorientierte Arbeitslasten den Status einzelner VMs (z. B. ein Datenbank-Shard oder eine Anwendungskonfiguration) auf den Laufwerken der VM beibehalten, während zustandslose Arbeitslasten (z. B. ein Web-Frontend) den Status einzelner VMs nicht beibehalten.

Sehen Sie VMs mit zustandsorientierten Arbeitslasten als kundenspezifische Maschinen: VM-Identität (Name), IP-Adresse, Metadaten und die Daten auf jeder einzelnen Maschine sind für Sie wichtig. Sie können zustandsorientierte Arbeitslasten nicht einfach horizontal skalieren, da die Skalierung die Datenreplikation, das Erstellen oder Löschen von Daten-Shards oder die Änderung der gesamten Anwendungskonfiguration erfordern kann. Wenn Sie eine Maschine mit einer zustandsorientierten Arbeitslast neu erstellen oder aktualisieren, müssen Sie den genauen Status der VM beibehalten. Beispiele für zustandsorientierte Anwendungen sind Cassandra, ElasticSearch, MongoDB, MySQL, PostgreSQL und Kafka.

Sehen Sie VMs mit zustandslosen Arbeitslasten als untereinander austauschbar. Es ist nur wichtig, wie viele VMs Sie haben, die diese Last ausführen. Alle VMs werden gleich behandelt. Sie können zustandslose Arbeitslasten einfach horizontal skalieren, indem Sie VMs hinzufügen oder entfernen. Beim Aktualisieren Ihrer Anwendung können Sie Maschinen löschen und durch neue mit anderen Namen, IP-Adressen, Metadaten und Laufwerken ersetzen. Wenn eine zustandslose VM gelöscht oder neu erstellt wird, gehen alle Daten auf der Maschine verloren. Die Laufwerke werden gelöscht oder neu erstellt. Ein Web-Frontend ist ein Beispiel für eine zustandslose Anwendung.

Zustandsorientierte MIGZustandslose MIG
Arbeitslast Zustandsorientierte Arbeitslasten, bei denen Laufwerke, IP-Adressen und/oder Metadaten bei Neuerstellungen von VMs beibehalten werden. Hochverfügbare und skalierbare zustandslose Arbeitslasten, bei denen Laufwerke und IP-Adressen bei horizontaler Skalierung, automatischer Reparatur, automatischer Aktualisierung und VM-Neuerstellung neu erstellt werden.
MIG-Features
  • Automatische Reparatur
  • Automatisierte Rolling Updates
  • Bereitstellungen in mehreren Zonen
  • Automatische Reparatur
  • Automatisierte Rolling Updates
  • Bereitstellungen in mehreren Zonen
  • Autoscaling
Beibehaltbare Elemente
  • Instanznamen
  • Nichtflüchtige Speicher, einschließlich Unterstützung für Laufwerke, die nicht in der Instanzvorlage definiert sind
  • Instanzspezifische Metadaten
  • IP-Adressen
Instanznamen

Alle MIGs unterstützen benutzerdefinierte und beibehaltbare Instanznamen.

Wann werden zustandsorientierte MIGs verwendet?

Sie können zustandsorientierte verwaltete Instanzgruppen (zustandsorientierte MIGs) immer dann verwenden, wenn Sie eine zustandsorientierte Anwendung oder einen Cluster in Compute Engine bereitstellen und ihre Verfügbarkeit durch automatische Reparatur und Bereitstellung in mehreren Zonen verbessern möchten. Oder Sie möchten die Aktualisierung zustandsorientierter Instanzen vereinfachen, indem Sie die Aktualisierungs-Rollouts und die zulässige Anzahl von Unterbrechungen der Instanzen steuern.

Zustandsorientierte MIGs sind für Anwendungen mit zustandsorientierten Daten oder Konfigurationen vorgesehen, z. B.:

  • Datenbanken, zum Beispiel: Cassandra, ElasticSearch, mongoDB und ZooKeeper. Bevor Sie sich für zustandsorientierte MIGs entscheiden, sollten Sie erwägen, vollständig verwaltete Dienste wie MySQL und PostgreSQL in Cloud SQL zu verwenden, damit Sie sich auf Ihre Anwendungen konzentrieren können und sich nicht mit VMs befassen müssen.
  • Anwendungen zur Datenverarbeitung, zum Beispiel: Kafka und Flink. Bevor Sie sich für zustandsorientierte MIGs entscheiden, sollten Sie erwägen, vollständig verwaltete Dienste wie Dataflow oder Dataproc zu verwenden, damit Sie sich auf die Datenverarbeitungsaufgaben konzentrieren können und sich nicht mit VMs befassen müssen.
  • Andere zustandsorientierte Anwendungen, Zum Beispiel: TeamCity, Jenkins, Bamboo, DNS-Server mit zustandsorientierter IP-Adresse und benutzerdefinierte zustandsorientierte Arbeitslasten.
  • Monolithische Legacy-Anwendungen. Diese Anwendungen speichern den Anwendungsstatus auf einem Bootlaufwerk oder zusätzlichen nichtflüchtigen Speichern oder nutzen eine zustandsorientierte Konfiguration, z. B. bestimmte VM-Instanznamen, IP-Adressen oder Metadatenschlüsselwerte.
  • Batch-Arbeitslasten mit Prüfpunktausführung. Mit dieser Konfiguration können Sie Prüfpunktausführungsergebnisse von Berechnungen mit langer Ausführungszeit in Erwartung einer Arbeitslast, eines VM-Ausfalls oder eines vorzeitigen Beendens einer Instanz erhalten. Zustandsorientierte MIGs können eine ausgefallene Maschine neu erstellen und dabei ihr Datenlaufwerk beibehalten, sodass die Berechnung ab dem letzten Prüfpunkt fortgesetzt werden kann.

Damit dem Ausfall einer Zone vorgebeugt wird, muss Ihre Anwendung Daten auf mehreren Instanzen auf Anwendungsebene replizieren. Diese Funktionen werden beispielsweise von ElasticSearch und Cassandra unterstützt. Sie können eine regionale MIG verwenden, um eine solche Anwendung für Zonenausfälle zu stabilisieren, indem Sie redundante Replikate in mehreren Zonen bereitstellen und die Datenreplikationsfunktion Ihrer Anwendung nutzen. Bei einem Zonenausfall werden die Daten von den verfügbaren Replikaten in den verbleibenden Zonen bereitgestellt.

Überprüfen Sie anhand der Einschränkungen, ob eine zustandsorientierte MIG Ihre Anforderungen vollständig erfüllt.

Wodurch wird eine MIG zustandsorientiert?

Eine MIG gilt als zustandsorientiert, wenn Sie eine zustandsorientierte Konfiguration erstellt haben.

Sie können beim Erstellen einer MIG eine zustandsorientierte Konfiguration erstellen oder eine Gruppe nach ihrer Erstellung von zustandslos in zustandsorientiert umwandeln, indem Sie eine Konfiguration hinzufügen.

Sie erstellen eine zustandsorientierte Konfiguration, indem Sie eine nicht leere zustandsorientierte Richtlinie und/oder eine oder mehrere nicht leere instanzspezifische Konfigurationen festlegen:

  • Eine zustandsorientierte Richtlinie definiert Elemente, die Sie für alle Instanzen in Ihrer MIG beibehalten möchten.
  • Eine instanzspezifische Konfiguration definiert Elemente, die für eine bestimmte VM-Instanz beibehalten werden sollen.

Die Konfiguration wird wirksam, nachdem Sie oder die MIG sie angewendet haben.

  • Eine MIG wendet die Konfiguration Ihrer zustandsorientierten Richtlinie automatisch auf neue und vorhandene Instanzen an.
  • Wenn Sie instanzspezifische Konfigurationen erstellen oder aktualisieren, können Sie sich entscheiden, ob die neue Konfiguration manuell oder automatisch angewendet werden soll.

Nachdem die zustandsorientierte Konfiguration (zustandsorientierte Richtlinie und/oder Instanzkonfigurationen) angewendet wurde, können Sie sie verifizieren, indem Sie den beibehaltenen Status der verwalteten Instanzen überprüfen.

Nachfolgende Änderungen an der zustandsorientierten Konfiguration oder Größe Ihrer MIG (z. B. das Verringern der Größe der MIG oder das Löschen oder Verwerfen von Instanzen aus der MIG) können sich auf den beibehaltenen Status der Instanzen auswirken.

Zustandsorientierte Konfiguration

Eine zustandsorientierte verwaltete Instanzgruppe (MIG) bezieht ihre Instanzkonfiguration aus einer Kombination aus der Instanzvorlage, einer optionalen instanzübergreifenden Konfiguration, einer optionalen zustandsorientierten Richtlinie und optionalen instanzspezifischen Konfigurationen, die Sie festlegen. Nachdem Sie die Konfiguration für Ihre Gruppe festgelegt haben, verwendet die MIG diese Konfiguration beim Erstellen von VMs. Informationen zum Anwenden einer aktualisierten Konfiguration auf vorhandene VMs finden Sie unter Neue VM-Konfigurationen in einer MIG anwenden.

Zustandsorientierte Richtlinie

Eine zustandsorientierte Richtlinie definiert gemeinsame zustandsorientierte Elemente für alle Instanzen in einer verwalteten Instanzgruppe. Jedes Element, das Sie in die zustandsorientierte Richtlinie einfügen, muss in der Instanzvorlage der MIG definiert werden.

Sie können die folgenden Änderungen an einer zustandsorientierten Richtlinie vornehmen:

Instanzspezifische Konfigurationen

Eine instanzspezifische Konfiguration definiert zustandsorientierte Elemente, die für eine bestimmte verwaltete Instanz eindeutig sind, z. B. instanzspezifische Laufwerke, Metadaten-Schlüssel/Wert-Paare und IP-Adressen. Instanzspezifische Metadaten und Laufwerke müssen nicht in der Instanzvorlage der MIG definiert werden. Netzwerkschnittstellen für zustandsorientierte IPs müssen jedoch in der Instanzvorlage der MIG definiert werden.

Sie können die folgenden Änderungen an einer instanzspezifischen Konfiguration für eine bestimmte Instanz in einer MIG vornehmen:

Beispiel einer zustandsorientierten Konfiguration

Hier sehen Sie ein Beispiel für eine zustandsorientierte Konfiguration:

Instanzvorlage + zustandsorientierte Richtlinie + instanzspezifische Konfiguration = verwaltete Instanzkonfiguration.

In diesem Diagramm gilt Folgendes:

  • Die Instanzvorlage definiert eine gemeinsame Konfiguration für alle VM-Instanzen in einer MIG.
  • Die zustandsorientierte Richtlinie definiert eine gemeinsame zustandsorientierte Konfiguration für Laufwerke mit dem Gerätenamen data-disk, die von der Instanzvorlage definiert und einzeln erstellt und jeder VM-Instanz in der MIG zugeordnet werden.
  • Die instanzspezifische Konfiguration definiert eine zustandsorientierte Konfiguration für eine bestimmte VM-Instanz namens node-1. Sie gibt an, dass ein vorhandenes Laufwerk my-legacy-1 an die Instanz node-1 angehängt und als zustandsorientiert behandelt werden soll. Außerdem wird ein Schlüssel/Wert-Paar für Metadaten speziell für die Instanz node-1 festgelegt (node-id:xyz273), um die Individualität zu erhalten.

Beim Erstellen der VM node-1 geht die MIG so vor:

  1. Sie verwendet entsprechend der Instanzvorlage den Maschinentyp n2-standard-2.
  2. Sie erstellt entsprechend der Instanzvorlage und mithilfe eines Debian GNU/Linux-Images ein Bootlaufwerk mit dem automatisch generierten Laufwerknamen boot-node-1 und dem Gerätenamen boot-disk und hängt es an. Die MIG behandelt das Bootlaufwerk boot-node-1 als zustandslos, da es nicht in der zustandsorientierten Richtlinie konfiguriert oder in der instanzspezifischen Konfiguration angegeben ist.
  3. Sie erstellt entsprechend der Instanzvorlage und mithilfe eines benutzerdefinierten Images ein zusätzliches Laufwerk mit dem automatisch generierten Laufwerknamen data-disk-1 und dem Gerätenamen data-disk und hängt es an. Die MIG behandelt das zusätzliche Laufwerk data-disk-1 als zustandsorientiert, da sein Gerätename in der zustandsorientierten Richtlinie angegeben ist.
  4. Sie hängt entsprechend der instanzspezifischen Konfiguration ein vorhandenes Laufwerk mit dem Laufwerknamen my-legacy-1 und dem Gerätenamen legacy-disk an. Die MIG behandelt das zusätzliche Laufwerk my-legacy-1 als zustandsorientiert, da sein Gerätename in der instanzspezifischen Konfiguration angegeben ist.
  5. Sie legt drei Schlüssel/Wert-Paare für Metadaten fest: zwei aus der Instanzvorlage (app:example-stateful-app, version:1.0) und eines aus der instanzspezifischen Konfiguration (node-id:xyz273). Die MIG behandelt das Schlüssel/Wert-Paar node-id:xyz273 als zustandsorientiert, da es in der instanzspezifischen Konfiguration angegeben ist.

Wenn die VM node-1 neu erstellt wird und die gleiche Konfiguration noch gültig ist, erstellt die MIG die zustandslosen Elemente und behält die zustandsorientierten Elemente bei:

  1. Die MIG erstellt das Bootlaufwerk aus dem ursprünglichen Image neu:

    Sie löscht zuerst das Bootlaufwerk boot-node-1 und erstellt es dann aus dem Debian GNU/Linux-Image neu, wie in der Instanzvorlage angegeben.

  2. Die MIG behält die zusätzlichen Laufwerke data-disk-1 und my-legacy-1 bei:

    Sie trennt die zusätzlichen Laufwerke vor dem Löschen der VM und hängt sie anschließend nach Neuerstellung der VM an diese wieder an.

  3. Die MIG behält das individuelle Schlüssel/Wert-Paar für Metadaten node-id:xyz273 bei:

    Sie legt die Metadaten fest, nachdem die VM neu erstellt wurde. Außerdem werden die gemeinsamen Schlüssel/Wert-Paare aus der Instanzvorlage (app:example-stateful-app und version:1.0) festgelegt.

Feedback

Wir möchten mehr über Ihre Anwendungsfälle und Herausforderungen erfahren und freuen uns über Feedback zu zustandsorientierten MIGs. Senden Sie Ihr Feedback unter mig-discuss@google.com an unser Team.

Nächste Schritte