Créer un MIG optimisé pour l'IA avec un type de machine A3 High ou A3 Mega

Ce document explique comment créer un groupe d'instances géré (MIG) qui utilise un type de machine A3 High ou A3 Mega optimisé pour les accélérateurs. Pour en savoir plus sur les types de machines, consultez A3 High et A3 Mega dans la documentation Compute Engine.

La création d'un MIG vous permet de gérer plusieurs machines virtuelles (VM) comme une seule entité. Chaque VM d'un MIG est basée sur un modèle d'instance. En gérant automatiquement les VM du groupe, les MIG offrent une disponibilité et une évolutivité élevées. Pour en savoir plus sur les MIG, consultez Groupes d'instances gérés dans la documentation Compute Engine.

Pour en savoir plus sur les options de création de VM et de clusters, consultez la page Présentation de la création de VM et de clusters.

Limites

En fonction de la série de machines utilisée par les VM de votre MIG, les limites suivantes s'appliquent :

A3 Mega

A3 High

Avant de commencer

Avant de créer un MIG, si vous ne l'avez pas déjà fait, procédez comme suit :

  1. Choisissez une option de consommation : l'option de consommation que vous choisissez détermine comment vous obtenez et utilisez les ressources GPU.

    Pour en savoir plus, consultez Choisir une option de consommation.

  2. Obtenir de la capacité : le processus d'obtention de la capacité diffère pour chaque option de consommation.

    Pour en savoir plus sur la procédure à suivre pour obtenir de la capacité pour l'option de consommation choisie, consultez Présentation de la capacité.

Rôles requis

Pour obtenir les autorisations nécessaires à la création d'un MIG, 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 un MIG. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer un MIG :

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

Présentation

Pour créer un MIG avec le type de machine A3 Mega ou A3 High (8 GPU), vous devez suivre les étapes suivantes :

  1. Créer des réseaux VPC
  2. Facultatif : créez une règle de charge de travail.
  3. Créer un modèle d'instance
  4. Créer un MIG

Créer des réseaux VPC

Pour permettre une communication efficace pour vos VM GPU, vous devez créer un réseau de gestion et un ou plusieurs réseaux de données. Le réseau de gestion est utilisé pour l'accès externe (SSH, par exemple) et pour la plupart des communications réseau générales. Les réseaux de données sont utilisés pour la communication à hautes performances entre les GPU de différentes VM, par exemple pour le trafic RDMA (Remote Direct Memory Access).

Pour ces réseaux VPC, nous vous recommandons de définir l'unité de transmission maximale (MTU) sur une valeur plus élevée. Des valeurs de MTU plus élevées augmentent la taille des paquets et réduisent la surcharge de l'en-tête du paquet, ce qui augmente le débit des données de charge utile. Pour en savoir plus sur la création de réseaux VPC, consultez Créer et vérifier un réseau avec une MTU de trame géante.

Créer un réseau de gestion, un sous-réseau et une règle de pare-feu

Pour configurer le réseau de gestion, procédez comme suit :

  1. Créez le réseau de gestion à l'aide de la commande networks create :

    gcloud compute networks create NETWORK_NAME_PREFIX-mgmt-net \
        --project=PROJECT_ID \
        --subnet-mode=custom \
        --mtu=8244
    
  2. Créez le sous-réseau de gestion à l'aide de la commande networks subnets create :

    gcloud compute networks subnets create NETWORK_NAME_PREFIX-mgmt-sub \
        --project=PROJECT_ID \
        --network=NETWORK_NAME_PREFIX-mgmt-net \
        --region=REGION \
        --range=192.168.0.0/24
    
  3. Créez des règles de pare-feu à l'aide de la commande firewall-rules create.

    1. Créez une règle de pare-feu pour le réseau de gestion.

      gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-internal \
          --project=PROJECT_ID \
          --network=NETWORK_NAME_PREFIX-mgmt-net \
          --action=ALLOW \
          --rules=tcp:0-65535,udp:0-65535,icmp \
          --source-ranges=192.168.0.0/16
      
    2. Créez la règle de pare-feu tcp:22 pour limiter les adresses IP sources qui peuvent se connecter à votre VM à l'aide de SSH.

      gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-external-ssh \
          --project=PROJECT_ID \
          --network=NETWORK_NAME_PREFIX-mgmt-net \
          --action=ALLOW \
          --rules=tcp:22 \
          --source-ranges=SSH_SOURCE_IP_RANGE
      
    3. Créez la règle de pare-feu icmp permettant de vérifier les problèmes de transmission de données sur le réseau.

      gcloud compute firewall-rules create NETWORK_NAME_PREFIX-mgmt-external-ping \
          --project=PROJECT_ID \
          --network=NETWORK_NAME_PREFIX-mgmt-net \
          --action=ALLOW \
          --rules=icmp \
          --source-ranges=0.0.0.0/0
      

Remplacez les éléments suivants :

  • NETWORK_NAME_PREFIX : préfixe de nom à utiliser pour les réseaux et sous-réseaux VPC.
  • PROJECT_ID : ID de votre projet.
  • REGION : région dans laquelle vous souhaitez créer les réseaux.
  • SSH_SOURCE_IP_RANGE : plage d'adresses IP au format CIDR. Ce paramètre spécifie les adresses IP sources qui peuvent se connecter à votre VM à l'aide de SSH.

