Ce document explique comment arrêter automatiquement des machines virtuelles (VM) dans un groupe d'instances géré (MIG) en spécifiant un délai pour les VM. Il décrit également le fonctionnement du délai pour les VM dans un MIG.
Vous pouvez optimiser les charges de travail temporaires en spécifiant un délai pour les VM d'un MIG. Lorsqu'une VM atteint son délai d'expiration, le groupe d'instances géré arrête automatiquement cette VM (la supprime). Limiter la durée d'exécution des VM d'un MIG par une limite de temps permet de minimiser les coûts et de libérer des quotas.
Pour en savoir plus sur la spécification d'une limite de temps pour une VM autonome, consultez la section Limiter la durée d'exécution d'une VM. Si vous souhaitez qu'un MIG ajoute ou supprime automatiquement des VM en fonction de vos charges de travail, consultez la page Procéder à l'autoscaling de groupes d'instances.
Avant de commencer
-
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 :
Select the tab for how you plan to use the samples on this page:
Console
When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.
gcloud
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Durée maximale d'exécution
- Délai en tant qu'heure de fin
Créez un modèle d'instance avec une durée d'exécution pour les VM ou avec une heure d'arrêt pour les VM.
Utilisez le modèle d'instance pour créer un groupe d'instances géré ou mettre à jour un MIG existant.
Lorsque vous créez un modèle d'instance pour spécifier une limite de temps pour les VM d'un MIG, les limites suivantes s'appliquent:
- Vous ne pouvez pas définir l'action d'arrêt sur
STOP
. Les MIG ne sont compatibles qu'avecDELETE
. - Vous ne pouvez pas utiliser de VM Spot.
- Vous ne pouvez pas définir l'action d'arrêt sur
Vous ne pouvez pas créer de requête de redimensionnement dans un MIG qui utilise un modèle d'instance qui limite le temps d'exécution de la VM.
Vous ne pouvez pas limiter la durée d'exécution des VM dans un MIG régional avec la forme de distribution cible
EVEN
et la redistribution proactive des instances activées.Dans la console Google Cloud, accédez à la page Modèles d'instances.
Cliquez sur Créer un modèle d'instance.
Sélectionnez l'emplacement comme suit :
- Si vous souhaitez utiliser le modèle d'instance dans plusieurs régions, sélectionnez Global.
- Si vous souhaitez réduire la dépendance interrégionale, sélectionnez Régional.
Si vous avez choisi régional, sélectionnez la région dans laquelle vous souhaitez créer votre modèle d'instance.
Dans la section Règles de disponibilité, développez Paramètres avancés du modèle de provisionnement de VM.
Cochez la case Définir un délai pour la VM.
Dans le champ Type de délai, sélectionnez Par heure (par défaut) pour spécifier le délai sous la forme d'une durée. Dans le champ suivant, saisissez la durée en heures.
Dans la liste À l'arrêt de la VM, sélectionnez Supprimer.
Pour les autres champs, acceptez les valeurs par défaut ou modifiez-les si nécessaire.
Cliquez sur Créer.
INSTANCE_TEMPLATE_NAME
: nom du modèle d'instance.DURATION
: durée d'exécution des VM demandée. Le MIG supprime automatiquement la VM après la durée spécifiée.Formatez la durée en nombre de jours, d'heures, de minutes et de secondes, suivis respectivement de
d
,h
,m
ets
. Par exemple, spécifiez30m
pour définir une durée de 30 minutes ou1d2h3m4s
pour une durée d'un jour, deux heures, trois minutes et quatre secondes. La durée minimale est de 30 secondes (30s
) et la durée maximale est de 120 jours (120d
).PROJECT_ID
: ID du projet dans lequel vous souhaitez créer le modèle d'instance.INSTANCE_TEMPLATE_NAME
: nom du modèle d'instance.MACHINE_TYPE
: type de machine prédéfini ou personnalisé pour les VM du groupe.IMAGE_PROJECT
: projet contenant l'image, par exemple,debian-cloud
.IMAGE
ouIMAGE_FAMILY
: spécifiez l'un des éléments suivants :IMAGE
: version spécifique de l'image de l'OS. Exemple :debian-10-buster-v20200309
.IMAGE_FAMILY
: famille d'images. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiezdebian-10
, la dernière version de la famille d'images Debian 10 est utilisée.
DURATION
: durée d'exécution des VM demandée. Le MIG supprime automatiquement la VM après la durée spécifiée.Formatez la durée en nombre de jours, d'heures, de minutes et de secondes, suivis respectivement de
d
,h
,m
ets
. Par exemple, spécifiez30m
pour définir une durée de 30 minutes ou1d2h3m4s
pour une durée d'un jour, deux heures, trois minutes et quatre secondes. La durée minimale est de 30 secondes (30s
) et la durée maximale est de 120 jours (120d
).Dans la console Google Cloud, accédez à la page Modèles d'instances.
Cliquez sur Créer un modèle d'instance.
Sélectionnez l'emplacement comme suit :
- Si vous souhaitez utiliser le modèle d'instance dans plusieurs régions, sélectionnez Global.
- Si vous souhaitez réduire la dépendance interrégionale, sélectionnez Régional.
Si vous avez choisi régional, sélectionnez la région dans laquelle vous souhaitez créer votre modèle d'instance.
Dans la section Règles de disponibilité, développez Paramètres avancés du modèle de provisionnement de VM.
Dans le champ Type de délai, sélectionnez Par date pour spécifier le délai sous la forme d'un code temporel (date et heure). Dans le champ suivant, cliquez sur
Sélectionner une date et une heure, puis sélectionnez la date, l'heure et le fuseau horaire pour l'arrêt automatique.Dans la liste À l'arrêt de la VM, sélectionnez Supprimer.
Pour les autres champs, acceptez les valeurs par défaut ou modifiez-les si nécessaire.
Cliquez sur Créer.
INSTANCE_TEMPLATE_NAME
: nom du modèle d'instance.TIME
: heure à laquelle cette VM doit être arrêtée automatiquement. L'heure que vous spécifiez doit être une heure à venir, comprise entre 30 secondes et 120 jours par rapport à l'heure active. Formatez l'heure sous la forme d'un code temporel RFC 3339 :YYYY-MM-DDTHH:MM:SSOFFSET
Remplacez les éléments suivants :
YYYY-MM-DD
: date respectant la syntaxe année (valeur à quatre chiffres), mois à deux chiffres et jour à deux chiffres du mois, séparés par des traits d'union.HH:MM:SS
: heure respectant la syntaxe heures au format 2 chiffres sur 24 heures, minutes à deux chiffres et secondes à deux chiffres, séparés par des signes deux-points.OFFSET
: fuseau horaire mis en forme en tant que décalage par rapport au temps universel coordonné (UTC). Par exemple, pour utiliser l'heure normale du Pacifique (PST), soit huit heures avant l'heure UTC, spécifiez-08:00
. Pour utiliser un décalage (UTC+0), spécifiezZ
.
PROJECT_ID
: ID du projet dans lequel vous souhaitez créer le modèle d'instance.INSTANCE_TEMPLATE_NAME
: nom du modèle d'instance.MACHINE_TYPE
: type de machine prédéfini ou personnalisé pour les VM du groupe.IMAGE_PROJECT
: projet contenant l'image, par exemple,debian-cloud
.IMAGE
ouIMAGE_FAMILY
: spécifiez l'un des éléments suivants :IMAGE
: version spécifique de l'image de l'OS. Exemple :debian-10-buster-v20200309
.IMAGE_FAMILY
: famille d'images. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiezdebian-10
, la dernière version de la famille d'images Debian 10 est utilisée.
TIME
: heure à laquelle cette VM doit être arrêtée automatiquement. L'heure que vous spécifiez doit être une heure à venir, comprise entre 30 secondes et 120 jours par rapport à l'heure active. Formatez l'heure sous la forme d'un code temporel RFC 3339 :YYYY-MM-DDTHH:MM:SSOFFSET
Remplacez les éléments suivants :
YYYY-MM-DD
: date respectant la syntaxe année (valeur à quatre chiffres), mois à deux chiffres et jour à deux chiffres du mois, séparés par des traits d'union.HH:MM:SS
: heure respectant la syntaxe heures au format 2 chiffres sur 24 heures, minutes à deux chiffres et secondes à deux chiffres, séparés par des signes deux-points.OFFSET
: fuseau horaire mis en forme en tant que décalage par rapport au temps universel coordonné (UTC). Par exemple, pour utiliser l'heure normale du Pacifique (PST), soit huit heures avant l'heure UTC, spécifiez-08:00
. Pour utiliser un décalage (UTC+0), spécifiezZ
.
Durée maximale d'exécution (
maxRunDuration
):terminationTimestamp
d'une VM = dernière création ou heure de début de la VM +maxRunDuration
Lorsque vous spécifiez une durée, l'horodatage de fin est défini par rapport à la dernière heure de création ou de début de la VM. Si la VM est recréée, redémarrée, réactivée ou remplacée, l'horodatage de fin est recalculé. L'horodatage de fin peut varier entre les VM d'un MIG en fonction de l'heure de la dernière création ou du démarrage de chaque VM. Par exemple, si une VM est réparée, son horodatage de fin est recalculé en ajoutant la durée à l'heure à laquelle la VM a été recréée lors de la réparation.
Délai en tant qu'heure de fin (
terminationTime
):terminationTimestamp
d'une VM =terminationTime
Lorsque vous spécifiez une heure, l'horodatage de fin est défini sur cette heure, à condition que cette heure soit postérieure à l'heure actuelle. Si l'heure d'arrêt est passée, toute action de MIG qui tente de créer, de redémarrer ou de remplacer une VM échoue avec une erreur. Pour résoudre ce type d'erreur, vous devez créer un modèle d'instance avec une heure de fin dans le futur et appliquer ce modèle au MIG. Si vous souhaitez utiliser les propriétés du modèle existant dans le nouveau modèle, créez un modèle d'instance basé sur le modèle existant.
- Découvrez les scénarios de base pour créer des MIG.
- Découvrez comment appliquer un nouveau modèle d'instance à un MIG existant.
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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud.
Limiter la durée d'exécution des VM d'un MIG
Vous pouvez limiter la durée d'exécution des VM d'un MIG en spécifiant une limite de temps dans le modèle d'instance utilisé pour le MIG. Lorsque le MIG crée des VM basées sur le modèle, le délai avant expiration est appliqué à chaque VM.
Vous pouvez spécifier l'un des deux types de limites de temps suivants:
Pour spécifier une limite de temps pour les VM d'un MIG, procédez comme suit:
Limites
Créer un modèle d'instance avec une durée d'exécution pour les VM
Pour arrêter automatiquement les VM d'un MIG après leur exécution pendant une certaine durée, définissez une durée d'exécution maximale (
maxRunDuration
) dans le modèle d'instance.Console
gcloud
Exécutez la commande bêta
instance-templates create
. Pour supprimer automatiquement des VM après une certaine durée, incluez l'option--max-run-duration
et définissez l'option--instance-termination-action
surDELETE
comme suit:gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --max-run-duration=DURATION \ --instance-termination-action=DELETE
Remplacez les éléments suivants :
REST
Utilisez la méthode
instanceTemplates.insert
en version bêta. Pour supprimer automatiquement des VM après une certaine durée, incluez le champmaxRunDuration
et définissez le champinstanceTerminationAction
surDELETE
comme suit:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default", "accessConfigs": [ { "name": "external-IP", "type": "ONE_TO_ONE_NAT" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ] "scheduling": { "maxRunDuration": { "seconds": DURATION }, "instanceTerminationAction": "DELETE" } } }
Remplacez les éléments suivants :
Créer un modèle d'instance avec une heure d'arrêt pour les VM
Pour arrêter automatiquement les VM d'un MIG à une heure spécifique, définissez une heure d'arrêt (
terminationTime
) dans le modèle d'instance. Vous pouvez définir une date et une heure auxquelles vous souhaitez qu'un MIG arrête les VM.Console
gcloud
Exécutez la commande bêta
instance-templates create
. Pour supprimer automatiquement des VM à une heure spécifique, incluez l'option--termination-time
et définissez l'option--instance-termination-action
surDELETE
comme suit:gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \ --termination-time=TIME \ --instance-termination-action=DELETE
Remplacez les éléments suivants :
REST
Utilisez la méthode
instanceTemplates.insert
en version bêta. Pour supprimer automatiquement des VM à une heure spécifique, incluez le champterminationTime
et définissez le champinstanceTerminationAction
surDELETE
comme suit:POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/global/instanceTemplates { "name": "INSTANCE_TEMPLATE_NAME", "properties": { "machineType": "MACHINE_TYPE", "networkInterfaces": [ { "network": "global/networks/default", "accessConfigs": [ { "name": "external-IP", "type": "ONE_TO_ONE_NAT" } ] } ], "disks": [ { "type": "PERSISTENT", "boot": true, "mode": "READ_WRITE", "initializeParams": { "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE" } } ] "scheduling": { "terminationTime": TIME, "instanceTerminationAction": "DELETE" } } }
Remplacez les éléments suivants :
Fonctionnement d'une limite de temps pour les VM d'un MIG
Lorsque vous spécifiez une limite de temps pour les VM d'un MIG, l'heure à laquelle un MIG arrête une VM est automatiquement définie dans le champ d'horodatage de fin (
terminationTimestamp
) de la VM.Selon le type de délai spécifié, l'horodatage de fin d'une VM est défini comme suit:
Lors d'une actualisation de VM, l'horodatage de fin ne change pas. Par exemple, si vous définissez le niveau de perturbation pour les mises à jour de
REFRESH
, l'horodatage de fin est conservé chaque fois que le MIG met à jour la VM.Lorsque vous suspendez ou arrêtez une VM dans un MIG, l'horodatage de fin est automatiquement effacé, quel que soit le type de délai. Lorsque vous réactivez ou démarrez une VM, l'horodatage de fin est défini à nouveau en fonction du type de délai, comme expliqué précédemment dans cette section.
Fonctionnement de l'autoscaling lorsqu'une limite de temps est définie
L'autoscaling permet à votre MIG d'ajouter ou de supprimer automatiquement des VM en fonction de l'augmentation ou de la diminution de la charge. Lorsqu'un MIG supprime des VM qui ont atteint leurs horodatages de fin, il crée des VM pour conserver la taille recommandée par l'autoscaler. Les nouvelles VM s'exécutent pendant le délai spécifié. Si la recommandation de l'autoscaler consiste à réduire le nombre de VM, le MIG les supprime avant même qu'elles n'atteignent leurs limites de temps.
Si vous avez configuré des planifications de scaling, les VM ne s'exécutent que jusqu'à la fin d'une planification ou jusqu'à ce qu'une VM atteigne son horodatage de fin, selon l'événement qui se produit en premier.
Étapes suivantes
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2024/11/22 (UTC).
-