Créer des instances optimisées pour l'IA de manière groupée avec A3 High ou A3 Mega

Ce document explique comment créer des instances de machine virtuelle (VM) par lot qui utilisent les types de machines A3 High ou A3 Mega optimisés 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.

Pour en savoir plus sur la création de VM de manière groupée, consultez À propos de la création groupée de VM dans la documentation Compute Engine.

Pour découvrir d'autres méthodes de création de VM ou de clusters, consultez la page Présentation.

Avant de commencer

Avant de créer des VM de manière groupée, 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é.

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

In the Google Cloud console, activate Cloud Shell.

Activate Cloud Shell

At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

REST

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

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

    gcloud init

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

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

Rôles requis

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

Ce rôle prédéfini contient les autorisations requises pour créer des VM de manière groupée. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :

Autorisations requises

Les autorisations suivantes sont requises pour créer des VM de manière groupée :

  • compute.instances.create sur le projet
  • Pour créer la VM à l'aide d'une image personnalisée : compute.images.useReadOnly sur l'image
  • Pour créer la VM à l'aide d'un instantané : compute.snapshots.useReadOnly sur l'instantané
  • Pour créer la VM à l'aide d'un modèle d'instance : compute.instanceTemplates.useReadOnly sur le modèle d'instance
  • Pour spécifier un sous-réseau pour la VM : compute.subnetworks.use sur le projet ou sur le sous-réseau choisi
  • Pour spécifier une adresse IP statique pour la VM : compute.addresses.use sur le projet
  • Pour attribuer une adresse IP externe à la VM en cas d'utilisation d'un réseau VPC : compute.subnetworks.useExternalIp sur le projet ou sur le sous-réseau choisi
  • Pour attribuer un ancien réseau à la VM : compute.networks.use sur le projet
  • Pour attribuer une adresse IP externe à la VM en cas d'utilisation d'un ancien réseau : compute.networks.useExternalIp sur le projet
  • Pour définir les métadonnées d'instance de VM pour la VM : compute.instances.setMetadata sur le projet
  • Pour définir des tags pour la VM : compute.instances.setTags sur la VM
  • Pour définir des étiquettes pour la VM : compute.instances.setLabels sur la VM
  • Pour définir un compte de service que doit utiliser la VM : compute.instances.setServiceAccount sur la VM
  • Pour créer un disque pour la VM : compute.disks.create sur le projet
  • Pour associer un disque existant en mode lecture seule ou en mode lecture-écriture : compute.disks.use sur le disque
  • Pour associer un disque existant en mode lecture seule : compute.disks.useReadOnly sur le disque

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

Présentation

La création d'instances groupées avec le type de machine a3h-or-a3m comprend les étapes suivantes :

  1. Créer des réseaux VPC
  2. Facultatif : créer une stratégie d'emplacement compact
  3. Créer des instances de manière groupée

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, utilisez 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 stratégie d'emplacement compact

Vous pouvez spécifier l'emplacement des VM en créant une stratégie de concentration. Lorsque vous appliquez une stratégie d'emplacement compact à vos VM, 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 (concentration maximale), spécifiez le champ maxDistance (aperçu) lors de la création d'une stratégie de concentration. Une valeur maxDistance inférieure garantit un placement plus proche des VM, mais augmente également le risque que certaines VM ne soient pas créées.

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

gcloud

Pour créer une stratégie de concentration, utilisez la commande gcloud beta compute resource-policies create group-placement :

gcloud beta compute resource-policies create group-placement POLICY_NAME \
    --collocation=collocated \
    --max-distance=MAX_DISTANCE \
    --region=REGION

Remplacez les éléments suivants :

  • POLICY_NAME : nom de la stratégie d'emplacement compact.
  • MAX_DISTANCE : configuration de distance maximale pour vos VM. La valeur doit être 3 pour placer les VM dans les blocs adjacents ou 2 pour les placer dans le même bloc. Pour en savoir plus sur le nombre maximal de VM compatibles avec chaque maxDistance par série de machines, consultez À propos des stratégies d'emplacement compact dans la documentation Compute Engine.
  • REGION : région dans laquelle vous souhaitez créer la stratégie de concentration. 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.

REST

Pour créer une stratégie de concentration, envoyez une requête POST à la méthode resourcePolicies.insert en version bêta. Dans le corps de la requête, incluez le champ collocation défini sur COLLOCATED, ainsi que le champ maxDistance.

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/resourcePolicies
  {
    "name": "POLICY_NAME",
    "groupPlacementPolicy": {
      "collocation": "COLLOCATED",
      "maxDistance": MAX_DISTANCE
    }
  }