Créer des réseaux de données, des sous-réseaux et une règle de pare-feu

Le nombre de réseaux de données varie en fonction du type de machine GPU que vous créez.

A3 Mega

A3 Mega nécessite huit réseaux de données. Pour créer huit réseaux de données, chacun avec des sous-réseaux et des règles de pare-feu, exécutez la commande suivante.

for N in $(seq 1 8); do
gcloud compute networks create NETWORK_NAME_PREFIX-data-net-$N \
    --project=PROJECT_ID \
    --subnet-mode=custom \
    --mtu=8244

gcloud compute networks subnets create NETWORK_NAME_PREFIX-data-sub-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --region=REGION \
    --range=192.168.$N.0/24

gcloud compute firewall-rules create NETWORK_NAME_PREFIX-data-internal-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --action=ALLOW \
    --rules=tcp:0-65535,udp:0-65535,icmp \
    --source-ranges=192.168.0.0/16
done

A3 High

Les A3 High nécessitent quatre réseaux de données. Exécutez la commande suivante pour créer quatre réseaux de données, chacun avec des sous-réseaux et des règles de pare-feu.

for N in $(seq 1 4); do
gcloud compute networks create NETWORK_NAME_PREFIX-data-net-$N \
    --project=PROJECT_ID \
    --subnet-mode=custom \
    --mtu=8244

gcloud compute networks subnets create NETWORK_NAME_PREFIX-data-sub-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --region=REGION \
    --range=192.168.$N.0/24

gcloud compute firewall-rules create NETWORK_NAME_PREFIX-data-internal-$N \
    --project=PROJECT_ID \
    --network=NETWORK_NAME_PREFIX-data-net-$N \
    --action=ALLOW \
    --rules=tcp:0-65535,udp:0-65535,icmp \
    --source-ranges=192.168.0.0/16
done

Facultatif : Créer une règle de charge de travail

Pour l'option de consommation à démarrage flexible, ignorez cette section et passez à la création d'un modèle d'instance. En raison de limitations, le modèle de provisionnement de démarrage Flex n'est pas compatible avec les règles de charge de travail.

Vous pouvez spécifier l'emplacement des VM en créant une règle de charge de travail. Si vous disposez déjà d'un règlement sur les charges de travail, vous pouvez le réutiliser. Lorsque vous appliquez une règle de charge de travail à votre MIG, Compute Engine s'efforce de créer des VM aussi proches les unes des autres que possible. Si votre application est sensible à la latence et que vous souhaitez que les VM soient plus proches les unes des autres (compacité maximale), spécifiez le champ maxTopologyDistance lorsque vous créez une stratégie de charge de travail.

Vous ne pouvez pas modifier une règle de charge de travail après l'avoir créée. Pour apporter des modifications à une règle de charge de travail, vous devez en créer une.

Pour créer une stratégie de charge de travail, sélectionnez l'une des options suivantes :

gcloud

Pour créer une règle de charge de travail, utilisez la commande gcloud compute resource-policies create workload-policy.

  • Pour un placement des VM au mieux, spécifiez uniquement l'indicateur --type=high-throughput dans la commande :

    gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
        --type=high-throughput \
        --region=REGION
    
  • Pour une colocation stricte des VM, spécifiez l'option --max-topology-distance dans la commande :

    gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
        --type=high-throughput \
        --max-topology-distance=TOPOLOGY_DISTANCE \
        --region=REGION
    

Remplacez les éléments suivants :

  • WORKLOAD_POLICY_NAME : nom de la règle de charge de travail.
  • TOPOLOGY_DISTANCE : distance maximale de la topologie. Spécifiez l'une des valeurs suivantes :
    • Pour placer les VM dans le même cluster : CLUSTER
    • Pour placer les VM dans le même bloc : BLOCK
    • Pour placer des VM dans le même sous-bloc : SUBBLOCK
    Remarque : Une distance maximale plus courte peut réduire la probabilité de disponibilité des VM.
  • REGION : région dans laquelle vous souhaitez créer la règle de charge de travail. Spécifiez une région dans laquelle vous souhaitez créer le MIG et où le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.

REST

Pour créer une règle de charge de travail, envoyez une requête POST à la méthode resourcePolicies.insert.

  • Pour un placement des VM au mieux, spécifiez uniquement le champ type dans la requête comme suit :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
      {
        "name": "WORKLOAD_POLICY_NAME"
        "workloadPolicy": {
          "type": "HIGH_THROUGHPUT"
        }
      }
    
  • Pour une colocation stricte des VM, spécifiez le champ maxTopologyDistance dans la requête comme suit :

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
      {
        "name": "WORKLOAD_POLICY_NAME"
        "workloadPolicy": {
          "type": "HIGH_THROUGHPUT",
          "maxTopologyDistance": "TOPOLOGY_DISTANCE"
        }
      }
    

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet
  • REGION : région dans laquelle vous souhaitez créer la règle de charge de travail. Spécifiez une région dans laquelle vous souhaitez créer le MIG et le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • WORKLOAD_POLICY_NAME : nom de la règle de charge de travail.
  • TOPOLOGY_DISTANCE : distance maximale de la topologie. Spécifiez l'une des valeurs suivantes :
    • Pour placer les VM dans le même bloc : BLOCK
    • Pour placer les VM dans le même cluster : CLUSTER
    Remarque : Une distance maximale plus courte peut réduire la probabilité de disponibilité des VM.

