Hostwartungsereignisse simulieren


Auf dieser Seite wird beschrieben, wie Sie die Auswirkungen der Hostwartungsrichtlinie Ihrer Compute Engine-Instanz auf Ihre Anwendungen testen.

Sie können ein Wartungsereignis für Ihre VMs simulieren, um Folgendes zu testen:

  • Die Auswirkungen der Live-Migration auf Ihre Anwendungen.
  • Wie Ihre Anwendungen und Batch-Jobs bei Verwendung einer oder mehrerer Spot-VMs auf das vorzeitige Beenden und das Herunterfahren reagieren.
  • Wie Ihre Anwendungen mit dem Herunterfahren und Neustarten von Instanzen umgehen, die so konfiguriert sind, dass sie bei Wartungsereignissen beendet und neu gestartet werden, statt die Livemigration zu starten.
  • Sie möchten testen, wie sich Arbeitslasten während eines Hostwartungsereignisses verhalten, die auf Knoten für einzelne Mandanten laufen und die Auswirkungen der Hostwartungsrichtlinie der VMs für einzelne Mandanten für die Anwendungen ansehen, die auf den VMs ausgeführt werden.

Wenn Sie versuchen, ein Hostwartungsereignis auf einer Instanz zu simulieren, die keine Live-Migration unterstützt, wird die Instanz je nach konfigurierter Hostwartungsrichtlinie entweder beendet oder neu gestartet.

Hinweise

  • Sehen Sie sich die regionale API-Ratenbegrenzung für SimulateMaintenanceEventRequestsPerMinutePerProjectPerRegion an.
  • 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 bei Compute Engine authentifizieren. Wählen Sie dazu eine der folgenden Optionen aus:

    Select the tab for how you plan to use the samples on this page:

    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.

Beschränkungen

  • Um ein Wartungsereignis für eine Knotengruppe für einzelne Mandanten, in der die Hostwartungsrichtlinie auf Innerhalb der Knotengruppe migrieren festgelegt wurde, korrekt zu simulieren, müssen Sie das Wartungsereignis auf jedem Knoten sequenziell auslösen.
  • Wenn Sie versuchen, ein Hostwartungsereignis für eine Knotengruppe für einzelne Mandanten zu simulieren, für die die Hostwartungsrichtlinie auf „Innerhalb der Knotengruppe migrieren“ festgelegt ist, geschieht Folgendes:
    • Wenn die Anzahl der angegebenen Knoten kleiner oder gleich der Gesamtzahl der reservierten Holdback-Knoten ist, wird die Simulation des Hostwartungsereignisses für alle angegebenen Knoten gleichzeitig ausgeführt.
    • Wenn die Anzahl der angegebenen Knoten größer ist als die Gesamtzahl der reservierten Holdback-Knoten, schlägt die Simulation fehl.
  • Die Anzahl der Wartungsereignissimulationen, die Sie pro Minute und Region starten können, ist durch die API-Ratenbegrenzung für den Messwert simulate_maintenance_event_requests_per_region begrenzt.

Hostwartungsereignisse simulieren, um die Live-Migration zu testen

Sie können ein Wartungsereignis für eine Compute-Instanz mit der Google Cloud CLI oder einer API-Anfrage simulieren. Dieses simulierte Ereignis umfasst die verschiedenen Wartungsaktivitäten, die bei einem regulären Wartungsereignis stattfinden. So können Sie den End-to-End-Prozess beobachten und alle Automatisierungen testen, die Sie möglicherweise implementiert haben.

Während der Simulation des Hostwartungsereignisses für eine Instanz, bei der die Live-Migration verwendet wird, durchläuft der Metadatenschlüssel maintenance-event der Instanz die folgenden Änderungen:

  1. Zu Beginn der Simulation ändert sich der Wert des Metadatenschlüssels maintenance-event von NONE in MIGRATE_ON_HOST_MAINTENANCE.
  2. Während des Simulationsereginisses bleibt der Wert MIGRATE_ON_HOST_MAINTENANCE.
  3. Nach der Simulation wird der Wert wieder auf NONE zurückgesetzt.

Informationen zum Abfragen des Wartungsereignisschlüssels finden Sie unter Metadatenschlüssel des Wartungsereignisses abfragen.

gcloud

Mit dem Befehl compute instances simulate-maintenance-event können Sie ein Wartungsereignis für eine Instanz simulieren und die konfigurierten Einstellungen der Wartungsrichtlinie für den Host testen:

gcloud compute instances simulate-maintenance-event INSTANCE_NAME \
    --zone=ZONE --with-extended-notifications=True

Ersetzen Sie Folgendes:

  • INSTANCE_NAME: der Name der Compute-Instanz, für die das Wartungsereignis simuliert werden soll.

    Sie können mehrere Instanznamen angeben, die durch einzelne Leerzeichen getrennt sind, um Wartungsereignisse für mehr als eine Instanz in derselben Zone zu simulieren. Beispiel: instance-1 instance-2 instance-3.

  • ZONE: die Zone, in der sich die Instanz befindet.

REST

Senden Sie eine POST-Anfrage an die Methode compute.instances.simulateMaintenanceEvent:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/simulateMaintenanceEvent

Ersetzen Sie Folgendes:

  • PROJECT_ID ist die Projekt-ID für diese Anfrage.
  • INSTANCE_NAME: der Name der Instanz, für die das Wartungsereignis simuliert werden soll.
  • ZONE: die Zone, in der sich die Instanz befindet.

Hostwartung für beendete Compute-Instanzen simulieren

