Créer un MIG utilisant des VM Spot

Ce document explique comment créer un groupe d'instances géré (MIG) qui utilise des VM Spot.

Les VM Spot sont des instances de machines virtuelles (VM) que vous pouvez obtenir à un prix très réduit. Toutefois, Compute Engine peut arrêter ou supprimer des VM Spot à tout moment pour récupérer de la capacité. Utilisez des VM Spot pour exécuter des charges de travail tolérantes aux pannes, telles que des tâches de traitement par lot ou des applications sans état, à faible coût.

Pour découvrir d'autres méthodes de création de MIG, consultez Scénarios de base pour la création d'un MIG.

Avant de commencer

  • Vérifiez que vous disposez d'un quota suffisant pour les ressources que vous souhaitez demander. Pour en savoir plus, consultez Quotas d'allocation.
  • Vérifiez la disponibilité des ressources dans la région ou la zone où vous souhaitez créer des VM Spot. Vérifier la disponibilité des ressources permet de réduire le risque de rencontrer des erreurs de disponibilité des ressources lorsque vous créez des VM. Pour obtenir des instructions, consultez Afficher la disponibilité des VM Spot.
  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification permet 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 en sélectionnant l'une des options suivantes :

    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 Google Cloud et aux API, vous n'avez pas besoin de configurer l'authentification.

    gcloud

    1. Installez la Google Cloud CLI. Une fois que la Google Cloud CLI est installée, initialisez-la en exécutant la commande suivante :

      gcloud init

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

  • Définissez une région et une zone par défaut.
  • REST

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

      Installez la Google Cloud CLI.

      Si vous utilisez un fournisseur d'identité (IdP) externe, vous devez d'abord vous connecter à la gcloud CLI avec votre identité fédérée.

    Pour en savoir plus, consultez la section S'authentifier pour utiliser REST dans la documentation sur l'authentification Google Cloud .

Rôles requis

Pour obtenir les autorisations nécessaires à la création de MIG utilisant des VM spot, demandez à votre administrateur de vous attribuer le rôle IAM Administrateur d'instances Compute (v1) (roles/compute.instanceAdmin.v1) sur le projet. Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient les autorisations requises pour créer des MIG qui utilisent des VM spot. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer des MIG qui utilisent des VM Spot :

  • Pour créer un modèle d'instance : compute.instanceTemplates.create sur le projet.
  • Pour créer un MIG : compute.instanceGroupManagers.create sur le projet

Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.

Créer un MIG utilisant des VM Spot

Pour créer un MIG qui utilise des VM Spot, vous devez procéder comme suit :

  1. Créer un modèle d'instance configuré pour créer des VM spot

  2. Créer un MIG régional ou zonal

Créer un modèle d'instance configuré pour créer des VM Spot

Pour créer un modèle d'instance configuré pour créer des VM Spot, sélectionnez l'une des options suivantes :

Console

  1. Dans la console Google Cloud , accédez à la page Modèles d'instances.

    Accéder à la page Modèles d'instances

  2. Cliquez sur Créer un modèle d'instance. La page Créer un modèle d'instance s'affiche.

  3. Dans le champ Nom, saisissez un nom pour le modèle d'instance.

  4. Dans la section Emplacement, sélectionnez le type de modèle d'instance que vous souhaitez créer :

    • Pour un modèle d'instance régional, sélectionnez Régional, puis sélectionnez la région dans laquelle créer votre modèle. En fonction du type de machine que vous souhaitez que vos VM Spot utilisent, spécifiez une région compatible.

    • Pour un modèle d'instance global, sélectionnez Global.

  5. Dans la section Configuration de la machine, sélectionnez une série de machines compatible avec les VM spot.

  6. Dans la section Modèle de provisionnement, procédez comme suit :

    1. Dans la liste Modèle de provisionnement de VM, sélectionnez Spot.

    2. Pour spécifier si les VM spot doivent être arrêtées ou supprimées en cas de préemption, sélectionnez l'une des options suivantes dans la liste À l'arrêt de la VM :

      • Pour arrêter les VM Spot, sélectionnez Arrêter.

      • Pour supprimer des VM spot, sélectionnez Supprimer.

  7. 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.

  8. Cliquez sur Créer.

gcloud

Pour créer un modèle d'instance configuré pour créer des VM Spot, utilisez la commande gcloud compute instance-templates create.

La commande suivante 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=TERMINATION_ACTION \
    --machine-type=MACHINE_TYPE \
    --provisioning-model=SPOT

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. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez 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 la page Bonnes pratiques concernant les familles d'images.

  • REGION : région dans laquelle créer le modèle d'instance. En fonction du type de machine que vous souhaitez que les VM Spot utilisent, spécifiez une région compatible.

  • TERMINATION_ACTION : indique si Compute Engine arrête ou supprime les VM Spot en cas de préemption. Vous devez spécifier si vous souhaitez arrêter (STOP) ou supprimer (DELETE) les VM.

  • MACHINE_TYPE : type de machine compatible avec les VM Spot. Si vous spécifiez un type de machine N1, vous devez inclure l'option --accelerator pour définir le nombre et le type de GPU à associer à vos VM.

REST