Créer un modèle d'instance

Spécifiez les propriétés de VM pour un MIG en créant un modèle d'instance.

Pour créer un modèle d'instance, sélectionnez l'une des options suivantes.

Les commandes suivantes définissent également le niveau d'accès pour vos instances. Pour simplifier la gestion des autorisations, Google vous recommande de définir le niveau d'accès d'une instance sur cloud-platform, puis d'utiliser des rôles IAM pour définir les services auxquels l'instance peut accéder. Pour en savoir plus, consultez les bonnes pratiques concernant les niveaux d'accès.

A3 Mega

Pour créer un modèle d'instance pour les VM A3 Mega, vous devez spécifier huit interfaces réseau supplémentaires pour le trafic GPUDirect-TCPXO. Si vous ne l'avez pas déjà fait, assurez-vous d'avoir créé huit réseaux VPC, comme décrit dans Créer des réseaux VPC.

gcloud

Les paramètres que vous devez spécifier dépendent de l'option de consommation que vous utilisez pour ce déploiement. Sélectionnez l'onglet correspondant au modèle de provisionnement de votre option de consommation.

Démarrage flexible

Pour créer un modèle d'instance régional, exécutez la commande gcloud compute instance-templates create.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --instance-template-region=REGION \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-5,subnet=GVNIC_NAME_PREFIX-sub-5,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-6,subnet=GVNIC_NAME_PREFIX-sub-6,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-7,subnet=GVNIC_NAME_PREFIX-sub-7,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-8,subnet=GVNIC_NAME_PREFIX-sub-8,no-address \
    --reservation-affinity=none \
    --instance-termination-action=DELETE \
    --max-run-duration=RUN_DURATION \
    --maintenance-policy=TERMINATE \
    --provisioning-model=FLEX_START

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Spécifiez un type de machine A4 ou A3 Ultra. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
  • IMAGE_PROJECT : ID du projet de l'image de l'OS.
  • REGION : région dans laquelle vous souhaitez créer le modèle d'instance. Spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau gVNIC.
  • 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 7 jours.

Lié à la réservation

Pour créer un modèle d'instance régional, exécutez la commande gcloud compute instance-templates create.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --instance-template-region=REGION \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-5,subnet=GVNIC_NAME_PREFIX-sub-5,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-6,subnet=GVNIC_NAME_PREFIX-sub-6,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-7,subnet=GVNIC_NAME_PREFIX-sub-7,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-8,subnet=GVNIC_NAME_PREFIX-sub-8,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=DELETE \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Spécifiez un type de machine A4 ou A3 Ultra. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
  • IMAGE_PROJECT : ID du projet de l'image de l'OS.
  • REGION : région dans laquelle vous souhaitez créer le modèle d'instance. Spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau gVNIC.
  • RESERVATION : nom de la réservation ou d'un bloc spécifique dans une réservation. Pour obtenir le nom de la réservation ou les blocs disponibles, consultez Afficher la capacité réservée. En fonction de vos exigences concernant l'emplacement des instances, choisissez l'une des options suivantes :
    • Pour créer des instances sur plusieurs blocs ou sur un seul bloc :

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      De plus, pour un seul bloc, créez le MIG en appliquant une règle de charge de travail qui spécifie une colocation de bloc (maxTopologyDistance=BLOCK). Compute Engine applique ensuite la règle à la réservation et crée des instances sur le même bloc.

    • Pour créer des instances sur un bloc spécifique :

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME

Spot

Pour créer un modèle d'instance régional, exécutez la commande gcloud compute instance-templates create.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --instance-template-region=REGION \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-5,subnet=GVNIC_NAME_PREFIX-sub-5,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-6,subnet=GVNIC_NAME_PREFIX-sub-6,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-7,subnet=GVNIC_NAME_PREFIX-sub-7,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-8,subnet=GVNIC_NAME_PREFIX-sub-8,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --no-restart-on-failure

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Spécifiez un type de machine A4 ou A3 Ultra. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
  • IMAGE_PROJECT : ID du projet de l'image de l'OS.
  • REGION : région dans laquelle vous souhaitez créer le modèle d'instance. Spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau gVNIC.
  • TERMINATION_ACTION : action à effectuer lorsque Compute Engine préempte l'instance, soit STOP (par défaut), soit DELETE.

REST

Les paramètres que vous devez spécifier dépendent de l'option de consommation que vous utilisez pour ce déploiement. Sélectionnez l'onglet correspondant au modèle de provisionnement de votre option de consommation.

Démarrage flexible

Pour créer un modèle d'instance régional, envoyez une requête POST à la méthode regionInstanceTemplates.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-5",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-6",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-7",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-7"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-8",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-8"
      }
    ],
    "reservationAffinity": {
        "consumeReservationType": "NO_RESERVATION"
      },
    "scheduling": {
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": RUN_DURATION
        },
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START"
      }

  }
}

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Spécifiez un type de machine A4 ou A3 Ultra. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
  • IMAGE_PROJECT : ID du projet de l'image de l'OS.
  • REGION : région dans laquelle vous souhaitez créer le modèle d'instance. Spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go.
  • NETWORK_PROJECT_ID : ID du projet du réseau.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau gVNIC.
  • REGION : région du sous-réseau.
  • 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).

