Ce document explique comment utiliser le mode groupé dans un MIG pour créer en même temps toutes les instances de machine virtuelle (VM) dont vous avez besoin. La création d'instances en une seule fois garantit que le MIG ne crée des instances que lorsque toutes les ressources nécessaires sont disponibles.
Pour en savoir plus sur le mode groupé, consultez À propos de la création groupée d'instances dans un MIG.
Créer un modèle d'instance
Le mode groupé dans les MIG n'est compatible qu'avec les modèles d'instance qui spécifient un modèle de provisionnement lié à une réservation ou à un démarrage flexible. Pour utiliser le mode groupé, créez un modèle d'instance à l'aide de l'un de ces modèles de provisionnement, comme décrit dans les sections suivantes. Pour en savoir plus sur les modèles de provisionnement, consultez Modèles de provisionnement des instances Compute Engine.
Utiliser le modèle de provisionnement lié à une réservation
Pour créer un modèle d'instance, sélectionnez l'une des options suivantes :
Console
Dans la console Google Cloud , accédez à la page Modèles d'instances.
Cliquez sur Créer un modèle d'instance. La page Créer un modèle d'instance s'ouvre.
Dans le champ Nom, saisissez un nom pour le modèle d'instance.
Dans la section Emplacement, sélectionnez l'une des options suivantes :
Pour créer un modèle d'instance régional, sélectionnez Régional (recommandé), puis sélectionnez la région dans laquelle créer le modèle.
Pour créer un modèle d'instance global, sélectionnez Global.
Dans la section Configuration de la machine, spécifiez un type de machine.
Dans la section Modèle de provisionnement, procédez comme suit :
Développez Paramètres avancés du modèle de provisionnement de la VM.
Dans la liste À l'arrêt de la VM, sélectionnez Supprimer.
Facultatif : pour modifier le type ou l'image de disque de démarrage par défaut, cliquez sur Modifier dans la section Disque de démarrage. Suivez ensuite les instructions pour modifier le disque de démarrage.
Développez la section Options avancées et procédez comme suit :
Développez la section Gestion.
Dans la section Réservations, sélectionnez Choisir une réservation, puis cliquez sur Choisir une réservation. Dans le volet qui s'affiche, suivez les instructions pour sélectionner la réservation que vous souhaitez utiliser.
Cliquez sur Créer.
gcloud
Pour créer un modèle d'instance, utilisez la commande instance-templates create avec les paramètres d'indicateur suivants :
L'option
--instance-termination-actionest définie surDELETE.L'option
--maintenance-policyest définie surTERMINATE.L'option
--provisioning-modelest définie surRESERVATION_BOUND.L'option
--reservation-affinityest définie surspecific.L'indicateur
--reservation
L'exemple de commande suivant crée un modèle d'instance régional. Si vous souhaitez créer un modèle d'instance global, utilisez la même commande sans le flag --instance-template-region.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY \
--instance-termination-action=DELETE \
--instance-template-region=REGION \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--provisioning-model=RESERVATION_BOUND \
--reservation-affinity=specific \
--reservation=RESERVATION_URL
Remplacez les éléments suivants :
INSTANCE_TEMPLATE_NAME: nom du modèle d'instance à créer.IMAGE_PROJECT: projet contenant l'image, par exemple,debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.IMAGE_FAMILY: famille d'images. Spécifiez une famille d'images pour utiliser l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiezdebian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.REGION: région dans laquelle créer le modèle d'instance.MACHINE_TYPE: type de machine spécifié dans la réservation que vous souhaitez utiliser.RESERVATION_URL: URL de la réservation créée automatiquement pour une réservation future en mode Agenda que vous souhaitez utiliser. Spécifiez une des valeurs suivantes :Si la réservation créée automatiquement existe dans votre projet :
RESERVATION_NAME.Si la réservation créée automatiquement existe dans un autre projet :
projects/PROJECT_ID/reservations/RESERVATION_NAME.
REST
Pour créer un modèle d'instance, envoyez une requête POST à l'une des méthodes suivantes :
Pour créer un modèle d'instance régional : méthode
regionInstanceTemplates.insertPour créer un modèle d'instance global : méthode
instanceTemplates.insert
Dans le corps de la requête, incluez les champs suivants :
Le champ
reservationAffinity.consumeReservationTypeest défini surSPECIFIC_RESERVATION.Le champ
reservationAffinity.keyest défini surcompute.googleapis.com/reservation-name.Le champ
reservationAffinity.valuesdéfini sur l'URL de la réservation créée automatiquement.Le champ
scheduling.instanceTerminationActiondéfini surDELETE.Le champ
scheduling.onHostMaintenancedéfini surTERMINATE.Le champ
scheduling.provisioningModeldéfini surRESERVATION_BOUND.
Par exemple, pour créer un modèle d'instance régional, envoyez une requête comme suit :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"machineType": "MACHINE_TYPE",
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"reservationAffinity": {
"consumeReservationType": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION_URL"
]
},
"scheduling": {
"instanceTerminationAction": "DELETE",
"onHostMaintenance": "TERMINATE",
"provisioningModel": "RESERVATION_BOUND"
}
}
}
Remplacez les éléments suivants :
PROJECT_ID: ID du projet dans lequel créer le modèle d'instance.REGION: région dans laquelle créer le modèle d'instance.INSTANCE_TEMPLATE_NAME: nom du modèle d'instance à créer.IMAGE_PROJECT: projet contenant l'image, par exemple,debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.IMAGE: spécifiez l'une des options suivantes :Une version spécifique de l'image de l'OS. Exemple :
debian-12-bookworm-v20240617.Une famille d'images, qui doit être au format
family/IMAGE_FAMILY. Spécifiez une famille d'images pour utiliser l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiezfamily/debian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez Bonnes pratiques pour les familles d'images.
MACHINE_TYPE: type de machine spécifié dans la réservation que vous souhaitez consommer.RESERVATION_URL: URL de la réservation créée automatiquement pour une réservation future en mode Agenda que vous souhaitez utiliser. Spécifiez une des valeurs suivantes :Si la réservation créée automatiquement existe dans votre projet :
RESERVATION_NAMESi la réservation créée automatiquement existe dans un autre projet :
projects/PROJECT_ID/reservations/RESERVATION_NAME
Pour en savoir plus sur la création d'un modèle d'instance, consultez la section Créer des modèles d'instances.
Utiliser le modèle de provisionnement "démarrage flexible"
Pour créer un modèle d'instance, sélectionnez l'une des options suivantes :
Console
Dans la console Google Cloud , accédez à la page Modèles d'instances.
Cliquez sur Créer un modèle d'instance. La page Créer un modèle d'instance s'ouvre.
Dans le champ Nom, saisissez un nom pour le modèle d'instance.
Dans la section Emplacement, sélectionnez l'une des options suivantes :
Pour créer un modèle d'instance régional, sélectionnez Régional (recommandé), puis sélectionnez la région dans laquelle créer le modèle.
Pour créer un modèle d'instance global, sélectionnez Global.
Dans la section Configuration de la machine, spécifiez un type de machine.
Dans la section Modèle de provisionnement, procédez comme suit :
Dans le champ Modèle de provisionnement de VM, sélectionnez Démarrage flexible.
Développez Paramètres avancés du modèle de provisionnement de la VM.
Cochez la case Définir une limite de temps pour la VM.
Pour définir une durée d'exécution pour les VM créées à l'aide du modèle d'instance, saisissez le nombre d'heures dans le champ Saisissez le nombre d'heures. La valeur doit être comprise entre 36 secondes (
0.01) et sept jours (168).
Facultatif : pour modifier le type ou l'image de disque de démarrage par défaut, cliquez sur Modifier dans la section Disque de démarrage. Suivez ensuite les instructions pour modifier le disque de démarrage.
Cliquez sur Créer.
gcloud
Pour créer un modèle d'instance, utilisez la commande instance-templates create avec les paramètres d'indicateur suivants :
L'option
--instance-termination-actionest définie surDELETE.L'option
--maintenance-policyest définie surTERMINATE.L'indicateur
--max-run-durationL'option
--provisioning-modelest définie surFLEX_START.L'option
--reservation-affinityest définie surnone.
L'exemple de commande suivant crée un modèle d'instance régional. Si vous souhaitez créer un modèle d'instance global, utilisez la même commande sans le flag --instance-template-region.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY \
--instance-template-region=REGION \
--instance-termination-action=DELETE \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--max-run-duration=RUN_DURATION \
--provisioning-model=FLEX_START \
--reservation-affinity=none
Remplacez les éléments suivants :
INSTANCE_TEMPLATE_NAME: nom du modèle d'instance à créer.IMAGE_PROJECT: projet contenant l'image, par exemple,debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.IMAGE_FAMILY: famille d'images. Spécifiez une famille d'images pour utiliser l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiezdebian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez la page Bonnes pratiques concernant les familles d'images.REGION: région dans laquelle créer le modèle d'instance.MACHINE_TYPE: type de machine à utiliser pour les VM à démarrage flexible. Si vous spécifiez un type de machine N1, vous devez inclure l'option--acceleratorpour définir le nombre et le type de GPU à associer à vos VM.RUN_DURATION: durée d'exécution des VM demandées. Vous devez formater la valeur en nombre de jours, d'heures, de minutes ou de secondes, suivis respectivement ded,h,mets. Par exemple, spécifiez30mpour 30 minutes ou1d2h3m4spour un jour, deux heures, trois minutes et quatre secondes. Cette valeur doit être comprise entre 10 minutes et 7 jours.
REST
Pour créer un modèle d'instance, envoyez une requête POST à l'une des méthodes suivantes :
Pour créer un modèle d'instance régional : méthode
regionInstanceTemplates.insertPour créer un modèle d'instance global : méthode
instanceTemplates.insert
Dans le corps de la requête, incluez les champs suivants :
Le champ
reservationAffinity.consumeReservationTypeest défini surNO_RESERVATION.Le champ
scheduling.instanceTerminationActiondéfini surDELETE.Le champ
scheduling.maxRunDuration.Le champ
scheduling.onHostMaintenancedéfini surTERMINATE.Le champ
scheduling.provisioningModeldéfini surFLEX_START.
L'exemple de requête suivant crée un modèle d'instance régional :
POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
"name": "INSTANCE_TEMPLATE_NAME",
"properties": {
"disks": [
{
"boot": true,
"initializeParams": {
"sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
}
}
],
"machineType": "MACHINE_TYPE",
"networkInterfaces": [
{
"network": "global/networks/default"
}
],
"reservationAffinity": {
"consumeReservationType": "NO_RESERVATION"
},
"scheduling": {
"instanceTerminationAction": "DELETE",
"maxRunDuration": {
"seconds": RUN_DURATION
},
"onHostMaintenance": "TERMINATE",
"provisioningModel": "FLEX_START"
}
}
}
Remplacez les éléments suivants :
PROJECT_ID: ID du projet dans lequel créer le modèle d'instance.REGION: région dans laquelle créer le modèle d'instance.INSTANCE_TEMPLATE_NAME: nom du modèle d'instance à créer.IMAGE_PROJECT: projet contenant l'image, par exemple,debian-cloud. Pour en savoir plus sur les projets d'image compatibles, consultez la page Images publiques.IMAGE: spécifiez l'une des options suivantes :Une version spécifique de l'image de l'OS. Exemple :
debian-12-bookworm-v20240617.Une famille d'images, qui doit être au format
family/IMAGE_FAMILY. Spécifiez une famille d'images pour utiliser l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiezfamily/debian-12, la dernière version de la famille d'images Debian 12 est utilisée. Pour en savoir plus sur l'utilisation des familles d'images, consultez Bonnes pratiques pour les familles d'images.
MACHINE_TYPE: type de machine à utiliser pour les VM. Si vous spécifiez un type de machine N1, vous devez inclure le champguestAcceleratorspour définir le nombre et le type de GPU à associer à vos VM.RUN_DURATION: durée, en secondes, pendant laquelle vous souhaitez que les VM demandées s'exécutent. La valeur doit être comprise entre600, soit 600 secondes (10 minutes), et604800, soit 604 800 secondes (7 jours).
Pour en savoir plus sur la création d'un modèle d'instance, consultez la section Créer des modèles d'instances.
Créer un MIG utilisant le mode groupé
Pour activer la création groupée d'instances dans un MIG, définissez le champ targetSizePolicy.mode sur BULK dans la configuration du MIG. Lorsque vous utilisez ce mode groupé, le MIG attend que toutes les ressources soient disponibles, puis crée les instances en une seule fois.
Console
Accédez à la page Groupes d'instances.
Cliquez sur Créer un groupe d'instances. La page Créer un groupe d'instances s'ouvre.
Dans le champ Nom, saisissez un nom pour le MIG.
Avant de sélectionner un modèle d'instance, vous devez effectuer les opérations suivantes :
- Si vous utilisez le modèle de provisionnement Démarrage flexible, vous devez désactiver les réparations comme suit :
- Dans la section Cycle de vie des instances de VM, décochez la case Autoriser la réparation des VM dans une autre zone.
- Dans la liste Action par défaut en cas d'échec, sélectionnez Aucune action.
- Dans la section Emplacement, procédez comme suit :
- Pour créer un MIG zonal, sélectionnez Zone unique.
- Pour créer un MIG régional, sélectionnez Plusieurs zones. Dans Forme de distribution cible, sélectionnez Une des zones. Dans la boîte de dialogue qui s'affiche, sélectionnez Désactiver la redistribution des instances.
- Si vous utilisez le modèle de provisionnement Démarrage flexible, vous devez désactiver les réparations comme suit :
Revenez au champ Modèle d'instance. Dans la liste Modèle d'instance, sélectionnez le modèle d'instance que vous avez créé dans la section précédente.
Dans le champ Nombre d'instances, spécifiez le nombre d'instances que vous souhaitez créer simultanément.
Cochez la case Obtenir toutes les VM à la fois à l'aide d'une règle de taille cible groupée.
Cliquez sur Créer.
gcloud
Pour créer un MIG pour lequel la création groupée est activée, utilisez la commande gcloud compute instance-groups managed create avec l'option --target-size-policy-mode définie sur bulk.
Si vous utilisez le modèle de provisionnement à démarrage flexible, vous devez désactiver les réparations dans le MIG en incluant l'option --default-action-on-vm-failure=do-nothing dans les commandes suivantes.
- Pour créer un MIG zonal, exécutez la commande suivante :
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
--size=SIZE \
--target-size-policy-mode=bulk \
--template=INSTANCE_TEMPLATE_URL \
--zone=ZONE \
- Pour créer un MIG régional, exécutez la commande suivante :
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
--size=SIZE \
--target-size-policy-mode=bulk \
--template=INSTANCE_TEMPLATE_URL \
--zones=LIST_OF_ZONES \
Remplacez les éléments suivants :
INSTANCE_GROUP_NAME: nom du MIG.SIZE: nombre d'instances dans le MIG.INSTANCE_TEMPLATE_URL: URL du modèle d'instance que vous souhaitez utiliser pour créer des instances dans le MIG. L'URL peut contenir l'ID ou le nom du modèle d'instance. Spécifiez une des valeurs suivantes :- Pour un modèle d'instance régional :
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Pour un modèle d'instance global :
INSTANCE_TEMPLATE_ID
- Pour un modèle d'instance régional :
ZONE: zone dans laquelle le MIG crée des instances.LIST_OF_ZONES: liste des zones, séparées par une virgule, dans lesquelles le MIG régional crée des instances. Exemple :us-central1-a, us-central1-b, us-central1-c.
REST
Pour créer un MIG pour lequel la création groupée est activée, envoyez une requête POST comme suit. Dans le corps de la requête, définissez le champ targetSizePolicy.mode sur bulk.
Si vous utilisez le modèle de provisionnement à démarrage flexible, vous devez désactiver les réparations dans le MIG en incluant le champ "instanceLifecyclePolicy": {"defaultActionOnFailure": "DO_NOTHING"} dans les requêtes suivantes.
Pour créer un MIG zonal, envoyez une requête
POSTà la méthodeinstanceGroupManagers.insert.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "targetSize": SIZE, "targetSizePolicy": { "mode": "bulk" }, "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ] }Pour créer un MIG régional, envoyez une requête
POSTà la méthoderegionInstanceGroupManagers.insert.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "targetSize": SIZE, "targetSizePolicy": { "mode": "bulk" }, "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ] }
Remplacez les éléments suivants :
PROJECT_ID: ID du projet.ZONE: zone dans laquelle le MIG crée des instances.REGION: région dans laquelle le MIG crée des instances.INSTANCE_GROUP_NAME: nom du MIG.SIZE: nombre d'instances dans le MIG.INSTANCE_TEMPLATE_URL: URL du modèle d'instance que vous souhaitez utiliser pour créer des instances dans le MIG. L'URL peut contenir l'ID ou le nom du modèle d'instance. Spécifiez une des valeurs suivantes :- Pour un modèle d'instance régional :
projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID - Pour un modèle d'instance global :
INSTANCE_TEMPLATE_ID
- Pour un modèle d'instance régional :
Ajouter ou supprimer des instances
Dans un MIG qui utilise le mode groupé, vous pouvez ajouter ou supprimer des instances en augmentant ou en diminuant manuellement la taille cible du MIG.
Ajouter des instances : lorsque vous augmentez la taille cible à partir de zéro, le MIG ajoute des instances de la même manière que lors de la création d'un MIG. Vous pouvez également créer des instances avec des noms spécifiques à l'aide de la méthode
createInstanceslorsqu'il n'y a aucune instance dans le MIG. Pour créer des instances avec des noms spécifiques, consultez Créer des instances avec des noms spécifiques dans les MIG.Supprimer des instances : lorsque vous définissez la taille cible sur zéro, le MIG supprime toutes les instances existantes du groupe et annule toute opération de création en cours. Vous pouvez supprimer des instances en réduisant la taille cible à
0. Pour réduire la taille à une valeur non nulle, le MIG ne doit pas avoir d'opération d'instance groupée en cours (bulkInstanceOperation.inProgressdoit êtrefalse).
Pour ajouter ou supprimer des instances d'un MIG en modifiant la taille cible, consultez Définir manuellement la taille d'un MIG.
Étapes suivantes
- Découvrez comment afficher ou annuler la création groupée d'instances dans un MIG.
- Apprenez à utiliser des instances gérées.
- Afficher des informations sur les MIG et les instances gérées