Remplacez les éléments suivants :

  • PROJECT_ID : ID de votre projet
  • POLICY_NAME : nom de la stratégie d'emplacement compact.
  • MAX_DISTANCE : configuration de distance maximale pour vos VM. La valeur doit être 3 pour placer les VM dans les blocs adjacents ou 2 pour les placer dans le même bloc. Pour en savoir plus sur le nombre maximal de VM compatibles avec chaque maxDistance par série de machines, consultez À propos des stratégies d'emplacement compact dans la documentation Compute Engine.
  • REGION : région dans laquelle vous souhaitez créer la stratégie de concentration. 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.

Créer des VM A3 High ou A3 Mega de manière groupée

Pour créer des VM A3 High ou A3 Mega de manière groupée, utilisez l'une des méthodes 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.

gcloud

Pour créer une VM A3 High ou A3 Mega, utilisez la commande gcloud compute instances bulk create.

A3 Mega

Pour créer des VM de manière groupée, utilisez la commande gcloud compute instances bulk create.

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.

Lié à la réservation

Avant d'exécuter la commande, vous pouvez éventuellement ajouter l'indicateur pour une stratégie de placement compacte.

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --region=REGION \
    --boot-disk-type=DISK_TYPE \
    --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=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

Procédez comme suit :

  1. Remplacez les éléments suivants :

    • NAME_PATTERN : modèle de nom des VM. Par exemple, le modèle de nom vm-# génère des VM portant les noms vm-1 et vm-2, jusqu'à ce qu'il atteigne le nombre de VM spécifié par --count.
    • COUNT : nombre de VM à créer.
    • 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 la gamme de machines A3 Mega, nous vous recommandons vivement d'utiliser l'image Container-Optimized OS cos-121-lts ou une version ultérieure et de désactiver les mises à jour automatiques, ou d'utiliser l'image Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580. 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. Par exemple, utilisez cos-cloud pour l'image Container-Optimized OS cos-121-lts ou version ultérieure, ou utilisez rocky-linux-accelerator-cloud pour l'image Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580.
    • REGION : spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Si vous souhaitez spécifier une stratégie d'emplacement compact, vous devez utiliser la même région que la stratégie d'emplacement compact. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
    • DISK_TYPE : type de disque de démarrage. Nous vous recommandons d'utiliser hyperdisk-balanced.
    • 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, appliquez une stratégie d'emplacement compact qui spécifie une colocation de bloc (maxDistance=2). 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
    • TERMINATION_ACTION : indique si Compute Engine arrête (STOP) ou supprime (DELETE) la VM à la fin de la période de réservation.

  2. Facultatif : Si vous avez choisi d'utiliser une stratégie d'emplacement compact, ajoutez l'indicateur suivant à la commande :

      --resource-policies=POLICY_NAME
    

    Remplacez les éléments suivants :

    • POLICY_NAME : nom de la stratégie d'emplacement compact.
  3. Exécutez la commande.

Spot

Avant d'exécuter la commande, vous pouvez éventuellement ajouter l'indicateur pour une stratégie de placement compacte.

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --region=REGION \
    --boot-disk-type=DISK_TYPE \
    --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

Procédez comme suit :

  1. Remplacez les éléments suivants :

    • NAME_PATTERN : modèle de nom des VM. Par exemple, le modèle de nom vm-# génère des VM portant les noms vm-1 et vm-2, jusqu'à ce qu'il atteigne le nombre de VM spécifié par --count.
    • COUNT : nombre de VM à créer.
    • 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 la gamme de machines A3 Mega, nous vous recommandons vivement d'utiliser l'image Container-Optimized OS cos-121-lts ou une version ultérieure et de désactiver les mises à jour automatiques, ou d'utiliser l'image Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580. 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. Par exemple, utilisez cos-cloud pour l'image Container-Optimized OS cos-121-lts ou version ultérieure, ou utilisez rocky-linux-accelerator-cloud pour l'image Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580.
    • REGION : spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Si vous souhaitez spécifier une stratégie d'emplacement compact, vous devez utiliser la même région que la stratégie d'emplacement compact. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
    • DISK_TYPE : type de disque de démarrage. Nous vous recommandons d'utiliser hyperdisk-balanced.
    • 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.

  2. Facultatif : Si vous avez choisi d'utiliser une stratégie d'emplacement compact, ajoutez l'indicateur suivant à la commande :

      --resource-policies=POLICY_NAME
    

    Remplacez les éléments suivants :

    • POLICY_NAME : nom de la stratégie d'emplacement compact.
  3. Exécutez la commande.