Lié à la réservation

Pour créer un modèle d'instance régional, envoyez une requête POST à la méthode regionInstanceTemplates.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-5",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-6",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-7",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-7"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-8",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-8"
      }
    ],
    "reservationAffinity":{
        "consumeReservationType":"SPECIFIC_RESERVATION",
        "key":"compute.googleapis.com/reservation-name",
        "values":[
          "RESERVATION"
        ]
      },
    "scheduling":{
        "provisioningModel":"RESERVATION_BOUND",
        "instanceTerminationAction":"DELETE",
        "onHostMaintenance": "TERMINATE",
        "automaticRestart":true
      }
  }
}

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Spécifiez un type de machine A4 ou A3 Ultra. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
  • IMAGE_PROJECT : ID du projet de l'image de l'OS.
  • REGION : région dans laquelle vous souhaitez créer le modèle d'instance. Spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go.
  • NETWORK_PROJECT_ID : ID du projet du réseau.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau gVNIC.
  • REGION : région du sous-réseau.
  • RESERVATION : nom de la réservation ou d'un bloc spécifique dans une réservation. Pour obtenir le nom de la réservation ou les blocs disponibles, consultez Afficher la capacité réservée. En fonction de vos exigences concernant l'emplacement des instances, choisissez l'une des options suivantes :
    • Pour créer des instances sur plusieurs blocs ou sur un seul bloc :

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      De plus, pour un seul bloc, créez le MIG en appliquant une règle de charge de travail qui spécifie une colocation de bloc (maxTopologyDistance=BLOCK). Compute Engine applique ensuite la règle à la réservation et crée des instances sur le même bloc.

    • Pour créer des instances sur un bloc spécifique :

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME

Spot

Pour créer un modèle d'instance régional, envoyez une requête POST à la méthode regionInstanceTemplates.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-5",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-5"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-6",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-6"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-7",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-7"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-8",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-8"
      }
    ],
    "scheduling":
    {
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "TERMINATION_ACTION",
      "onHostMaintenance": "TERMINATE",
      "automaticRestart": false
    }
  }
}

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Spécifiez un type de machine A4 ou A3 Ultra. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
  • IMAGE_PROJECT : ID du projet de l'image de l'OS.
  • REGION : région dans laquelle vous souhaitez créer le modèle d'instance. Spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go.
  • NETWORK_PROJECT_ID : ID du projet du réseau.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau gVNIC.
  • REGION : région du sous-réseau.
  • TERMINATION_ACTION : action à effectuer lorsque Compute Engine préempte l'instance, soit STOP (par défaut), soit DELETE.

A3 High

Pour créer un modèle d'instance pour les VM A3 High, vous devez spécifier quatre interfaces réseau supplémentaires pour le trafic GPUDirect-TCPX. Si vous ne l'avez pas déjà fait, assurez-vous d'avoir créé quatre réseaux VPC, comme décrit dans Créer des réseaux VPC.

gcloud

Les paramètres que vous devez spécifier dépendent de l'option de consommation que vous utilisez pour ce déploiement. Sélectionnez l'onglet correspondant au modèle de provisionnement de votre option de consommation.

Démarrage flexible

Pour créer un modèle d'instance régional, exécutez la commande gcloud compute instance-templates create.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --instance-template-region=REGION \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --reservation-affinity=none \
    --instance-termination-action=DELETE \
    --max-run-duration=RUN_DURATION \
    --maintenance-policy=TERMINATE \
    --provisioning-model=FLEX_START

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Spécifiez un type de machine A4 ou A3 Ultra. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
  • IMAGE_PROJECT : ID du projet de l'image de l'OS.
  • REGION : région dans laquelle vous souhaitez créer le modèle d'instance. Spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau gVNIC.
  • 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 7 jours.

Lié à la réservation

Pour créer un modèle d'instance régional, exécutez la commande gcloud compute instance-templates create.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --instance-template-region=REGION \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=DELETE \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Spécifiez un type de machine A4 ou A3 Ultra. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
  • IMAGE_PROJECT : ID du projet de l'image de l'OS.
  • REGION : région dans laquelle vous souhaitez créer le modèle d'instance. Spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau gVNIC.
  • RESERVATION : nom de la réservation ou d'un bloc spécifique dans une réservation. Pour obtenir le nom de la réservation ou les blocs disponibles, consultez Afficher la capacité réservée. En fonction de vos exigences concernant l'emplacement des instances, choisissez l'une des options suivantes :
    • Pour créer des instances sur plusieurs blocs ou sur un seul bloc :

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      De plus, pour un seul bloc, créez le MIG en appliquant une règle de charge de travail qui spécifie une colocation de bloc (maxTopologyDistance=BLOCK). Compute Engine applique ensuite la règle à la réservation et crée des instances sur le même bloc.

    • Pour créer des instances sur un bloc spécifique :

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME

Spot

