Créer des demandes de redimensionnement dans un MIG


Ce document explique comment créer des requêtes de redimensionnement dans un groupe d'instances géré (MIG) constitué d'instances de machine virtuelle (VM), auxquelles des GPU sont associés.

La création de requêtes de redimensionnement dans un MIG vous aide à obtenir des ressources très demandées, comme des GPU, et à optimiser les coûts en créant le nombre exact de VM en une fois.

Avant de commencer

  • Examinez le fonctionnement des demandes de redimensionnement.
  • Pour vous assurer que vous disposez d'un quota de GPU suffisant pour les ressources que vous demandez, vérifiez votre quota de GPU.
  • 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 en sélectionnant l'une des options suivantes:

    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

    1. Install the Google Cloud CLI, then initialize it by running the following command:

      gcloud init
    2. Set a default region and zone.
    3. 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.

Rôles requis

Pour obtenir les autorisations nécessaires pour créer des demandes de redimensionnement dans un MIG, demandez à votre administrateur de vous accorder 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 la page 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 demandes de redimensionnement dans un MIG. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Vous devez disposer des autorisations suivantes pour créer des demandes de redimensionnement dans un groupe d'instances géré :

  • Pour créer un modèle d'instance : compute.instanceTemplates.create sur le projet.
  • Pour créer un MIG zonal : compute.instanceGroupManagers.create sur le projet.
  • Pour créer des demandes de redimensionnement dans un MIG : compute.instanceGroupManagers.update sur le projet.

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

Préparer un MIG pour les demandes de redimensionnement

Avant de créer des demandes de redimensionnement dans un MIG, vous devez configurer un modèle d'instance et le MIG comme décrit dans les sections suivantes.

Créer un modèle d'instance

Si vous souhaitez créer des demandes de redimensionnement dans un MIG, celui-ci doit utiliser un modèle d'instance avec les configurations suivantes :

Pour créer un modèle d'instance configuré pour créer des demandes de redimensionnement dans un MIG, 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.

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

  4. Dans la section Emplacement, sélectionnez l'une des options suivantes :

    • Pour créer un modèle d'instance global, sélectionnez Global, si ce n'est pas déjà fait.

    • Pour créer un modèle d'instance régional, sélectionnez Régional, puis sélectionnez la région dans laquelle créer le modèle d'instance.

  5. Dans la section Configuration de la machine, procédez comme suit :

    1. Cliquez sur l'onglet GPU.

    2. Dans la liste Type de GPU, sélectionnez le type de GPU.

    3. Dans la liste Nombre de GPU, sélectionnez le nombre de GPU.

    4. Facultatif : si votre modèle de GPU est compatible avec les postes de travail virtuels NVIDIA RTX (vWS) pour les charges de travail graphiques et que vous prévoyez d'exécuter des charges de travail graphiques lourdes, sélectionnez l'option Activer le poste de travail virtuel (NVIDIA GRID).

    5. Dans la section Type de machine, sélectionnez un type de machine.

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

  7. Développez la section Options avancées et procédez comme suit :

    1. Développez la section Gestion.

    2. Dans la liste Réservations, sélectionnez Ne pas utiliser.

  8. Cliquez sur Créer.

gcloud

Pour créer un modèle d'instance configuré pour créer des demandes de redimensionnement dans un MIG, exécutez la commande instance-templates create avec les options suivantes :

  • L'option --maintenance-policy est définie sur TERMINATE.

  • L'option --reservation-affinity est définie sur none.

Par exemple, utilisez la commande suivante pour créer un modèle d'instance régional. Si vous souhaitez créer un modèle d'instance global, utilisez la même commande sans l'option --instance-template-region.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --image-project=IMAGE_PROJECT \
    --image-family=IMAGE_FAMILY \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --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. 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.

    Si vous souhaitez utiliser une version spécifique de l'image du système d'exploitation, telle que debian-12-buster-v20240701, remplacez l'option --image-family par l'option --image.

  • REGION: région dans laquelle créer le modèle d'instance.

  • MACHINE_TYPE : type de machine compatible avec les GPU. Si vous stipulez un type de machine N1, incluez l'option --accelerator afin de spécifier le nombre et le type de GPU à associer à vos VM.

REST

Pour créer un modèle d'instance configuré pour créer des demandes de redimensionnement dans un MIG, envoyez une requête POST à l'une des méthodes suivantes:

Dans le corps de la requête, procédez comme suit :

  • Incluez le champ scheduling.onHostMaintenance et définissez-le sur TERMINATE.

  • Ajoutez le champ reservationAffinity.consumeReservationType et définissez-le sur NO_RESERVATION.

Par exemple, pour créer un modèle d'instance régional, envoyez une requête POST 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": "NO_RESERVATION"
    },
    "scheduling": {
      "onHostMaintenance": "TERMINATE"
    }
  }
}

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 :

    • 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 GPU. Si vous stipulez un type de machine N1, incluez le champ guestAccelerators dans le corps de la requête afin de spécifier le nombre et le type de GPU à associer à vos VM.

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 ou mettre à jour un MIG

