Ce document décrit les actions de suspension et d'arrêt sur les instances de machine virtuelle (VM) d'un groupe d'instances géré. Il explique également comment la suspension et l'arrêt de VM dans un MIG peuvent vous aider à réduire les coûts et à réduire le temps d'attente lorsque vous avez besoin de plus de VM dans le groupe.
Les MIG vous permettent de suspendre et d'arrêter des VM pour atteindre les objectifs suivants :
- Suspendez une application ou un service que vous n'utilisez pas pour réduire les coûts en ne payant pas les ressources de calcul.
- Accélérez le scaling horizontal des MIG en démarrant les VM pré-initialisées à partir du pool de secours de VM arrêtées et suspendues.
Cas d'utilisation
Les sections suivantes décrivent les cas d'utilisation types du pool de secours dans un MIG.
Suspendre une application ou un service
Vous pouvez suspendre ou arrêter des VM dans un MIG pour mettre en pause votre application et la réactiver si nécessaire, en fonction de vos contraintes en termes de calcul, d'heures de travail, de pic d'activité et de budget. Vous pouvez conserver les résultats de vos calculs actuels sur des disques persistants ou, dans le cas de VM suspendues, en mémoire.
Par exemple, vous pouvez suspendre ou arrêter les VM d'un MIG dans les scénarios suivants :
- Vous avez des charges de travail importantes en semaine et souhaitez suspendre les VM le week-end pour réduire les coûts.
- Vous disposez d'un environnement de test nécessaire lors des modifications de mise en œuvre et vous souhaitez l'arrêter lorsque vous ne développez pas activement.
Accélérer le scaling horizontal des groupes d'instances gérés
Vous pouvez laisser un pool de secours de VM pré-initialisées prêt à démarrer lorsque le MIG est redimensionné. Au lieu de créer des VM et d'attendre que votre application soit initialisée et prête à être exécutée, le MIG démarre ou reprend des VM à partir du pool de secours. Dans ce cas, l'initialisation de la VM est effectuée à l'avance, et non à un moment critique de l'augmentation de la charge.
Les pools de secours sont utiles pour les applications dont l'initialisation prend beaucoup de temps, par exemple dans les scénarios suivants :
- Les applications qui doivent télécharger du contenu à jour sur des disques persistants.
- les applications qui doivent mettre en cache du contenu supplémentaire en mémoire, via des téléchargements à partir d'un espace de stockage externe, de calculs locaux ou d'une combinaison des deux.
- les applications qui doivent installer de nouveaux logiciels lors de l'initialisation, tels que les nœuds Kubernetes.
Ressources conservées
Le tableau suivant présente les ressources qui sont conservées lorsque vous suspendez et arrêtez des VM dans un MIG.
Conservés | VM suspendue | VM arrêtée |
---|---|---|
Nom de la VM | ||
Adresse IP interne | ||
Adresse IP externe (éphémère) | ||
Adresse IP externe (statique*) | ||
Disques† | ||
Métadonnées | ||
Mémoire |
*Si vous souhaitez conserver une adresse IP externe lorsque vous arrêtez ou suspendez une VM dans un MIG, utilisez la configuration avec état d'un MIG pour convertir l'adresse IP externe en adresse IP statique.
†Si des disques SSD locaux sont associés à une VM, les données stockées sur ces disques ne sont pas conservées lorsque vous arrêtez ou suspendez la VM.
Comportement et configuration
Le pool de secours est constitué d'un pool arrêté de VM et d'un pool suspendu de VM. Toutes les VM arrêtées font partie du pool arrêté, et toutes les VM suspendues font partie du pool suspendu. Si vous avez configuré l'autoscaling dans un MIG, après la suspension ou l'arrêt d'une VM, celui-ci crée immédiatement des VM pour maintenir la taille recommandée du MIG.
Tailles cibles des pools suspendus et arrêtés
Comme c'est le cas du MIG, les pools arrêtés et suspendus possèdent eux aussi leur propre taille cible. Vous pouvez contrôler la taille cible du pool de secours de différentes manières :
- En configurant les valeurs des tailles cibles arrêtées et suspendues.
- En arrêtant et en suspendant manuellement les VM, ce qui modifie automatiquement les tailles cibles.
Lorsque vous modifiez les tailles cibles des pools arrêtés ou suspendus, le MIG se comporte comme suit :
- Lorsque vous augmentez la taille des pools suspendus ou arrêtés, le MIG crée des VM, attend que les VM soient initialisées, puis les suspend ou les arrête en conséquence. Pour les MIG régionaux, les VM sont créées conformément à la forme de distribution cible configurée.
- Lorsque vous réduisez la taille du pool suspendu ou du pool arrêté, le MIG sélectionne arbitrairement les VM suspendues ou arrêtées à supprimer.
- Lorsque vous modifiez la taille cible du MIG et la taille du pool suspendu ou arrêté simultanément, le MIG tente de réduire le nombre d'opérations requises pour appliquer vos modifications. Cela signifie que le MIG peut rétablir ou démarrer des VM à partir du pool de secours, ou suspendre ou arrêter certaines VM en cours d'exécution.
Règle de secours
La règle de secours définit le comportement du pool de secours en fonction des paramètres suivants que vous spécifiez :
- Mode : mode dans lequel le MIG utilise des VM suspendues et arrêtées. Il peut s'agir du mode
manual
ouscale-out-pool
. - Délai initial : durée pendant laquelle le MIG exécute une VM nouvellement créée avant de la suspendre ou de l'arrêter. Configurez le délai initial pour laisser suffisamment de temps à votre application pour s'initialiser et être prête à s'exécuter lors du rétablissement ou du démarrage de la VM.
Mode
Vous pouvez choisir comment gérer les pools de secours en définissant le mode de fonctionnement.
Il existe deux options : le mode manual
et le mode scale-out-pool
.
Mode manuel (par défaut)
En mode manuel, vous contrôlez entièrement les VM qui sont arrêtées et suspendues dans le MIG. Le mode manuel est le mode par défaut du pool de secours.
Le mode manuel est utile dans les cas suivants :
- Pour suspendre votre charge de travail et économiser sur les coûts des VM inactives.
- Pour intégrer le MIG à des autoscalers tiers nécessitant une gestion avancée de VM individuelles.
- Pour arrêter les VM sélectionnées à des fins de débogage.
En mode manuel, le MIG n'applique aucune automatisation au pool de secours :
- Lorsque vous ou l'autoscaler augmentez la taille cible du MIG, celui-ci ne démarre pas ou ne redémarre pas automatiquement les VM, mais en crée de nouvelles.
- Lorsque vous ou l'autoscaler diminuez la taille cible du MIG, celui-ci n'arrête pas et ne suspend pas automatiquement les VM en cours d'exécution, mais les supprime.
Mode "pool de scaling horizontal"
En mode "pool de scaling horizontal", le MIG utilise les VM des pools de secours pour accélérer le scaling en les rétablissant ou en les démarrant. Le MIG réapprovisionne ensuite automatiquement le pool de secours avec de nouvelles VM pour maintenir les tailles cibles.
Le mode "pool de scaling horizontal" est utile pour accélérer le scaling horizontal du groupe d'instances géré dans les cas suivants :
- Vous utilisez l'autoscaler Compute Engine.
- Vous utilisez des autoscalers tiers et souhaitez conserver l'intégration existante.
- Vous augmentez manuellement la taille cible des VM en cours d'exécution.
En mode "pool de scaling horizontal", le MIG se comporte comme suit :
Lorsque vous ou l'autoscaler augmentez la taille cible des VM en cours d'exécution dans le MIG, le MIG prend les mesures suivantes dans l'ordre suivant :
- Le MIG rétablit les VM suspendues si elles sont disponibles dans les zones dans lesquelles le MIG a défini un scaling horizontal.
- Après le rétablissement des VM suspendues, si la taille cible du MIG n'est pas encore atteinte, le MIG démarre les VM arrêtées, le cas échéant, dans les zones dans lesquelles le MIG a défini un scaling horizontal.
- Après le démarrage des VM, si la taille cible du MIG n'est toujours pas atteinte, le MIG crée des VM à partir de zéro.
Une fois que le pool de secours est utilisé pour accélérer le scaling horizontal, le MIG effectue les opérations suivantes :
- Cette création de VM vise à réapprovisionner le pool suspendu et le pool arrêté en fonction de leur taille cible, et conformément à la forme de distribution cible dans le cas d'un MIG régional.
- Les nouvelles VM sont mises à l'état d'exécution.
- Il suspend ou arrête les nouvelles VM après le délai initial.
Lorsque vous ou l'autoscaler diminuez la taille cible du MIG, celui-ci n'arrête pas ou ne suspend pas automatiquement les VM en cours d'exécution, mais les supprime.
Délai initial
Pour vous assurer que votre VM est correctement initialisée, spécifiez le délai initial dans la règle de secours. Le délai initial correspond au temps d'attente des VM avant leur arrêt ou leur suspension, après leur création. Cela laisse le temps à votre script d'initialisation de se terminer.
Le délai initial se produit dans les cas suivants :
- Une VM est créée avec l'état cible souhaité (
SUSPENDED
ouTERMINATED
). - Une instance existante à l'état
RUNNING
est suspendue ou arrêtée.
Dans les deux cas, l'instance est autorisée à s'initialiser avant d'être suspendue ou arrêtée.
Lorsque vous souhaitez utiliser un pool de secours pour accélérer le scaling horizontal à partir d'un MIG, nous vous recommandons de mesurer le temps nécessaire à votre application pour s'initialiser sur le type de machine sélectionné afin de vous assurer qu'il est suffisant pour permettre à votre application d'être complètement prête avant de la suspendre ou de l'arrêter. Sinon, le rétablissement ou le démarrage des VM à partir du pool de secours peut prendre plus de temps que la création de VM à partir de zéro.
État cible des VM dans les groupes d'instances gérés
Les MIG disposent d'une API déclarative. Cela signifie que vous déclarez l'état cible des VM dans le MIG, et que la requête API aboutit lorsque l'état cible est enregistré. Le MIG effectue ensuite les opérations nécessaires pour atteindre l'état cible. Vous pouvez vérifier l'action en cours et l'état actuel de toutes les VM à l'aide de l'API.
La suspension et l'arrêt des VM dans un MIG fonctionnent selon le même principe déclaratif. Lorsque vous envoyez une requête de suspension ou d'arrêt de VM, le MIG stocke les informations sur l'état cible de chaque VM et lance les opérations nécessaires pour l'atteindre.
Lorsque vous listez les VM gérées dans un MIG, vous pouvez voir le champ targetStatus
.
Il décrit l'état final d'une VM lorsque le MIG est stable.
Il peut correspondre à l'une des valeurs suivantes :
RUNNING
STOPPED
SUSPENDED
Les VM d'un MIG peuvent avoir les mêmes états de cycle de vie que les VM uniques.
Voici des exemples d'opérations possibles sur un groupe d'instances géré, ainsi que les valeurs associées du champ targetStatus
:
- Création de VM et suspension après l'initialisation.
- État cible de la VM :
SUSPENDED
.
- État cible de la VM :
- Réactivation d'une VM précédemment suspendue.
- État cible de la VM :
RUNNING
- État cible de la VM :
- Arrêt d'une VM qui était en cours d'exécution.
- État cible de la VM :
STOPPED
- État cible de la VM :
- Démarrage d'une VM précédemment arrêtée.
- État cible de la VM :
RUNNING
- État cible de la VM :
Limites
- Les limites suivantes concernant la suspension des VM autonomes s'appliquent également à la suspension des VM dans un MIG :
- Vous ne pouvez pas suspendre une instance qui utilise un GPU.
- Vous ne pouvez pas suspendre une instance Bare Metal.
- Vous ne pouvez pas suspendre une instance à l'aide des processus standards intégrés à l'environnement invité. Certaines commandes, telles que la commande
systemctl suspend
dans Ubuntu 16.04 ou version ultérieure, ne sont pas disponibles. Le signal en mode invité est ignoré. - Vous ne pouvez suspendre une instance que pendant une durée maximale de 60 jours avant l'arrêt automatique de la VM.
- Vous ne pouvez pas suspendre des instances disposant de plus de 208 Go de mémoire.
- Vous pouvez suspendre des instances préemptives, mais celles-ci peuvent être arrêtées avant d'être correctement suspendues.
- Vous ne pouvez pas suspendre une Confidential VM.
- Vous ne pouvez pas suspendre une VM associée à des disques protégés par une CSEK.
- Dans un MIG régional avec une forme de distribution cible
EVEN
et la redistribution d'instances activée, vous ne pouvez pas suspendre, arrêter, reprendre ni démarrer des VM spécifiques dans le groupe. Pour gérer un pool de secours, définissez les tailles cibles du pool suspendu et du pool arrêté. - Vous ne pouvez pas définir le pool en mode de scaling horizontal si vous avez configuré un deuxième modèle d'instance pour la mise à jour Canary dans le MIG.
- Vous ne pouvez pas suspendre ni arrêter des VM dans un MIG si vous avez désactivé les réparations dans le MIG.
- Vous ne pouvez suspendre une instance que pendant une durée maximale de 60 jours avant l'arrêt automatique de la VM.
Tarifs
Chaque VM arrêtée et suspendue est facturée pour les éléments suivants :
- Toute utilisation de disque persistant pour le disque de démarrage, et tous les disques supplémentaires associés à la VM. Pour en savoir plus, consultez la section Tarifs des disques persistants.
- Toutes les adresses IP statiques associées à la VM. Pour en savoir plus, consultez la section Tarifs des adresses IP.
- Dans le cas des VM suspendues, la mémoire de la VM et l'état de l'appareil. Pour en savoir plus, consultez la section Tarifs des instances de VM.
Étape suivante
- Découvrez comment suspendre ou arrêter manuellement des VM dans un MIG.
- Découvrez comment accélérer le scaling horizontal avec des VM suspendues et arrêtées.
- Obtenez davantage d'informations sur les mises à jour des VM suspendues et arrêtées.