Pour créer un modèle d'instance régional, exécutez la commande gcloud compute instance-templates create.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --instance-template-region=REGION \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --no-restart-on-failure

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Spécifiez un type de machine A4 ou A3 Ultra. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
  • IMAGE_PROJECT : ID du projet de l'image de l'OS.
  • REGION : région dans laquelle vous souhaitez créer le modèle d'instance. Spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau gVNIC.
  • TERMINATION_ACTION : action à effectuer lorsque Compute Engine préempte l'instance, soit STOP (par défaut), soit DELETE.

REST

Les paramètres que vous devez spécifier dépendent de l'option de consommation que vous utilisez pour ce déploiement. Sélectionnez l'onglet correspondant au modèle de provisionnement de votre option de consommation.

Démarrage flexible

Pour créer un modèle d'instance régional, envoyez une requête POST à la méthode regionInstanceTemplates.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      }
    ],
    "reservationAffinity": {
        "consumeReservationType": "NO_RESERVATION"
      },
    "scheduling": {
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": RUN_DURATION
        },
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START"
      }

  }
}

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Spécifiez un type de machine A4 ou A3 Ultra. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
  • IMAGE_PROJECT : ID du projet de l'image de l'OS.
  • REGION : région dans laquelle vous souhaitez créer le modèle d'instance. Spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go.
  • NETWORK_PROJECT_ID : ID du projet du réseau.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau gVNIC.
  • REGION : région du sous-réseau.
  • 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).

Lié à la réservation

Pour créer un modèle d'instance régional, envoyez une requête POST à la méthode regionInstanceTemplates.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      }
    ],
    "reservationAffinity":{
        "consumeReservationType":"SPECIFIC_RESERVATION",
        "key":"compute.googleapis.com/reservation-name",
        "values":[
          "RESERVATION"
        ]
      },
    "scheduling":{
        "provisioningModel":"RESERVATION_BOUND",
        "instanceTerminationAction":"DELETE",
        "onHostMaintenance": "TERMINATE",
        "automaticRestart":true
      }
  }
}

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Spécifiez un type de machine A4 ou A3 Ultra. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
  • IMAGE_PROJECT : ID du projet de l'image de l'OS.
  • REGION : région dans laquelle vous souhaitez créer le modèle d'instance. Spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go.
  • NETWORK_PROJECT_ID : ID du projet du réseau.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau gVNIC.
  • REGION : région du sous-réseau.
  • RESERVATION : nom de la réservation ou d'un bloc spécifique dans une réservation. Pour obtenir le nom de la réservation ou les blocs disponibles, consultez Afficher la capacité réservée. En fonction de vos exigences concernant l'emplacement des instances, choisissez l'une des options suivantes :
    • Pour créer des instances sur plusieurs blocs ou sur un seul bloc :

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      De plus, pour un seul bloc, créez le MIG en appliquant une règle de charge de travail qui spécifie une colocation de bloc (maxTopologyDistance=BLOCK). Compute Engine applique ensuite la règle à la réservation et crée des instances sur le même bloc.

    • Pour créer des instances sur un bloc spécifique :

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME

Spot

Pour créer un modèle d'instance régional, envoyez une requête POST à la méthode regionInstanceTemplates.insert :

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      }
    ],
    "scheduling":
    {
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "TERMINATION_ACTION",
      "onHostMaintenance": "TERMINATE",
      "automaticRestart": false
    }
  }
}

Remplacez les éléments suivants :

  • INSTANCE_TEMPLATE_NAME : nom du modèle d'instance.
  • MACHINE_TYPE : type de machine à utiliser pour la VM. Spécifiez un type de machine A4 ou A3 Ultra. Pour en savoir plus, consultez Types de machines GPU.
  • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
  • IMAGE_PROJECT : ID du projet de l'image de l'OS.
  • REGION : région dans laquelle vous souhaitez créer le modèle d'instance. Spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
  • DISK_SIZE : taille du disque de démarrage en Go.
  • NETWORK_PROJECT_ID : ID du projet du réseau.
  • GVNIC_NAME_PREFIX : préfixe de nom que vous avez spécifié lors de la création des réseaux et sous-réseaux VPC standards qui utilisent des cartes d'interface réseau gVNIC.
  • REGION : région du sous-réseau.
  • TERMINATION_ACTION : action à effectuer lorsque Compute Engine préempte l'instance, soit STOP (par défaut), soit DELETE.

Une fois créé, vous pouvez consulter le modèle d'instance pour voir son ID et examiner les propriétés de l'instance.

Créer un MIG

Après avoir terminé toutes les étapes précédentes, créez un MIG en fonction de votre scénario :

Scénario Méthode pour créer un MIG et des VM Exemple
Vous disposez de plusieurs jobs ou de jobs parallèles pouvant démarrer avec n'importe quel nombre de VM. Créez un MIG et utilisez la taille cible pour spécifier le nombre de VM que vous souhaitez inclure dans le groupe.

Consultez Créer un MIG avec une taille cible.

Jobs d'inférence ML
Vous avez un job qui nécessite une distribution sur un nombre exact de VM. Créez un MIG sans VM, puis créez une demande de redimensionnement dans le MIG. La requête de redimensionnement vous permet d'obtenir des VM simultanément.

Consultez Créer un MIG et une demande de redimensionnement.

