Simuler un événement de maintenance d'hôte


Cette page explique comment tester les effets de la stratégie de maintenance de l'hôte de votre instance de machine virtuelle (VM) sur vos applications.

Vous pouvez simuler un événement de maintenance sur vos VM dans les situations suivantes :

  • Vous avez des VM configurées de telle manière qu'elles migrent à chaud lors des événements de maintenance, et vous devez tester les effets de la migration à chaud sur vos applications.
  • Vous avez des tâches par lot exécutées sur des instances de VM préemptives, et vous devez tester la manière dont les applications gèrent la préemption et l'arrêt d'une ou plusieurs instances.
  • Vos instances sont configurées de telle manière qu'elles s'arrêtent et redémarrent au lieu de migrer à chaud lors des événements de maintenance, et vous devez tester la manière dont les applications gèrent ce processus d'arrêt et de redémarrage.
  • Vous souhaitez tester le comportement des charges de travail exécutées sur des nœuds à locataire unique lors d'un événement de maintenance de l'hôte et voir les effets de la stratégie de maintenance de l'hôte d'une VM à locataire unique. sur les applications exécutées sur les VM.

Avant de commencer

  • Consultez la limite de requêtes de l'API pour la métrique simulate_maintenance_event_requests.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :

    Sélectionnez l'onglet correspondant à la façon dont vous prévoyez d'utiliser les exemples de cette page :

    Console

    Lorsque vous utilisez la console Google Cloud pour accéder aux services et aux API Google Cloud, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

    REST

    Pour utiliser les exemples d'API REST de cette page dans un environnement de développement local, vous devez utiliser les identifiants que vous fournissez à gcloud CLI.

      Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init

Limites

  • Si vous essayez de simuler un événement de maintenance de l'hôte sur des VM qui ne sont pas compatibles avec la migration à chaud, elles sont soit arrêtées, soit redémarrées en fonction de la règle de maintenance de l'hôte configurée.

  • Lorsque vous essayez de simuler un événement de maintenance d'hôte sur un groupe de nœuds pour lequel la stratégie de maintenance de l'hôte est définie sur migrer dans le groupe de nœuds, si le nombre de nœuds spécifié est inférieur ou égal à nombre total de nœuds réservés, la simulation de l'événement de maintenance de l'hôte s'exécute simultanément pour tous les nœuds spécifiés. En revanche, si le nombre de nœuds spécifié est supérieur au nombre total de nœuds réservés, la simulation échoue.

  • Pour simuler correctement un événement de maintenance sur un groupe de nœuds pour lequel la stratégie de maintenance de l'hôte est définie sur "migrer dans le groupe de nœuds", vous devez déclencher l'événement de maintenance de manière séquentielle sur chaque nœud.

Simuler des événements de maintenance de l'hôte

Vous pouvez simuler un événement de maintenance sur une VM à l'aide de Google Cloud CLI ou d'une requête API.

Lors de la simulation de l'événement de maintenance de l'hôte, la clé de métadonnées maintenance-event de la VM subit les modifications suivantes :

  1. Au début de la simulation, la valeur de la clé de métadonnées maintenance-event passe de NONE à MIGRATE_ON_HOST_MAINTENANCE.
  2. Pendant toute la durée de l'événement de simulation, la valeur reste à MIGRATE_ON_HOST_MAINTENANCE.
  3. Une fois la simulation terminée, la valeur revient à NONE.

Pour interroger la clé de l'événement de maintenance, consultez la section Interroger la clé de métadonnées d'un événement de maintenance.

gcloud

Exécutez la commande instances simulate-maintenance-event pour forcer une instance à activer sa règle de maintenance configurée :

gcloud compute instances simulate-maintenance-event VM_NAME \
    --zone ZONE

Remplacez les éléments suivants :

  • VM_NAME : nom de la VM sur laquelle vous souhaitez simuler l'événement de maintenance.

    Vous pouvez spécifier plusieurs noms de VM séparés par des espaces pour simuler des événements de maintenance sur plusieurs VM dans la même zone. Par exemple, instance-1 instance-2 instance-3.

  • ZONE : zone où se trouve l'instance

REST

Dans l'API Compute Engine, envoyez une requête à la méthode compute.instances.simulateMaintenanceEvent :

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

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet pour cette requête.
  • VM_NAME : nom de l'instance sur laquelle vous souhaitez simuler l'événement de maintenance.

    Vous pouvez spécifier plusieurs noms d'instance séparés par des espaces pour simuler des événements de maintenance sur plusieurs instances dans la même zone. Par exemple, instance-1 instance-2 instance-3.

  • ZONE : zone où se trouve l'instance

Simuler des événements de maintenance de l'hôte sur des nœuds à locataire unique

Vous pouvez simuler un événement de maintenance de l'hôte sur des nœuds à locataire unique à l'aide de Google Cloud CLI ou d'une requête API. Pendant la simulation de l'événement de maintenance de l'hôte sur une VM à locataire unique, la valeur de la clé de métadonnées maintenance-event ne change pas et garde la valeur NONE tout au long de la simulation.

gcloud

Exécutez la commande sole-tenancy node-groups simulate-maintenance-event pour forcer les nœuds à locataire unique à activer la règle de maintenance configurée :

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

Remplacez les éléments suivants :

  • NODE_GROUP : nom du groupe de nœuds dans lequel vous souhaitez simuler l'événement de maintenance.

  • NODE_NAMES : noms des nœuds sur lesquels vous souhaitez simuler l'événement de maintenance. Lorsque vous spécifiez plusieurs noms de nœuds, utilisez des valeurs séparées par des virgules, par exemple node-1,node-2,node-3.

  • ZONE : zone où se trouvent les nœuds

REST

Dans l'API Compute Engine, envoyez une requête à la méthode compute.nodeGroups.simulateMaintenanceEvent :

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

{
  "nodes": [NODE_NAMES]
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet pour cette requête.

  • ZONE : zone où se trouvent les nœuds

  • NODE_GROUP : nom du groupe de nœuds dans lequel vous souhaitez simuler l'événement de maintenance.

  • NODE_NAMES : noms des nœuds dans lesquels vous souhaitez simuler l'événement de maintenance. Placez le nom du nœud entre guillemets doubles, par exemple "node-1". Lorsque vous spécifiez plusieurs noms de nœuds, utilisez des valeurs séparées par une virgule, par exemple "node-1","node-2","node-3".

Étapes suivantes