A3 High

Pour créer des VM de manière groupée, utilisez la commande gcloud compute instances bulk create.

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.

Lié à la réservation

Avant d'exécuter la commande, vous pouvez éventuellement ajouter l'indicateur pour une stratégie de placement compacte.

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --region=REGION \
    --boot-disk-type=DISK_TYPE \
    --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=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

Procédez comme suit :

  1. Remplacez les éléments suivants :

    • NAME_PATTERN : modèle de nom des VM. Par exemple, le modèle de nom vm-# génère des VM portant les noms vm-1 et vm-2, jusqu'à ce qu'il atteigne le nombre de VM spécifié par --count.
    • COUNT : nombre de VM à créer.
    • 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 la série de machines A3 High, nous vous recommandons vivement d'utiliser l'image Container-Optimized OS cos-121-lts ou version ultérieure et de désactiver les mises à jour automatiques. 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. Par exemple, utilisez cos-cloud pour l'image Container-Optimized OS cos-121-lts ou version ultérieure.
    • REGION : spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Si vous souhaitez spécifier une stratégie d'emplacement compact, vous devez utiliser la même région que la stratégie d'emplacement compact. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
    • DISK_TYPE : type de disque de démarrage. Nous vous recommandons d'utiliser hyperdisk-balanced.
    • 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, appliquez une stratégie d'emplacement compact qui spécifie une colocation de bloc (maxDistance=2). 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
    • TERMINATION_ACTION : indique si Compute Engine arrête (STOP) ou supprime (DELETE) la VM à la fin de la période de réservation.

  2. Facultatif : Si vous avez choisi d'utiliser une stratégie d'emplacement compact, ajoutez l'indicateur suivant à la commande :

      --resource-policies=POLICY_NAME
    

    Remplacez les éléments suivants :

    • POLICY_NAME : nom de la stratégie d'emplacement compact.
  3. Exécutez la commande.

Spot

Avant d'exécuter la commande, vous pouvez éventuellement ajouter l'indicateur pour une stratégie de placement compacte.

gcloud compute instances bulk create \
    --name-pattern=NAME_PATTERN \
    --count=COUNT \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --region=REGION \
    --boot-disk-type=DISK_TYPE \
    --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

Procédez comme suit :

  1. Remplacez les éléments suivants :

    • NAME_PATTERN : modèle de nom des VM. Par exemple, le modèle de nom vm-# génère des VM portant les noms vm-1 et vm-2, jusqu'à ce qu'il atteigne le nombre de VM spécifié par --count.
    • COUNT : nombre de VM à créer.
    • 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 la série de machines A3 High, nous vous recommandons vivement d'utiliser l'image Container-Optimized OS cos-121-lts ou version ultérieure et de désactiver les mises à jour automatiques. 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. Par exemple, utilisez cos-cloud pour l'image Container-Optimized OS cos-121-lts ou version ultérieure.
    • REGION : spécifiez une région dans laquelle le type de machine que vous souhaitez utiliser est disponible. Si vous souhaitez spécifier une stratégie d'emplacement compact, vous devez utiliser la même région que la stratégie d'emplacement compact. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
    • DISK_TYPE : type de disque de démarrage. Nous vous recommandons d'utiliser hyperdisk-balanced.
    • 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.

  2. Facultatif : Si vous avez choisi d'utiliser une stratégie d'emplacement compact, ajoutez l'indicateur suivant à la commande :

      --resource-policies=POLICY_NAME
    

    Remplacez les éléments suivants :

    • POLICY_NAME : nom de la stratégie d'emplacement compact.
  3. Exécutez la commande.

REST

Pour créer une VM A3 High ou A3 Mega, utilisez la méthode instances.bulkInsert.

A3 Mega

Pour créer des VM de manière groupée, envoyez une requête POST à la méthode instances.bulkInsert.

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.

Lié à la réservation

Avant d'envoyer la requête, vous pouvez ajouter le sous-champ instanceProperties pour une stratégie d'emplacement compact au corps de la requête.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
{
  "namePattern":"NAME_PATTERN",
  "count":"COUNT",
  "instanceProperties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"DISK_TYPE",
          "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
      }
  }
}