Jobs d'entraînement et d'affinage de ML distribués

Créer un MIG avec une taille cible

Si vous pouvez démarrer votre job sans créer toutes les VM en même temps, créez un MIG avec une taille cible. La taille cible détermine le nombre de VM dans le MIG. Le MIG commence à créer des VM en fonction de la disponibilité actuelle des ressources. Si une ressource est temporairement indisponible, le MIG tente continuellement de créer des VM pour atteindre la taille cible.

Pour créer un MIG avec une taille cible, sélectionnez l'une des options suivantes :

gcloud

Pour créer un MIG avec une taille cible spécifiée, utilisez la commande instance-groups managed create.

Les commandes permettant de créer un MIG utilisent une règle de charge de travail pour spécifier l'emplacement des VM. Si vous ne souhaitez pas utiliser de règle de charge de travail, supprimez le flag --workload-policy.

Créez un MIG zonal ou régional comme suit :

  • Pour créer un MIG zonal, utilisez la commande suivante :
    gcloud compute instance-groups managed create MIG_NAME \
      --template=INSTANCE_TEMPLATE_URL \
      --size=TARGET_SIZE \
      --workload-policy=WORKLOAD_POLICY_URL \
      --zone=ZONE
    
  • Pour créer un MIG régional, utilisez la commande suivante :
    gcloud compute instance-groups managed create MIG_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --size=TARGET_SIZE \
        --workload-policy=WORKLOAD_POLICY_URL \
        --region=REGION
    
Remplacez les éléments suivants :
  • MIG_NAME : nom du MIG.
  • INSTANCE_TEMPLATE_URL : URL du modèle d'instance que vous souhaitez utiliser pour créer des VM 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
  • TARGET_SIZE : nombre de VM que vous souhaitez inclure dans le MIG.
  • WORKLOAD_POLICY_URL : URL de la règle de charge de travail (facultatif). Exemple : projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy. Si vous ne souhaitez pas utiliser de règle de charge de travail, vous pouvez supprimer l'indicateur --workload-policy.
  • ZONE : zone dans laquelle vous souhaitez créer le MIG. Si vous utilisez une règle de charge de travail, spécifiez une zone dans la région de la règle.
  • REGION : région dans laquelle vous souhaitez créer le MIG. Si vous utilisez une règle de charge de travail, spécifiez la même région que celle de la règle. Pour un MIG régional, vous pouvez spécifier les zones de cette région au lieu de la région elle-même en utilisant l'indicateur --zones.

REST

Pour créer un MIG avec une taille cible spécifiée, envoyez une requête POST.

Les requêtes de création d'un MIG utilisent une stratégie de charge de travail pour spécifier l'emplacement des VM. Si vous ne souhaitez pas utiliser de règle de charge de travail, supprimez le champ resourcePolicies.workloadPolicy.

Créez un MIG zonal ou régional comme suit :

  • 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
    {
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ],
      "name": "MIG_NAME",
      "instanceTemplate": "INSTANCE_TEMPLATE_URL",
      "targetSize": "TARGET_SIZE",
      "resourcePolicies": {
        "workloadPolicy": WORKLOAD_POLICY_URL
      }
    }
    
  • 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
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "instanceTemplate": "INSTANCE_TEMPLATE_URL",
        "targetSize": "TARGET_SIZE",
        "resourcePolicies": {
          "workloadPolicy": WORKLOAD_POLICY_URL
        }
      }
    
Remplacez les éléments suivants :
  • PROJECT_ID : ID du projet.
  • ZONE : zone dans laquelle vous souhaitez créer le MIG. Si vous utilisez une règle de charge de travail, spécifiez une zone dans la région de la règle.
  • REGION : région dans laquelle vous souhaitez créer le MIG. Si vous utilisez une règle de charge de travail, spécifiez la même région que celle de la règle.
  • INSTANCE_TEMPLATE_URL : URL du modèle d'instance que vous souhaitez utiliser pour créer des VM 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
  • MIG_NAME : nom du MIG.
  • TARGET_SIZE : nombre de VM que vous souhaitez inclure dans le MIG.
  • WORKLOAD_POLICY_URL : URL de la règle de charge de travail (facultatif). Par exemple : projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy. Si vous ne souhaitez pas utiliser de règle de charge de travail, supprimez le champ resourcePolicies.workloadPolicy.

Créer un MIG et une demande de redimensionnement

Si vous avez besoin de plusieurs VM en même temps pour démarrer un job, créez un MIG, puis créez une demande de redimensionnement dans le MIG, comme décrit dans cette section.

Pour créer une demande de redimensionnement dans un MIG, sélectionnez l'une des options suivantes.

gcloud

Les paramètres que vous devez spécifier dépendent de l'option de consommation que vous utilisez pour ce déploiement. Sélectionnez l'onglet correspondant au modèle de provisionnement de votre option de consommation.

Démarrage flexible