Après avoir créé le modèle d'instance comme décrit dans la section précédente, utilisez-le pour créer un MIG comme suit ou pour mettre à jour un MIG. En outre, vous devez effectuer les opérations suivantes pour préparer le MIG aux requêtes de redimensionnement :

Pour créer un MIG compatible avec les requêtes de redimensionnement, 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'affiche.

  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. Si vous sélectionnez un modèle d'instance régional, la liste Région est définie sur la région du modèle d'instance.

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

    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.

    3. Si vous créez un MIG régional, procédez comme suit:

      1. Dans le champ Forme de distribution cible, sélectionnez Une des zones. Vous ne pouvez sélectionner cette option qu'après avoir supprimé la configuration d'autoscaling dans les étapes suivantes.

      2. Après avoir sélectionné l'option "N'importe quelle zone unique", dans la boîte de dialogue qui s'affiche, cliquez sur Désactiver la redistribution des instances.

  6. Supprimez la configuration d'autoscaling comme suit:

    1. Dans la section Autoscaling, cliquez sur la liste Mode d'autoscaling, puis sur Supprimer la configuration d'autoscaling.

    2. Dans la boîte de dialogue de confirmation, cliquez sur Supprimer.

  7. Désactivez les réparations comme suit:

    1. Dans la section Cycle de vie de l'instance de VM, cliquez sur la liste Action par défaut en cas d'échec.

    2. Sélectionnez Aucune action.

  8. Effectuez l'une des opérations suivantes :

    • Pour créer une demande de redimensionnement à ce stade, procédez comme suit :

      1. Dans le champ Nombre d'instances, saisissez le nombre de VM que vous souhaitez créer simultanément.

        Champ "Nombre d'instances" sur la page "Créer un groupe d'instances".

      2. Cochez la case Utiliser la requête de redimensionnement pour créer plusieurs VM à la fois.

      3. Dans le champ Durée d'exécution demandée et dans la liste Unité, spécifiez la durée d'exécution des VM. La durée doit être comprise entre 1 heure et 7 jours.

    • Sinon, dans le champ Nombre d'instances, saisissez 0. Vous pourrez ajouter des VM dans le groupe ultérieurement en créant des demandes de redimensionnement.

  9. Cliquez sur Créer.

gcloud

Exécutez la commande instance-groups managed create avec l'option --default-action-on-vm-failure définie sur do_nothing. Si vous créez un MIG régional, vous devez également inclure l'indicateur --target-distribution-shape défini sur any-single-zone et l'indicateur --instance-redistribution-type défini sur none.

  • Pour créer un MIG zonal, exécutez la commande suivante:

    gcloud compute instance-groups managed create INSTANCE_GROUP_URL \
      --template=INSTANCE_TEMPLATE_NAME \
      --size=0 \
      --zone=ZONE \
      --default-action-on-vm-failure=do_nothing
    
  • Pour créer un MIG régional, exécutez la commande suivante:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --size=0 \
        --region=REGION \
        --target-distribution-shape=any-single-zone \
        --instance-redistribution-type=none \
        --default-action-on-vm-failure=do_nothing
    

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME : nom du MIG à créer.

  • INSTANCE_TEMPLATE_URL: URL partielle du modèle d'instance que vous avez créé dans la section précédente. Si vous souhaitez utiliser un modèle d'instance régional pour créer le MIG, vous ne pouvez le créer que dans la région du modèle. Spécifiez l'une des valeurs suivantes:

    • Pour un modèle d'instance régional : projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_NAME

    • Pour un modèle d'instance global : INSTANCE_TEMPLATE_NAME

  • ZONE: zone dans laquelle créer le MIG.

  • REGION: région dans laquelle créer le MIG.

REST

  • Pour créer un MIG zonal, envoyez une requête POST à l'aide de la méthode instanceGroupManagers.insert comme suit:

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

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
    
    {
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ],
      "name": "INSTANCE_GROUP_NAME",
      "targetSize": 0,
      "distributionPolicy": {
        "targetShape": "ANY_SINGLE_ZONE"
      },
      "updatePolicy": {
        "instanceRedistributionType": "NONE"
      },
      "instanceLifecyclePolicy": {
        "defaultActionOnFailure": "DO_NOTHING"
      }
    }
    

Remplacez les éléments suivants :

  • PROJECT_ID: ID du projet dans lequel se trouve le modèle d'instance que vous avez créé dans la section précédente.

  • INSTANCE_TEMPLATE_URL: URL partielle du modèle d'instance que vous avez créé dans la section précédente. Si vous souhaitez utiliser un modèle d'instance régional pour créer le MIG, vous ne pouvez le créer que dans la région du modèle. Spécifiez l'une des valeurs suivantes:

    • Pour un modèle d'instance régional : regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_NAME

    • Pour un modèle d'instance global : global/instanceTemplates/INSTANCE_TEMPLATE_NAME

  • ZONE: zone dans laquelle créer le MIG.

  • REGION: région dans laquelle créer le MIG.

  • INSTANCE_GROUP_NAME : nom du MIG à créer.