Pour créer un modèle d'instance configuré pour créer des VM spot, envoyez l'une des requêtes POST suivantes :

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"
      }
    ],
    "scheduling": {
      "instanceTerminationAction": "TERMINATION_ACTION",
      "provisioningModel": "SPOT"
    }
  }
}

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. En fonction du type de machine que vous souhaitez que les VM Spot utilisent, spécifiez une région compatible.

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.

  • 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. Cela permet de spécifier l'image d'OS non obsolète la plus récente. Par exemple, si vous spécifiez family/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 la page Bonnes pratiques concernant les familles d'images.

  • MACHINE_TYPE : type de machine compatible avec les VM Spot. Si vous spécifiez un type de machine N1, vous devez inclure le champ guestAccelerators pour définir le nombre et le type de GPU à associer à vos VM.

  • TERMINATION_ACTION : indique si Compute Engine arrête ou supprime les VM Spot en cas de préemption. Vous devez spécifier si vous souhaitez arrêter (STOP) ou supprimer (DELETE) les VM.

Une fois créé, vous pouvez consulter les détails du modèle d'instance pour examiner ses propriétés.

Créer un MIG régional ou zonal

Pour créer un MIG régional ou zonal, sélectionnez l'une des options suivantes :

Console

  1. Dans la console Google Cloud , accédez à la page Groupes d'instances.

    Accéder à la page Groupes d'instances

  2. Cliquez sur Créer un groupe d'instances. La page Créer un groupe d'instances s'ouvre.

  3. Dans le champ Nom, saisissez un nom pour le MIG.

  4. Dans la liste Modèle d'instance, sélectionnez le modèle d'instance que vous avez créé à l'étape précédente.

  5. Dans le champ Nombre d'instances, saisissez le nombre de VM spot à créer dans le MIG. Si votre charge de travail nécessite des VM avec des noms spécifiques, saisissez 0 pour ignorer la création de VM à cette étape. Une fois le MIG créé, ajoutez-y des VM avec des noms spécifiques.

  6. Dans la section Emplacement, indiquez si vous souhaitez créer un MIG zonal ou régional :

    1. Pour créer un MIG zonal, sélectionnez Zone unique. Pour créer un MIG régional, sélectionnez Plusieurs zones.

    2. Sélectionnez la région et les zones du MIG.

  7. Cliquez sur Créer.

gcloud

Pour créer un MIG, utilisez la commande gcloud compute instance-groups managed create.

En fonction du type de MIG que vous souhaitez créer, incluez les indicateurs suivants dans la commande :

  • Pour créer un MIG zonal, incluez l'indicateur --zone :

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --size=SIZE \
        --template=INSTANCE_TEMPLATE_URL \
        --zone=ZONE
    
  • Pour créer un MIG régional, incluez le flag --region :

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --size=SIZE \
        --template=INSTANCE_TEMPLATE_URL \
        --region=REGION
    

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG.

  • INSTANCE_TEMPLATE_URL : URL du modèle d'instance que vous avez créé dans la section précédente. 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

  • SIZE : nombre de VM spot à créer dans le MIG. Si votre charge de travail nécessite des noms de VM spécifiques, spécifiez 0 pour ignorer la création de VM à ce stade. Après avoir créé le MIG, ajoutez-y des VM avec des noms spécifiques.

  • ZONE : zone dans laquelle créer le MIG zonal. Si vous utilisez un modèle d'instance régional pour créer le MIG, vous devez spécifier une zone dans la même région que le modèle.

  • REGION : région dans laquelle créer le MIG régional. Si vous utilisez un modèle d'instance régional pour créer le MIG, vous devez spécifier la même région que celle du modèle.

REST

Pour créer un MIG, envoyez une requête POST à l'une des méthodes suivantes :

  • Pour créer un MIG zonal, envoyez une requête POST à la méthode instanceGroupManagers.insert :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    
    {
      "name": "INSTANCE_GROUP_NAME",
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ],
      "targetSize": SIZE
    }
    
  • Pour créer un MIG régional, envoyez une requête POST à la méthode regionInstanceGroupManagers.insert :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
    
    {
      "name": "INSTANCE_GROUP_NAME",
      "instanceTemplate": "INSTANCE_TEMPLATE_URL",
      "targetSize": SIZE
    }
    

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel créer le MIG régional ou zonal.

  • ZONE : zone dans laquelle créer le MIG zonal. Si vous utilisez un modèle d'instance régional pour créer le MIG, vous devez spécifier une zone dans la même région que le modèle.

  • REGION : région dans laquelle créer le MIG régional. Si vous utilisez un modèle d'instance régional pour créer le MIG, vous devez spécifier la même région que celle du modèle.

  • INSTANCE_GROUP_NAME : nom du MIG.

  • INSTANCE_TEMPLATE_URL : URL du modèle d'instance que vous avez créé dans la section précédente. 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

  • SIZE : nombre de VM spot à créer dans le MIG. Si votre charge de travail nécessite des noms de VM spécifiques, spécifiez 0 pour ignorer la création de VM à cette étape. Après avoir créé le MIG, ajoutez-y des VM avec des noms spécifiques.

Une fois le MIG créé, vous pouvez afficher ses détails pour examiner ses propriétés.

Étapes suivantes