Pour créer un MIG zonal ou régional et une demande de redimensionnement :

  • Pour créer un MIG zonal et une demande de redimensionnement dans celui-ci :

    1. Créez un MIG zonal à l'aide de la commande instance-groups managed create comme suit.

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --default-action-on-vm-failure=do-nothing \
          --zone=ZONE
      
    2. Créez une demande de redimensionnement dans le MIG zonal à l'aide de la commande instance-groups managed resize-requests create comme suit :

      gcloud compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --zone=ZONE
      
  • Pour créer un MIG régional et une demande de redimensionnement dans celui-ci :

    1. Créez un MIG régional à l'aide de la commande instance-groups managed create comme suit.

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --default-action-on-vm-failure=do-nothing \
          --zones=ZONE \
          --target-distribution-shape=any-single-zone \
          --instance-redistribution-type=none
        
    2. Créez une demande de redimensionnement dans le MIG régional à l'aide de la commande bêta instance-groups managed resize-requests create comme suit :

      gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --region=REGION
      

Lié à la réservation

Les commandes permettant de créer un MIG utilisent une règle de charge de travail pour spécifier l'emplacement des VM. Si vous ne souhaitez pas utiliser de règle de charge de travail, supprimez le flag --workload-policy.

Pour créer un MIG zonal ou régional et une demande de redimensionnement :

  • Pour créer un MIG zonal et une demande de redimensionnement dans celui-ci :

    1. Créez un MIG zonal à l'aide de la commande instance-groups managed create comme suit.

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --workload-policy=WORKLOAD_POLICY_URL \
          --zone=ZONE
      
    2. Créez une demande de redimensionnement dans le MIG zonal à l'aide de la commande instance-groups managed resize-requests create comme suit :

      gcloud compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --zone=ZONE
      
  • Pour créer un MIG régional et une demande de redimensionnement dans celui-ci :

    1. Créez un MIG régional à l'aide de la commande instance-groups managed create comme suit.

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --workload-policy=WORKLOAD_POLICY_URL \
          --zones=ZONE \
          --target-distribution-shape=any-single-zone \
          --instance-redistribution-type=none
        
    2. Créez une demande de redimensionnement dans le MIG régional à l'aide de la commande bêta instance-groups managed resize-requests create comme suit :

      gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --region=REGION
      

Spot

Les commandes permettant de créer un MIG utilisent une règle de charge de travail pour spécifier l'emplacement des VM. Si vous ne souhaitez pas utiliser de règle de charge de travail, supprimez le flag --workload-policy.

Pour créer un MIG zonal ou régional et une demande de redimensionnement :

  • Pour créer un MIG zonal et une demande de redimensionnement dans celui-ci :

    1. Créez un MIG zonal à l'aide de la commande instance-groups managed create comme suit.

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --workload-policy=WORKLOAD_POLICY_URL \
          --zone=ZONE
      
    2. Créez une demande de redimensionnement dans le MIG zonal à l'aide de la commande instance-groups managed resize-requests create comme suit :

      gcloud compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --zone=ZONE
      
  • Pour créer un MIG régional et une demande de redimensionnement dans celui-ci :

    1. Créez un MIG régional à l'aide de la commande instance-groups managed create comme suit.

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --workload-policy=WORKLOAD_POLICY_URL \
          --zones=ZONE \
          --target-distribution-shape=any-single-zone \
          --instance-redistribution-type=none
        
    2. Créez une demande de redimensionnement dans le MIG régional à l'aide de la commande bêta instance-groups managed resize-requests create comme suit :

      gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --region=REGION
      
Remplacez les éléments suivants :
  • MIG_NAME : nom du MIG.
  • INSTANCE_TEMPLATE_URL : URL du modèle d'instance que vous souhaitez utiliser pour créer des VM 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
  • WORKLOAD_POLICY_URL : URL de la règle de charge de travail (facultatif). Par exemple : projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy. Si vous ne souhaitez pas utiliser de règle de charge de travail, supprimez l'indicateur --workload-policy.
  • ZONE : zone dans laquelle vous souhaitez créer le MIG. Pour un MIG régional, vous devez également spécifier une zone. Cette zone doit être celle qui contient le profil de votre réseau VPC et doit être une zone où le type de machine est disponible. Pour en savoir plus, consultez la section Limites.
  • 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.
  • REGION : région dans laquelle se trouve le MIG.

Si votre charge de travail nécessite des noms de VM spécifiques, vous pouvez spécifier une liste de noms de VM à créer à l'aide de la commande beta instance-groups managed resize-requests create. Dans la commande, remplacez l'option --resize-request par l'option --instances.

REST

Les paramètres que vous devez spécifier dépendent de l'option de consommation que vous utilisez pour ce déploiement. Sélectionnez l'onglet correspondant au modèle de provisionnement de votre option de consommation.

Démarrage flexible

Pour créer un MIG zonal ou régional et une demande de redimensionnement :

  • Pour créer un MIG zonal et une demande de redimensionnement dans celui-ci, procédez comme suit :
    1. Créez un MIG zonal en envoyant une requête POST à 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": "MIG_NAME",
        "targetSize": 0,
        "instanceLifecyclePolicy": {
          "defaultActionOnFailure": "DO_NOTHING"
        }
      }
      
    2. Créez une demande de redimensionnement dans le MIG zonal en envoyant une requête POST à la méthode instanceGroupManagerResizeRequests.insert comme suit :
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
  • Pour créer un MIG régional et une demande de redimensionnement dans celui-ci :
    1. Créez un MIG régional en envoyant une requête POST à 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": "MIG_NAME",
        "targetSize": 0,
        "distributionPolicy": {
          "targetShape": "ANY_SINGLE_ZONE",
          "zones": [
            {
              "zone": "projects/PROJECT_ID/zones/ZONE"
            }
          ]
        },
        "updatePolicy": {
          "instanceRedistributionType": "NONE"
        },
        "instanceLifecyclePolicy": {
          "defaultActionOnFailure": "DO_NOTHING"
        }
      }
      
    2. Créez une demande de redimensionnement dans le MIG régional en envoyant une requête POST à la méthode beta.regionInstanceGroupManagerResizeRequests.insert comme suit :
      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      

