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. Pour en savoir plus sur les requêtes de redimensionnement, consultez la section À propos des requêtes de redimensionnement dans un MIG.

Créer une requête de redimensionnement de 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. Pour créer une requête de redimensionnement de MIG pouvant utiliser les fonctionnalités et services disponibles dans Cluster Director, consultez la section Créer un MIG et une requête de redimensionnement dans la documentation de l'hypercalculateur d'IA.

Avant de commencer

  • 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 Google Cloud services et aux API. 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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    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.

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Rôles requis

Pour obtenir les autorisations nécessaires pour créer des demandes de redimensionnement de 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 requêtes de redimensionnement de 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 requêtes de redimensionnement de MIG:

  • 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 une demande de redimensionnement de 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

Pour créer des demandes de redimensionnement de 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

Pour créer un modèle d'instance configuré pour créer des demandes de redimensionnement MIG, spécifiez les éléments suivants dans le modèle:

Pour créer un modèle d'instance configuré pour créer des demandes de redimensionnement de 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. La page Créer un modèle d'instance s'ouvre.

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

  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 un 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. Dans la section Modèle de provisionnement, procédez comme suit:

    1. Dans la liste Modèle de provisionnement de VM, sélectionnez Démarrage Flex.

    2. Pour définir une durée d'exécution pour les VM créées via le modèle d'instance, saisissez le nombre d'heures dans le champ Indiquez le nombre d'heures. La valeur doit être comprise entre une heure (1) et sept jours (168).

  7. 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 demandes de redimensionnement MIG, exécutez la commande beta instance-templates create avec les options suivantes:

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

  • L'option --instance-termination-action est définie sur DELETE.

  • L'option --max-run-duration

  • L'option --provisioning-model est définie sur FLEX_START.

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

La commande suivante crée un modèle d'instance régional. Pour créer un modèle d'instance global, utilisez la même commande sans l'option --instance-template-region.

gcloud beta 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 \
    --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. 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.

  • MACHINE_TYPE: type de machine GPU. Si vous spécifiez un type de machine N1, incluez l'option --accelerator pour 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 de d, h, m et s. Par exemple, spécifiez 30m pour 30 minutes ou 1d2h3m4s pour un jour, deux heures, trois minutes et quatre secondes. Cette valeur doit être comprise entre 10 minutes et sept jours.

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, incluez les champs suivants:

  • Le champ scheduling.onHostMaintenance défini sur TERMINATE.

  • Le champ scheduling.instanceTerminationAction défini sur DELETE.

  • Le champ scheduling.maxRunDuration

  • Le champ scheduling.provisioningModel défini sur FLEX_START.

  • Le champ reservationAffinity.consumeReservationType défini 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/beta/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 :

    • 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 GPU. Si vous spécifiez un type de machine N1, incluez le champ guestAccelerators dans le corps de la requête pour 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 entre 600, soit 600 secondes (10 minutes), et 604800, soit 604 800 secondes (sept 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 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'ouvre.

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

  4. Avant de sélectionner un modèle d'instance, vous devez supprimer la configuration d'autoscaling et désactiver les réparations comme suit:

    1. Pour supprimer la configuration d'autoscaling, procédez comme suit :

      1. Dans la section Autoscaling (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.

    2. Pour désactiver les réparations, dans la section Cycle de vie d'une instance de VM, cliquez sur la liste Action par défaut en cas d'échec, puis sélectionnez Aucune action.

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

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

    • Pour créer une requête de redimensionnement lorsque vous créez le MIG, procédez comme suit:

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

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

      3. Facultatif: Pour spécifier une durée d'exécution différente pour les VM que celle définie dans le modèle d'instance, spécifiez une durée dans les champs Durée d'exécution demandée et Unité. La durée doit être comprise entre une heure et sept jours.

    • Pour créer une demande de redimensionnement après avoir créé le MIG, saisissez 0 dans le champ Nombre d'instances.

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

      2. Dans la boîte de dialogue qui s'affiche, cliquez sur Désactiver la redistribution des instances.

  8. 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'option --target-distribution-shape définie sur any-single-zone et l'option --instance-redistribution-type définie sur none.

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

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --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 de MIG, 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 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. Pour ajouter des VM avec des noms spécifiques au MIG via une requête de redimensionnement, utilisez la gcloud CLI ou l'API REST.

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. Facultatif: Pour spécifier une durée d'exécution différente pour les VM que celle définie dans le modèle d'instance, spécifiez une durée dans les champs Durée d'exécution demandée et Unité. La durée doit être comprise entre une heure et sept 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 \
        --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 \
        --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.

  • ZONE: zone où se trouve le MIG.

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

Vous pouvez également effectuer les opérations suivantes:

REST

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

{
  "name": "RESIZE_REQUEST_NAME",
  "resizeBy": COUNT
}

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.

Vous pouvez également effectuer les opérations suivantes:

Étapes suivantes