Ce document explique comment définir la stratégie de maintenance de l'hôte d'une instance de machine virtuelle (VM) pour configurer le comportement de la VM lorsqu'un événement hôte se produit.
Avant de commencer
- Si vous souhaitez utiliser les exemples de ligne de commande de ce guide, procédez comme suit :
- Installez la dernière version de Google Cloud CLI ou appliquez la mise à jour correspondante.
- Définissez une région et une zone par défaut.
- Si vous voulez utiliser les exemples d'API de ce guide, configurez l'accès aux API.
Limites
- Vous ne pouvez pas modifier la stratégie de maintenance de l'hôte d'une VM préemptive. En cas d'événement de maintenance, la VM préemptive s'arrête et la migration n'est pas effectuée. Vous devez redémarrer manuellement la VM préemptée.
- Une fois que vous avez créé une VM à l'aide d'un type de machine E2, vous ne pouvez pas modifier les paramètres de maintenance de l'hôte de la VM en remplaçant
Migrate
parTerminate
ou inversement.
Définir la stratégie de maintenance de l'hôte d'une VM
Vous pouvez modifier la stratégie de maintenance de l'hôte d'une VM au moment de la création d'une VM ou après sa création à l'aide de la méthode setScheduling
.
Pour configurer les comportements de maintenance et de redémarrage d'une VM, et son temps de détection des erreurs de l'hôte, utilisez les propriétés onHostMaintenance
, automaticRestart
et hostErrorTimeoutSeconds
. Compute Engine configure toutes les VM avec les valeurs par défaut, sauf si vous avez spécifié des valeurs.
onHostMaintenance
: détermine le comportement en cas d'événement de maintenance susceptible de provoquer le redémarrage de la VM.MIGRATE
: force la migration à chaud de l'instance par Compute Engine lors d'un événement de maintenance. Il s'agit de la valeur par défaut.TERMINATE
: arrête une VM au lieu de la migrer.
automaticRestart
: détermine le comportement en cas de plantage ou d'arrêt d'une VM par le système.true
: Compute Engine redémarre une instance si celle-ci plante ou est arrêtée. Il s'agit de la valeur par défaut.false
: Compute Engine ne redémarre pas une VM si celle-ci plante ou est arrêtée.
hostErrorTimeoutSeconds
(Bêta) : définit la durée maximale, en secondes, pendant laquelle Compute Engine attend de redémarrer ou d'arrêter une VM après avoir détecté qu'elle ne répondait pas.- [Par défaut] non défini, Compute Engine attend jusqu'à 5,5 minutes (330 secondes) avant de redémarrer une VM qui ne répond pas.
- Nombre de secondes entre
90
et330
, par incréments de 30, qui définit la durée pendant laquelle Compute Engine attend avant de redémarrer une VM qui ne répond pas.
Toutes les VM sont configurées avec des valeurs par défaut sauf si vous les avez définies. Lors des événements hôtes, en fonction de la stratégie de maintenance de l'hôte configurée, les VM non compatibles avec la migration à chaud sont arrêtées ou redémarrées automatiquement.
Définir la stratégie de maintenance de l'hôte lors de la création d'une VM
Console
Accédez à la page Créer une instance dans Google Cloud Console.
Développez la section Mise en réseau, disques, sécurité, gestion et location unique, puis procédez comme suit :
- Développez la section Gestion.
- Dans la liste Redémarrage automatique, sélectionnez l'option de votre choix.
- Dans la liste Pendant la maintenance de l'hôte, sélectionnez l'option de votre choix.
Pour créer la VM, cliquez sur Créer.
gcloud
Pour définir la stratégie de maintenance de l'hôte d'une nouvelle VM dans gcloud compute
, utilisez l'option --maintenance-policy
pour indiquer si la VM est migrée ou arrêtée. Par défaut, les VM sont automatiquement configurées pour redémarrer, sauf si vous fournissez l'option --no-restart-on-failure
.
Pour spécifier la durée maximale pendant laquelle Compute Engine attend avant de redémarrer ou d'arrêter une VM après avoir détecté qu'elle ne répondait pas, utilisez l'option --host-error-timeout-seconds
(Bêta).
gcloud compute instances create VM_NAME \ --maintenance-policy=MAINTENANCE_POLICY \ --host-error-timeout-seconds=NUMBER_OF_SECONDS \ [--no-restart-on-failure]
Remplacez les éléments suivants :
VM_NAME
: nom de la VMMAINTENANCE_POLICY
: règle de cette VM,TERMINATE
ouMIGRATE
NUMBER_OF_SECONDS
: délai d'attente en secondes avant que Compute Engine ne redémarre une VM qui ne répond pas. Valeur comprise entre90
et330
, augmentant par incréments de 30. Cette option est disponible en version bêta. Pour utiliser cette option, exécutez la commandegcloud beta compute instances create
.
API
Pour définir la stratégie de maintenance de l'hôte d'une nouvelle VM à l'aide de l'API Compute Engine, utilisez la méthode instances.insert
.
Dans le corps de la requête, ajoutez onHostMaintenance
pour indiquer si la VM est migrée ou arrêtée lors de la maintenance de l'hôte. Les VM sont automatiquement configurées pour redémarrer après une erreur d'hôte, sauf si vous définissez automaticRestart
sur false
.
Pour spécifier la durée maximale pendant laquelle Compute Engine attend avant de redémarrer ou d'arrêter une VM après avoir détecté qu'elle ne répondait pas, ajoutez le paramètre hostErrorTimeoutSeconds
(Bêta) au corps de la requête.
Dans l'API, envoyez une requête POST
à l'URL suivante, en remplaçant le projet et la zone par votre ID de projet et la zone de la VM :
https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances
Remplacez les éléments suivants :
PROJECT_ID
: projet dans lequel vous souhaitez créer la VMZONE
: zone dans laquelle vous souhaitez créer la VM
Ajoutez les paramètres onHostMaintenance
, hostErrorTimeoutSeconds
et automaticRestart
dans le corps de la requête :
{ "name": "VM_NAME", ... // User options for influencing this Instance's life cycle. "scheduling": { "onHostMaintenance": "MAINTENANCE_POLICY", "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS, "automaticRestart": RESTART_POLICY } }
Remplacez les éléments suivants :
VM_NAME
: nom de la VMMAINTENANCE_POLICY
: règle définie pour cette VM,TERMINATE
ouMIGRATE
NUMBER_OF_SECONDS
: délai d'attente en secondes avant que Compute Engine ne redémarre une VM qui ne répond pas. Valeur comprise entre90
et330
, augmentant par incréments de 30. Cette option est disponible en version bêta. Pour utiliser cette option, utilisez la méthodeinstances.inset
(version bêta).RESTART_POLICY
: règle de redémarrage de cette VM,true
oufalse
Mettre à jour la stratégie de maintenance de l'hôte d'une VM
Console
Dans la console Google Cloud, accédez à la page Instances de VM.
Cliquez sur la VM dont vous souhaitez modifier les paramètres. La page des détails de la VM s'affiche.
Sur la page des détails de la VM, procédez comme suit :
- Cliquez sur le bouton Modifier en haut de la page.
- Sous Règles de disponibilité, mettez à jour les règles en fonction de vos besoins. Dans la section Règles de disponibilité, vous pouvez configurer les options Pendant la maintenance de l'hôte et Redémarrage automatique.
- Cliquez sur Enregistrer.
gcloud
Pour mettre à jour la stratégie de maintenance de l'hôte d'une VM existante, exécutez la commande gcloud compute instances set-scheduling
avec les mêmes paramètres et options que ceux utilisés dans la commande de création de VM ci-dessus.
gcloud compute instances set-scheduling VM_NAME \ --maintenance-policy=MAINTENANCE_POLICY \ --host-error-timeout-seconds=NUMBER_OF_SECONDS \ [--no-restart-on-failure | --restart-on-failure]
Remplacez les éléments suivants :
MAINTENANCE_POLICY
: règle définie pour cette VM,TERMINATE
ouMIGRATE
VM_NAME
: nom de la VMNUMBER_OF_SECONDS
: délai d'attente en secondes avant que Compute Engine ne redémarre une VM qui ne répond pas. Valeur comprise entre90
et330
, augmentant par incréments de 30. Cette option est disponible en version bêta. Pour utiliser cette option, exécutez la commandegcloud beta compute instances set-scheduling
.
API
Pour mettre à jour la stratégie de maintenance de l'hôte d'une VM existante, utilisez la méthode instances.setScheduling
.
Dans le corps de la requête, ajoutez onHostMaintenance
pour indiquer si la VM est migrée ou arrêtée lors de la maintenance de l'hôte. Les VM sont automatiquement configurées pour redémarrer après une erreur d'hôte, sauf si vous définissez automaticRestart
sur false
.
Pour spécifier la durée maximale pendant laquelle Compute Engine attend avant de redémarrer ou d'arrêter une VM après avoir détecté qu'elle ne répondait pas, ajoutez le paramètre hostErrorTimeoutSeconds
(Bêta) au corps de la requête.
Dans l'API, envoyez une requête POST
à l'URL suivante :
https://compute.googleapis.com/compute/v1/projects/PROJECT_IDt/zones/ZONE/instances/VM_NAME/setScheduling
Remplacez les éléments suivants :
PROJECT_ID
: projet dans lequel se trouve la VMZONE
: zone où se trouve la VMVM_NAME
: nom de la VM
Ajoutez les paramètres onHostMaintenance
, hostErrorTimeoutSeconds
et automaticRestart
dans le corps de la requête :
{ "onHostMaintenance": "MAINTENANCE_POLICY", "hostErrorTimeoutSeconds": NUMBER_OF_SECONDS, "automaticRestart": RESTART_POLICY }
Remplacez les éléments suivants :
MAINTENANCE_POLICY
: règle définie pour cette VM,TERMINATE
ouMIGRATE
NUMBER_OF_SECONDS
: délai d'attente en secondes avant que Compute Engine ne redémarre une VM qui ne répond pas. Valeur comprise entre90
et330
, augmentant par incréments de 30. Cette option est disponible en version bêta. Pour utiliser cette option, utilisez la méthodeinstances().setScheduling
(version bêta).RESTART_POLICY
: règle de redémarrage de cette VM,true
oufalse
Étape suivante
- En savoir plus sur la maintenance de l'hôte.
- En savoir plus sur la migration à chaud.
- Apprenez à détecter un événement de migration à chaud.