Lié à la réservation

Les requêtes de création d'un MIG utilisent une stratégie de charge de travail pour spécifier l'emplacement des VM. Si vous ne souhaitez pas utiliser de règle de charge de travail, supprimez le champ resourcePolicies.workloadPolicy.

Pour créer un MIG zonal ou régional et une demande de redimensionnement :

  • Pour créer un MIG zonal et une demande de redimensionnement dans celui-ci, procédez comme suit :
    1. Créez un MIG zonal en envoyant une requête POST à 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": "MIG_NAME",
        "targetSize": 0,
        "resourcePolicies": {
          "workloadPolicy": WORKLOAD_POLICY_URL
        }
      }
      
    2. Créez une demande de redimensionnement dans le MIG zonal en envoyant une requête POST à la méthode instanceGroupManagerResizeRequests.insert comme suit :
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
  • Pour créer un MIG régional et une demande de redimensionnement dans celui-ci :
    1. Créez un MIG régional en envoyant une requête POST à 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": "MIG_NAME",
        "targetSize": 0,
        "distributionPolicy": {
          "targetShape": "ANY_SINGLE_ZONE",
          "zones": [
            {
              "zone": "projects/PROJECT_ID/zones/ZONE"
            }
          ]
        },
        "updatePolicy": {
          "instanceRedistributionType": "NONE"
        },
        "resourcePolicies": {
          "workloadPolicy": WORKLOAD_POLICY_URL
        }
      }
      
    2. Créez une demande de redimensionnement dans le MIG régional en envoyant une requête POST à la méthode beta.regionInstanceGroupManagerResizeRequests.insert comme suit :
      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      

Spot

Les requêtes de création d'un MIG utilisent une stratégie de charge de travail pour spécifier l'emplacement des VM. Si vous ne souhaitez pas utiliser de règle de charge de travail, supprimez le champ resourcePolicies.workloadPolicy.

Pour créer un MIG zonal ou régional et une demande de redimensionnement :

  • Pour créer un MIG zonal et une demande de redimensionnement dans celui-ci, procédez comme suit :
    1. Créez un MIG zonal en envoyant une requête POST à 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": "MIG_NAME",
        "targetSize": 0,
        "resourcePolicies": {
          "workloadPolicy": WORKLOAD_POLICY_URL
        }
      }
      
    2. Créez une demande de redimensionnement dans le MIG zonal en envoyant une requête POST à la méthode instanceGroupManagerResizeRequests.insert comme suit :
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
  • Pour créer un MIG régional et une demande de redimensionnement dans celui-ci :
    1. Créez un MIG régional en envoyant une requête POST à 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": "MIG_NAME",
        "targetSize": 0,
        "distributionPolicy": {
          "targetShape": "ANY_SINGLE_ZONE",
          "zones": [
            {
              "zone": "projects/PROJECT_ID/zones/ZONE"
            }
          ]
        },
        "updatePolicy": {
          "instanceRedistributionType": "NONE"
        },
        "resourcePolicies": {
          "workloadPolicy": WORKLOAD_POLICY_URL
        }
      }
      
    2. Créez une demande de redimensionnement dans le MIG régional en envoyant une requête POST à la méthode beta.regionInstanceGroupManagerResizeRequests.insert comme suit :
      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
Remplacez les éléments suivants :
  • PROJECT_ID : ID du projet.
  • ZONE : zone dans laquelle vous souhaitez créer le MIG. Pour un MIG régional, vous devez également spécifier une zone. Cette zone doit être celle qui contient le profil de votre réseau VPC et doit être une zone où le type de machine est disponible. Pour en savoir plus, consultez la section Limites.
  • REGION : région dans laquelle vous souhaitez créer le MIG.
  • INSTANCE_TEMPLATE_URL : URL du modèle d'instance que vous souhaitez utiliser pour créer des VM 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
  • MIG_NAME : nom du MIG.
  • WORKLOAD_POLICY_URL : URL de la règle de charge de travail (facultatif). Par exemple : projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy. Si vous ne souhaitez pas utiliser de règle de charge de travail, supprimez le champ resourcePolicies.workloadPolicy.
  • 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.

Si votre charge de travail nécessite des noms de VM spécifiques, vous pouvez spécifier une liste de noms de VM à créer. Pour ce faire, envoyez une requête POST à la méthode beta.regionInstanceGroupManagerResizeRequests.insert pour un MIG régional ou à la méthode beta.instanceGroupManagerResizeRequests.insert pour un MIG zonal. Dans le corps de la requête, remplacez le champ resizeBy par le champ instanceNames.

Étape suivante