Procédez comme suit :

  1. Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel vous souhaitez créer la VM.
    • ZONE : spécifiez une zone dans laquelle le type de machine que vous souhaitez utiliser est disponible. Si vous souhaitez spécifier une stratégie d'emplacement compact, vous devez utiliser une zone située dans la même région que la stratégie d'emplacement compact. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
    • NAME_PATTERN : modèle de nom des VM. Par exemple, le modèle de nom vm-# génère des VM portant les noms vm-1 et vm-2, jusqu'à ce qu'il atteigne le nombre de VM spécifié par --count.
    • COUNT : nombre de VM à créer.
    • 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.
    • VM_NAME : Nom de la VM.
    • DISK_SIZE : taille du disque de démarrage en Go.
    • DISK_TYPE : type de disque de démarrage. Nous vous recommandons d'utiliser hyperdisk-balanced.
    • IMAGE_PROJECT : ID du projet de l'image de l'OS. Par exemple, utilisez cos-cloud pour l'image Container-Optimized OS cos-121-lts ou version ultérieure, ou utilisez rocky-linux-accelerator-cloud pour l'image Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580.
    • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour la gamme de machines A3 Mega, nous vous recommandons vivement d'utiliser l'image Container-Optimized OS cos-121-lts ou une version ultérieure et de désactiver les mises à jour automatiques, ou d'utiliser l'image Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
    • 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, appliquez une stratégie d'emplacement compact qui spécifie une colocation de bloc (maxDistance=2). 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
    • TERMINATION_ACTION : indique si Compute Engine arrête (STOP) ou supprime (DELETE) la VM à la fin de la période de réservation.

  2. Facultatif : Si vous avez choisi d'utiliser une stratégie d'emplacement compact, ajoutez le sous-champ instanceProperties suivant au corps de la requête :

        "resourcePolicies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
        ]
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet de la stratégie d'emplacement compact.
    • REGION : région de la stratégie d'emplacement compact.
    • POLICY_NAME : nom de la stratégie d'emplacement compact.
  3. Envoyez la demande.

Spot

Avant d'envoyer la requête, vous pouvez ajouter le sous-champ instanceProperties pour une stratégie d'emplacement compact au corps de la requête.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
{
  "namePattern":"NAME_PATTERN",
  "count":"COUNT",
  "instanceProperties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"DISK_TYPE",
          "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
    }
  }
}

Procédez comme suit :

  1. Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel vous souhaitez créer la VM.
    • ZONE : spécifiez une zone dans laquelle le type de machine que vous souhaitez utiliser est disponible. Si vous souhaitez spécifier une stratégie d'emplacement compact, vous devez utiliser une zone située dans la même région que la stratégie d'emplacement compact. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
    • NAME_PATTERN : modèle de nom des VM. Par exemple, le modèle de nom vm-# génère des VM portant les noms vm-1 et vm-2, jusqu'à ce qu'il atteigne le nombre de VM spécifié par --count.
    • COUNT : nombre de VM à créer.
    • 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.
    • VM_NAME : Nom de la VM.
    • DISK_SIZE : taille du disque de démarrage en Go.
    • DISK_TYPE : type de disque de démarrage. Nous vous recommandons d'utiliser hyperdisk-balanced.
    • IMAGE_PROJECT : ID du projet de l'image de l'OS. Par exemple, utilisez cos-cloud pour l'image Container-Optimized OS cos-121-lts ou version ultérieure, ou utilisez rocky-linux-accelerator-cloud pour l'image Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580.
    • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour la gamme de machines A3 Mega, nous vous recommandons vivement d'utiliser l'image Container-Optimized OS cos-121-lts ou une version ultérieure et de désactiver les mises à jour automatiques, ou d'utiliser l'image Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
    • 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.

  2. Facultatif : Si vous avez choisi d'utiliser une stratégie d'emplacement compact, ajoutez le sous-champ instanceProperties suivant au corps de la requête :

        "resourcePolicies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
        ]
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet de la stratégie d'emplacement compact.
    • REGION : région de la stratégie d'emplacement compact.
    • POLICY_NAME : nom de la stratégie d'emplacement compact.
  3. Envoyez la demande.

A3 High

Pour créer des VM de manière groupée, envoyez une requête POST à la méthode instances.bulkInsert.

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.

Lié à la réservation

Avant d'envoyer la requête, vous pouvez ajouter le sous-champ instanceProperties pour une stratégie d'emplacement compact au corps de la requête.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
{
  "namePattern":"NAME_PATTERN",
  "count":"COUNT",
  "instanceProperties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"DISK_TYPE",
          "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
      }
  }
}