Créer une demande de redimensionnement dans un MIG

Avant de créer des demandes de redimensionnement, assurez-vous d'avoir préparé le MIG comme décrit dans la section précédente.

Une fois que vous avez créé une requête de redimensionnement, qu'elle a été acceptée et que toutes les ressources demandées sont disponibles, le MIG crée le nombre de VM demandé en une fois. Les VM s'exécutent jusqu'à ce que le MIG les supprime, à l'issue de la durée d'exécution spécifiée, ou jusqu'à ce que vous supprimiez les VM.

Pour créer une demande de redimensionnement dans un MIG, 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. Dans la colonne Nom, cliquez sur le nom du MIG dans lequel vous souhaitez créer la demande de redimensionnement.

    La page de présentation du MIG s'affiche.

  3. Sur la ligne Demandes de redimensionnement, cliquez sur  Modifier les demandes de redimensionnement.

  4. Cliquez sur Nouvelle demande de redimensionnement.

    Le volet Nouvelles demandes de redimensionnement s'affiche.

  5. Dans le champ Nom, saisissez le nom de la demande de redimensionnement.

  6. Dans le champ Nombre d'instances supplémentaires nécessaires, saisissez le nombre de VM à ajouter simultanément au MIG.

  7. Dans les champs Durée d'exécution demandée et Unité, spécifiez la durée d'exécution souhaitée pour les VM demandées. La durée doit être comprise entre 1 heure et 7 jours.

  8. Cliquez sur Créer.

gcloud

  • Pour créer une requête de redimensionnement dans un MIG zonal, utilisez la commande instance-groups managed resize-requests create.

    gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
        --resize-request=RESIZE_REQUEST_NAME \
        --resize-by=COUNT \
        --requested-run-duration=RUN_DURATION \
        --zone=ZONE
    
  • Pour créer une demande de redimensionnement dans un MIG régional, utilisez la commande beta instance-groups managed resize-requests create.

    gcloud beta compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
        --resize-request=RESIZE_REQUEST_NAME \
        --resize-by=COUNT \
        --requested-run-duration=RUN_DURATION \
        --region=REGION
    

Remplacez les éléments suivants :

  • INSTANCE_GROUP_NAME: nom du MIG configuré pour y créer des demandes de redimensionnement.

  • RESIZE_REQUEST_NAME : nom de la requête de redimensionnement, qui doit être unique dans le MIG spécifié. Sinon, la création de la demande de redimensionnement échoue.

  • COUNT : nombre de VM à ajouter simultanément au MIG.

  • RUN_DURATION : durée d'exécution des VM demandées. La valeur doit être formatée en nombre de jours, d'heures, de minutes ou de secondes, suivis respectivement de d, h, m et s. Par exemple, spécifiez 30m pour 30 minutes ou 1d2h3m4s pour 1 jour, 2 heures, 3 minutes et 4 secondes. Cette valeur doit être comprise entre 10 minutes et 7 jours.

  • ZONE : zone où se trouve le MIG.

  • REGION : région où se trouve le MIG.

REST

  • Pour créer une requête de redimensionnement dans un MIG zonal, envoyez une requête POST à l'aide de la méthode instanceGroupManagerResizeRequests.insert.

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    
  • Pour créer une requête de redimensionnement dans un MIG régional, envoyez une requête POST à l'aide de la méthode beta.regionInstanceGroupManagerResizeRequests.insert.

    POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME/resizeRequests
    

Dans le corps de la requête, incluez les éléments suivants :

{
  "name": "RESIZE_REQUEST_NAME",
  "resizeBy": COUNT,
  "requestedRunDuration": {
    "seconds": "RUN_DURATION"
  }
}

Remplacez les éléments suivants :

  • PROJECT_ID : ID du projet dans lequel se trouve le MIG spécifié.

  • ZONE : zone où se trouve le MIG.

  • REGION : région où se trouve le MIG.

  • INSTANCE_GROUP_NAME: nom du MIG configuré pour y créer des demandes de redimensionnement.

  • RESIZE_REQUEST_NAME : nom de la requête de redimensionnement, qui doit être unique dans le MIG spécifié. Sinon, la création de la demande de redimensionnement échoue.

  • COUNT : nombre de VM à ajouter simultanément au MIG.

  • RUN_DURATION : durée, en secondes, pendant laquelle vous souhaitez que les VM demandées s'exécutent. La valeur doit être comprise entre 600, soit 600 secondes (10 minutes), et 604800, soit 604 800 secondes (7 jours).

Une fois la requête de redimensionnement créée, vous pouvez consulter son état ou résoudre les problèmes associés en consultant les détails de la requête de redimensionnement.

Étape suivante