Sie können ein Wartungsereignis für eine Compute-Instanz mit der Google Cloud CLI oder einer API-Anfrage simulieren. Dieses simulierte Ereignis umfasst die verschiedenen Wartungsaktivitäten, die bei einem regulären Wartungsereignis stattfinden. So können Sie den End-to-End-Prozess beobachten und alle Automatisierungen testen, die Sie möglicherweise implementiert haben.

Wenn Sie den Parameter --with-extended-notifications mit einem unterstützten Maschinentyp verwenden, können Sie außerdem testen, ob die Hostwartung während des simulierten Ereignisses manuell gestartet werden kann.

gcloud

  1. Mit dem Befehl compute instances simulate-maintenance-event können Sie ein Wartungsereignis für eine Instanz simulieren und die konfigurierten Einstellungen für die Hostwartungsrichtlinie testen. Sie können optional das Flag --with-extended-notifications einfügen.

    gcloud compute instances simulate-maintenance-event INSTANCE_NAME \
       --zone=ZONE --with-extended-notifications=True
    

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: der Name der Compute-Instanz, für die das Wartungsereignis simuliert werden soll.

      Sie können mehrere Instanznamen angeben, die durch einzelne Leerzeichen getrennt sind, um Wartungsereignisse für mehr als eine Instanz in derselben Zone zu simulieren. Beispiel: instance-1 instance-2 instance-3.

    • ZONE: die Zone, in der sich die Instanz befindet.

  2. Optional: Wenn Sie das simulierte Wartungsereignis manuell starten möchten, verwenden Sie den Befehl compute instances perform-maintenance.

    gcloud compute instances perform-maintenance INSTANCE_NAME \
       --zone=ZONE
    

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: der Name der Compute-Instanz, für die das Wartungsereignis simuliert werden soll.

      Sie können mehrere Instanznamen angeben, die durch einzelne Leerzeichen getrennt sind, um Wartungsereignisse für mehr als eine Instanz in derselben Zone zu simulieren. Beispiel: instance-1 instance-2 instance-3.

    • ZONE: Die Zone, in der sich die Instanzen befinden.

REST

  1. Senden Sie eine POST-Anfrage an die Methode compute.instances.simulateMaintenanceEvent. Sie können optional den Abfrageparameter withExtendedNotifications einfügen.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/simulateMaintenanceEvent?withExtendedNotifications=True
    

    Ersetzen Sie Folgendes:

    • PROJECT_ID ist die Projekt-ID für diese Anfrage.
    • INSTANCE_NAME: der Name der Instanz, für die das Wartungsereignis simuliert werden soll.
    • ZONE: die Zone, in der sich die Instanz befindet.
  2. Optional: Wenn Sie das simulierte Wartungsereignis manuell starten möchten, senden Sie eine POST-Anfrage an die Methode compute.instances.performMaintenance.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/INSTANCE_NAME/performMaintenance
    

    Ersetzen Sie Folgendes:

    • INSTANCE_NAME: der Name der Compute-Instanz, auf der das Wartungsereignis gestartet werden soll.

      Sie können mehrere Instanznamen angeben, die durch einzelne Leerzeichen getrennt sind, um Wartungsereignisse für mehr als eine Instanz in derselben Zone auszuführen. Beispiel: instance-1 instance-2 instance-3.

    • ZONE: Die Zone, in der sich die Instanzen befinden.

Hostwartungen auf Knoten für einzelne Mandanten simulieren

Sie können ein Hostwartungsereignis auf Knoten für einzelne Mandanten mit der Google Cloud CLI oder einer API-Anfrage simulieren. Während der Simulation des Hostwartungsereignisses auf einer VM für einzelne Mandanten ändert sich der Metadatenschlüsselwert maintenance-event nicht und bleibt während der Simulation NONE.

gcloud

Führen Sie den Befehl sole-tenancy node-groups simulate-maintenance-event aus, damit für Knoten für einzelne Mandanten die konfigurierte Wartungsrichtlinie aktiviert wird:

 gcloud compute sole-tenancy node-groups simulate-maintenance-event NODE_GROUP \
    --nodes=NODE_NAMES \
    --zone=ZONE \
    --async

Dabei gilt:

  • NODE_GROUP: der Name der Knotengruppe, in der das Wartungsereignis simuliert werden soll.

  • NODE_NAMES: die Namen der Knoten, auf denen Sie das Wartungsereignis simulieren möchten. Wenn Sie mehrere Knotennamen angeben, verwenden Sie durch Kommas getrennte Werte, z. B. node-1,node-2,node-3.

  • ZONE: die Zone, in der sich die Knoten befinden.

REST

Senden Sie eine POST-Anfrage an die Methode compute.nodeGroups.simulateMaintenanceEvent:

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/nodeGroups/NODE_GROUP/simulateMaintenanceEvent

{
  "nodes": [
      "NODE_NAMES"
  ]
}

Ersetzen Sie Folgendes:

  • PROJECT_ID ist die Projekt-ID für diese Anfrage.
  • ZONE: die Zone, in der sich die Knoten befinden.
  • NODE_GROUP: der Name der Knotengruppe, in der das Wartungsereignis simuliert werden soll.
  • NODE_NAMES: die Namen der Knoten, auf denen Sie das Wartungsereignis simulieren möchten. Setzen Sie den Knotennamen in doppelte Anführungszeichen, z. B. "node-1". Verwenden Sie dabei durch Kommas getrennte Werte, z. B. "node-1","node-2","node-3".

Nächste Schritte