Procédez comme suit :

  1. Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel vous souhaitez créer la VM.
    • ZONE : spécifiez une zone dans laquelle le type de machine que vous souhaitez utiliser est disponible. Si vous souhaitez spécifier une stratégie d'emplacement compact, vous devez utiliser une zone située dans la même région que la stratégie d'emplacement compact. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
    • NAME_PATTERN : modèle de nom des VM. Par exemple, le modèle de nom vm-# génère des VM portant les noms vm-1 et vm-2, jusqu'à ce qu'il atteigne le nombre de VM spécifié par --count.
    • COUNT : nombre de VM à créer.
    • 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.
    • VM_NAME : Nom de la VM.
    • DISK_SIZE : taille du disque de démarrage en Go.
    • DISK_TYPE : type de disque de démarrage. Nous vous recommandons d'utiliser hyperdisk-balanced.
    • IMAGE_PROJECT : ID du projet de l'image de l'OS. Par exemple, utilisez cos-cloud pour l'image Container-Optimized OS cos-121-lts ou version ultérieure.
    • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour la série de machines A3 High, nous vous recommandons vivement d'utiliser l'image Container-Optimized OS cos-121-lts ou version ultérieure et de désactiver les mises à jour automatiques. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
    • 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, appliquez une stratégie d'emplacement compact qui spécifie une colocation de bloc (maxDistance=2). 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
    • TERMINATION_ACTION : indique si Compute Engine arrête (STOP) ou supprime (DELETE) la VM à la fin de la période de réservation.

  2. Facultatif : Si vous avez choisi d'utiliser une stratégie d'emplacement compact, ajoutez le sous-champ instanceProperties suivant au corps de la requête :

        "resourcePolicies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
        ]
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet de la stratégie d'emplacement compact.
    • REGION : région de la stratégie d'emplacement compact.
    • POLICY_NAME : nom de la stratégie d'emplacement compact.
  3. Envoyez la demande.

Spot

Avant d'envoyer la requête, vous pouvez ajouter le sous-champ instanceProperties pour une stratégie d'emplacement compact au corps de la requête.

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instances/bulkInsert
{
  "namePattern":"NAME_PATTERN",
  "count":"COUNT",
  "instanceProperties":{
    "machineType":"MACHINE_TYPE",
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"DISK_TYPE",
          "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
    }
  }
}

Procédez comme suit :

  1. Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel vous souhaitez créer la VM.
    • ZONE : spécifiez une zone dans laquelle le type de machine que vous souhaitez utiliser est disponible. Si vous souhaitez spécifier une stratégie d'emplacement compact, vous devez utiliser une zone située dans la même région que la stratégie d'emplacement compact. Pour en savoir plus sur les régions, consultez Disponibilité des GPU par région et par zone.
    • NAME_PATTERN : modèle de nom des VM. Par exemple, le modèle de nom vm-# génère des VM portant les noms vm-1 et vm-2, jusqu'à ce qu'il atteigne le nombre de VM spécifié par --count.
    • COUNT : nombre de VM à créer.
    • 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.
    • VM_NAME : Nom de la VM.
    • DISK_SIZE : taille du disque de démarrage en Go.
    • DISK_TYPE : type de disque de démarrage. Nous vous recommandons d'utiliser hyperdisk-balanced.
    • IMAGE_PROJECT : ID du projet de l'image de l'OS. Par exemple, utilisez cos-cloud pour l'image Container-Optimized OS cos-121-lts ou version ultérieure.
    • IMAGE_FAMILY : famille d'images à laquelle appartient l'image de l'OS que vous souhaitez utiliser. Pour la série de machines A3 High, nous vous recommandons vivement d'utiliser l'image Container-Optimized OS cos-121-lts ou version ultérieure et de désactiver les mises à jour automatiques. Pour obtenir la liste des systèmes d'exploitation compatibles, consultez la page Systèmes d'exploitation compatibles.
    • 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.

  2. Facultatif : Si vous avez choisi d'utiliser une stratégie d'emplacement compact, ajoutez le sous-champ instanceProperties suivant au corps de la requête :

        "resourcePolicies": [
          "projects/PROJECT_ID/regions/REGION/resourcePolicies/POLICY_NAME"
        ]
    

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet de la stratégie d'emplacement compact.
    • REGION : région de la stratégie d'emplacement compact.
    • POLICY_NAME : nom de la stratégie d'emplacement compact.
  3. Envoyez la demande.

Pour en savoir plus sur les options de configuration permettant de créer des VM de manière groupée, consultez Créer des VM de manière groupée dans la documentation Compute Engine.

Étapes suivantes