Criar instâncias otimizadas para IA em massa com A3 High ou A3 Mega

Neste documento, explicamos como criar instâncias de máquina virtual (VM) em massa que usam tipos de máquinas otimizadas para aceleradores A3 High ou A3 Mega. Para saber mais sobre os tipos de máquinas, consulte A3 High e A3 Mega na documentação do Compute Engine.

Para mais informações sobre a criação de VMs em massa, consulte Sobre a criação em massa de VMs na documentação do Compute Engine.

Para saber mais sobre outras maneiras de criar VMs ou clusters, consulte a página Visão geral.

Antes de começar

Antes de criar VMs em massa, siga estas etapas, caso ainda não tenha feito isso:

  1. Escolha uma opção de consumo: a opção escolhida determina como você recebe e usa os recursos de GPU.

    Para saber mais, consulte Escolher uma opção de consumo.

  2. Obter capacidade: o processo para obter capacidade varia de acordo com cada opção de consumo.

    Para saber mais sobre o processo de obtenção de capacidade para a opção de consumo escolhida, consulte Visão geral da capacidade.

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

Para usar as amostras da API REST desta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para gcloud CLI.

    Instale a CLI do Google Cloud. Após a instalação, inicialize a CLI do Google Cloud executando o seguinte comando:

    gcloud init

    Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.

Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .

Funções exigidas

Para receber as permissões necessárias para criar VMs em massa, peça ao administrador para conceder a você o papel do IAM de Administrador da instância do Compute (v1) (roles/compute.instanceAdmin.v1) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para criar VMs em massa. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para criar VMs em massa:

  • compute.instances.create no projeto
  • Usar uma imagem personalizada para criar a VM: compute.images.useReadOnly na imagem
  • Usar um snapshot para criar a VM: compute.snapshots.useReadOnly no snapshot
  • Usar um modelo de instância para criar a VM: compute.instanceTemplates.useReadOnly no modelo de instância
  • Especificar uma sub-rede para a VM: compute.subnetworks.use no projeto ou na sub-rede escolhida
  • Especificar um endereço IP estático para a VM: compute.addresses.use no projeto
  • Atribuir um endereço IP externo à VM ao usar uma rede VPC: compute.subnetworks.useExternalIp no projeto ou na sub-rede escolhida
  • Atribuir uma rede legada à VM: compute.networks.use no projeto
  • Atribuir um endereço IP externo à VM usando uma rede legada: compute.networks.useExternalIp no projeto
  • Definir os metadados da instância de VM para a VM: compute.instances.setMetadata no projeto
  • Definir tags para a VM: compute.instances.setTags na VM
  • Definir rótulos para a VM: compute.instances.setLabels na VM
  • Definir uma conta de serviço a ser usada pela VM: compute.instances.setServiceAccount na VM
  • Criar um disco para a VM: compute.disks.create no projeto
  • Anexar um disco atual no modo somente leitura ou de leitura e gravação: compute.disks.use no disco
  • Anexar um disco atual no modo somente leitura: compute.disks.useReadOnly no disco

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Visão geral

A criação de instâncias em massa com o tipo de máquina a3h-or-a3m inclui as seguintes etapas:

  1. Criar redes VPC
  2. Opcional: criar uma política de posicionamento compacto
  3. Criar instâncias em massa

Criar redes VPC

Para ativar a comunicação eficiente das suas VMs de GPU, crie uma rede de gerenciamento e uma ou mais redes de dados. A rede de gerenciamento é usada para acesso externo, por exemplo, SSH, e para a maioria das comunicações de rede gerais. As redes de dados são usadas para comunicação de alta performance entre as GPUs em diferentes VMs, por exemplo, para tráfego de acesso direto à memória remota (RDMA).

Para essas redes VPC, recomendamos definir a unidade máxima de transmissão (MTU) para um valor maior. Valores de MTU mais altos aumentam o tamanho do pacote e reduzem a sobrecarga do cabeçalho do pacote, o que aumenta a capacidade de dados do payload. Para mais informações sobre como criar redes VPC, consulte Criar e verificar uma rede MTU de frame jumbo.

Criar rede de gerenciamento, sub-rede e regra de firewall

Siga estas etapas para configurar a rede de gerenciamento:

  1. Crie a rede de gerenciamento usando o comando networks create:

    gcloud compute networks create NETWORK_NAME_PREFIX-mgmt-net \
        --project=PROJECT_ID \
        --subnet-mode=custom \
        --mtu=8244
    
  2. Crie a sub-rede de gerenciamento usando o comando 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. Crie regras de firewall usando o comando firewall-rules create.

    1. Crie uma regra de firewall para a rede de gerenciamento.

      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. Crie a regra de firewall tcp:22 para limitar quais endereços IP de origem podem se conectar à sua VM usando 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. Crie a regra de firewall icmp que pode ser usada para verificar se há problemas de transmissão de dados na rede.

      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
      

Substitua:

  • NETWORK_NAME_PREFIX: o prefixo de nome a ser usado para as redes e sub-redes VPC.
  • PROJECT_ID: o ID do projeto.
  • REGION: a região em que você quer criar as redes.
  • SSH_SOURCE_IP_RANGE: intervalo de IP no formato CIDR. Isso especifica quais endereços IP de origem podem se conectar à VM usando SSH.

Criar redes de dados, sub-redes e regra de firewall

O número de redes de dados varia de acordo com o tipo de máquina de GPU que você está criando.

A3 Mega

O A3 Mega exige oito redes de dados. Para criar oito redes de dados, cada uma com sub-redes e regras de firewall, use o comando a seguir.

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

O A3 High exige quatro redes de dados. Use o comando a seguir para criar quatro redes de dados, cada uma com sub-redes e regras de firewall.

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

Opcional: criar uma política de posicionamento compacto

É possível especificar o posicionamento de VMs criando uma política de posicionamento compacto. Quando você aplica uma política de posicionamento compacto às VMs, o Compute Engine faz o possível para criar VMs que estejam o mais próximas possível umas das outras. Se o aplicativo for sensível à latência e você quiser que as VMs fiquem mais próximas (compactação máxima), especifique o campo maxDistance (prévia) ao criar uma política de posicionamento compacto. Um valor de maxDistance menor garante um posicionamento mais próximo da VM, mas também aumenta a chance de algumas VMs não serem criadas.

Para criar uma política de posicionamento compacto, selecione uma das seguintes opções:

gcloud

Para criar uma política de posicionamento compacto, use o comando 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

Substitua:

  • POLICY_NAME: o nome da política de posicionamento compacto.
  • MAX_DISTANCE: a configuração da distância máxima para suas VMs. O valor precisa ser 3 para colocar VMs em blocos adjacentes ou 2 para colocar VMs no mesmo bloco. Para informações sobre o número máximo de VMs compatíveis com cada maxDistance por série de máquinas, consulte Sobre as políticas de posicionamento compactas na documentação do Compute Engine.
  • REGION: a região em que você quer criar a política de posicionamento compacto. Especifique uma região em que o tipo de máquina que você quer usar esteja disponível. Para informações sobre regiões, consulte Disponibilidade de GPUs por regiões e zonas.

REST

Para criar uma política de posicionamento compacto, faça uma solicitação POST para o método resourcePolicies.insert beta. No corpo da solicitação, inclua o campo collocation definido como COLLOCATED e o campo maxDistance.

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

Substitua:

  • PROJECT_ID: ID do projeto;
  • POLICY_NAME: o nome da política de posicionamento compacto.
  • MAX_DISTANCE: a configuração da distância máxima para suas VMs. O valor precisa ser 3 para colocar VMs em blocos adjacentes ou 2 para colocar VMs no mesmo bloco. Para informações sobre o número máximo de VMs compatíveis com cada maxDistance por série de máquinas, consulte Sobre as políticas de posicionamento compactas na documentação do Compute Engine.
  • REGION: a região em que você quer criar a política de posicionamento compacto. Especifique uma região em que o tipo de máquina que você quer usar esteja disponível. Para informações sobre regiões, consulte Disponibilidade de GPUs por regiões e zonas.

Criar VMs A3 High ou A3 Mega em massa

Para criar VMs A3 High ou A3 Mega em massa, use um dos seguintes métodos.

Os comandos a seguir também definem o escopo de acesso para suas instâncias. Para simplificar o gerenciamento de permissões, o Google recomenda definir o escopo de acesso de uma instância como cloud-platform e usar papéis do IAM para definir a quais serviços a instância pode acessar. Para mais informações, consulte Práticas recomendadas de escopos.

gcloud

Para criar uma VM A3 High ou A3 Mega, use o comando gcloud compute instances bulk create.

A3 Mega

Para criar VMs em massa, use o comando gcloud compute instances bulk create.

Os parâmetros que você precisa especificar dependem da opção de consumo que está usando para essa implantação. Selecione a guia que corresponde ao modelo de provisionamento da sua opção de consumo.

Vinculada à reserva

Antes de executar o comando, adicione a flag para uma política de posicionamento compacta.

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

Siga estas etapas:

  1. Substitua:

    • NAME_PATTERN: o padrão de nome das VMs. Por exemplo, usar vm-# para o padrão de nome gera VMs com nomes como vm-1 e vm-2, até o número de VMs especificado por --count.
    • COUNT: o número de VMs a serem criadas.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a VM. Especifique um tipo de máquina A4 ou A3 Ultra. Para mais informações, consulte Tipos de máquinas com GPU.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para a série de máquinas A3 Mega, recomendamos usar a imagem do Container-Optimized OS cos-121-lts ou mais recente e desativar as atualizações automáticas ou usar a imagem do Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580. Para uma lista de sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO. Por exemplo, use cos-cloud para a imagem do Container-Optimized OS cos-121-lts ou mais recente ou use rocky-linux-accelerator-cloud para a imagem do Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580.
    • REGION: especifique uma região em que o tipo de máquina que você quer usar esteja disponível. Se você quiser especificar uma política de posicionamento compacto, use a mesma região da política. Para informações sobre regiões, consulte Disponibilidade de GPUs por regiões e zonas.
    • DISK_TYPE: o tipo do disco de inicialização. Recomendamos usar hyperdisk-balanced.
    • DISK_SIZE: o tamanho do disco de inicialização em GB.
    • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
    • RESERVATION: o nome da reserva ou um bloco específico dentro de uma reserva. Para conferir o nome da reserva ou os blocos disponíveis, consulte Visualizar a capacidade reservada. Com base na sua exigência de posicionamento de instâncias, escolha uma das seguintes opções:
      • Para criar instâncias em vários blocos ou em um único bloco:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

        Além disso, para um único bloco, aplique uma política de posicionamento compacto que especifica uma colocação de bloco (maxDistance=2) . Em seguida, o Compute Engine aplica a política à reserva e cria instâncias no mesmo bloco.

      • Para criar instâncias em um bloco específico:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
    • TERMINATION_ACTION: se o Compute Engine interrompe (STOP) ou exclui (DELETE) a VM ao final do período de reserva.

  2. Opcional: se você escolheu usar uma política de posicionamento compacto, adicione a seguinte flag ao comando:

      --resource-policies=POLICY_NAME
    

    Substitua:

    • POLICY_NAME: o nome da política de posicionamento compacto.
  3. Execute o comando.

Spot

Antes de executar o comando, adicione a flag para uma política de posicionamento compacta.

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

Siga estas etapas:

  1. Substitua:

    • NAME_PATTERN: o padrão de nome das VMs. Por exemplo, usar vm-# para o padrão de nome gera VMs com nomes como vm-1 e vm-2, até o número de VMs especificado por --count.
    • COUNT: o número de VMs a serem criadas.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a VM. Especifique um tipo de máquina A4 ou A3 Ultra. Para mais informações, consulte Tipos de máquinas com GPU.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para a série de máquinas A3 Mega, recomendamos usar a imagem do Container-Optimized OS cos-121-lts ou mais recente e desativar as atualizações automáticas ou usar a imagem do Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580. Para uma lista de sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO. Por exemplo, use cos-cloud para a imagem do Container-Optimized OS cos-121-lts ou mais recente ou use rocky-linux-accelerator-cloud para a imagem do Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580.
    • REGION: especifique uma região em que o tipo de máquina que você quer usar esteja disponível. Se você quiser especificar uma política de posicionamento compacto, use a mesma região da política. Para informações sobre regiões, consulte Disponibilidade de GPUs por regiões e zonas.
    • DISK_TYPE: o tipo do disco de inicialização. Recomendamos usar hyperdisk-balanced.
    • DISK_SIZE: o tamanho do disco de inicialização em GB.
    • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
    • TERMINATION_ACTION: a ação a ser realizada quando o Compute Engine forçar a interrupção da instância, STOP (padrão) ou DELETE.

  2. Opcional: se você escolheu usar uma política de posicionamento compacto, adicione a seguinte flag ao comando:

      --resource-policies=POLICY_NAME
    

    Substitua:

    • POLICY_NAME: o nome da política de posicionamento compacto.
  3. Execute o comando.

A3 High

Para criar VMs em massa, use o comando gcloud compute instances bulk create.

Os parâmetros que você precisa especificar dependem da opção de consumo que está usando para essa implantação. Selecione a guia que corresponde ao modelo de provisionamento da sua opção de consumo.

Vinculada à reserva

Antes de executar o comando, adicione a flag para uma política de posicionamento compacta.

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

Siga estas etapas:

  1. Substitua:

    • NAME_PATTERN: o padrão de nome das VMs. Por exemplo, usar vm-# para o padrão de nome gera VMs com nomes como vm-1 e vm-2, até o número de VMs especificado por --count.
    • COUNT: o número de VMs a serem criadas.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a VM. Especifique um tipo de máquina A4 ou A3 Ultra. Para mais informações, consulte Tipos de máquinas com GPU.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para a série de máquinas A3 High, recomendamos usar a imagem do Container-Optimized OS cos-121-lts ou mais recente e desativar as atualizações automáticas. Para uma lista de sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO. Por exemplo, use cos-cloud para a imagem do Container-Optimized OS cos-121-lts ou mais recente.
    • REGION: especifique uma região em que o tipo de máquina que você quer usar esteja disponível. Se você quiser especificar uma política de posicionamento compacto, use a mesma região da política. Para informações sobre regiões, consulte Disponibilidade de GPUs por regiões e zonas.
    • DISK_TYPE: o tipo do disco de inicialização. Recomendamos usar hyperdisk-balanced.
    • DISK_SIZE: o tamanho do disco de inicialização em GB.
    • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
    • RESERVATION: o nome da reserva ou um bloco específico dentro de uma reserva. Para conferir o nome da reserva ou os blocos disponíveis, consulte Visualizar a capacidade reservada. Com base na sua exigência de posicionamento de instâncias, escolha uma das seguintes opções:
      • Para criar instâncias em vários blocos ou em um único bloco:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

        Além disso, para um único bloco, aplique uma política de posicionamento compacto que especifica uma colocação de bloco (maxDistance=2) . Em seguida, o Compute Engine aplica a política à reserva e cria instâncias no mesmo bloco.

      • Para criar instâncias em um bloco específico:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
    • TERMINATION_ACTION: se o Compute Engine interrompe (STOP) ou exclui (DELETE) a VM ao final do período de reserva.

  2. Opcional: se você escolheu usar uma política de posicionamento compacto, adicione a seguinte flag ao comando:

      --resource-policies=POLICY_NAME
    

    Substitua:

    • POLICY_NAME: o nome da política de posicionamento compacto.
  3. Execute o comando.

Spot

Antes de executar o comando, adicione a flag para uma política de posicionamento compacta.

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

Siga estas etapas:

  1. Substitua:

    • NAME_PATTERN: o padrão de nome das VMs. Por exemplo, usar vm-# para o padrão de nome gera VMs com nomes como vm-1 e vm-2, até o número de VMs especificado por --count.
    • COUNT: o número de VMs a serem criadas.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a VM. Especifique um tipo de máquina A4 ou A3 Ultra. Para mais informações, consulte Tipos de máquinas com GPU.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para a série de máquinas A3 High, recomendamos usar a imagem do Container-Optimized OS cos-121-lts ou mais recente e desativar as atualizações automáticas. Para uma lista de sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO. Por exemplo, use cos-cloud para a imagem do Container-Optimized OS cos-121-lts ou mais recente.
    • REGION: especifique uma região em que o tipo de máquina que você quer usar esteja disponível. Se você quiser especificar uma política de posicionamento compacto, use a mesma região da política. Para informações sobre regiões, consulte Disponibilidade de GPUs por regiões e zonas.
    • DISK_TYPE: o tipo do disco de inicialização. Recomendamos usar hyperdisk-balanced.
    • DISK_SIZE: o tamanho do disco de inicialização em GB.
    • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
    • TERMINATION_ACTION: a ação a ser realizada quando o Compute Engine forçar a interrupção da instância, STOP (padrão) ou DELETE.

  2. Opcional: se você escolheu usar uma política de posicionamento compacto, adicione a seguinte flag ao comando:

      --resource-policies=POLICY_NAME
    

    Substitua:

    • POLICY_NAME: o nome da política de posicionamento compacto.
  3. Execute o comando.

REST

Para criar uma VM A3 High ou A3 Mega, use o método instances.bulkInsert.

A3 Mega

Para criar VMs em massa, faça uma solicitação POST para o método instances.bulkInsert.

Os parâmetros que você precisa especificar dependem da opção de consumo que está usando para essa implantação. Selecione a guia que corresponde ao modelo de provisionamento da sua opção de consumo.

Vinculada à reserva

Antes de enviar a solicitação, adicione opcionalmente o subcampo instanceProperties para uma política de posicionamento compacto ao corpo da solicitação.

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

Siga estas etapas:

  1. Substitua:

    • PROJECT_ID: o ID do projeto em que você quer criar a VM.
    • ZONE: especifique uma zona em que o tipo de máquina que você quer usar esteja disponível. Se você quiser especificar uma política de posicionamento compacto, use uma zona na mesma região da política. Para informações sobre regiões, consulte Disponibilidade de GPUs por regiões e zonas.
    • NAME_PATTERN: o padrão de nome das VMs. Por exemplo, usar vm-# para o padrão de nome gera VMs com nomes como vm-1 e vm-2, até o número de VMs especificado por --count.
    • COUNT: o número de VMs a serem criadas.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a VM. Especifique um tipo de máquina A4 ou A3 Ultra. Para mais informações, consulte Tipos de máquinas com GPU.
    • VM_NAME: o nome da VM.
    • DISK_SIZE: o tamanho do disco de inicialização em GB.
    • DISK_TYPE: o tipo do disco de inicialização. Recomendamos usar hyperdisk-balanced.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO. Por exemplo, use cos-cloud para a imagem do Container-Optimized OS cos-121-lts ou mais recente ou use rocky-linux-accelerator-cloud para a imagem do Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para a série de máquinas A3 Mega, recomendamos usar a imagem do Container-Optimized OS cos-121-lts ou mais recente e desativar as atualizações automáticas ou usar a imagem do Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580. Para uma lista de sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
    • NETWORK_PROJECT_ID: o ID do projeto da rede.
    • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
    • REGION: a região da sub-rede.
    • RESERVATION: o nome da reserva ou um bloco específico dentro de uma reserva. Para conferir o nome da reserva ou os blocos disponíveis, consulte Visualizar a capacidade reservada. Com base na sua exigência de posicionamento de instâncias, escolha uma das seguintes opções:
      • Para criar instâncias em vários blocos ou em um único bloco:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

        Além disso, para um único bloco, aplique uma política de posicionamento compacto que especifica uma colocação de bloco (maxDistance=2) . Em seguida, o Compute Engine aplica a política à reserva e cria instâncias no mesmo bloco.

      • Para criar instâncias em um bloco específico:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
    • TERMINATION_ACTION: se o Compute Engine interrompe (STOP) ou exclui (DELETE) a VM ao final do período de reserva.

  2. Opcional: se você escolheu usar uma política de posicionamento compacto, adicione o seguinte subcampo instanceProperties ao corpo da solicitação:

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

    Substitua:

    • PROJECT_ID: o ID do projeto da política de posicionamento compacto.
    • REGION: a região da política de posicionamento compacto.
    • POLICY_NAME: o nome da política de posicionamento compacto.
  3. Envie a solicitação.

Spot

Antes de enviar a solicitação, adicione opcionalmente o subcampo instanceProperties para uma política de posicionamento compacto ao corpo da solicitação.

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

Siga estas etapas:

  1. Substitua:

    • PROJECT_ID: o ID do projeto em que você quer criar a VM.
    • ZONE: especifique uma zona em que o tipo de máquina que você quer usar esteja disponível. Se você quiser especificar uma política de posicionamento compacto, use uma zona na mesma região da política. Para informações sobre regiões, consulte Disponibilidade de GPUs por regiões e zonas.
    • NAME_PATTERN: o padrão de nome das VMs. Por exemplo, usar vm-# para o padrão de nome gera VMs com nomes como vm-1 e vm-2, até o número de VMs especificado por --count.
    • COUNT: o número de VMs a serem criadas.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a VM. Especifique um tipo de máquina A4 ou A3 Ultra. Para mais informações, consulte Tipos de máquinas com GPU.
    • VM_NAME: o nome da VM.
    • DISK_SIZE: o tamanho do disco de inicialização em GB.
    • DISK_TYPE: o tipo do disco de inicialização. Recomendamos usar hyperdisk-balanced.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO. Por exemplo, use cos-cloud para a imagem do Container-Optimized OS cos-121-lts ou mais recente ou use rocky-linux-accelerator-cloud para a imagem do Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para a série de máquinas A3 Mega, recomendamos usar a imagem do Container-Optimized OS cos-121-lts ou mais recente e desativar as atualizações automáticas ou usar a imagem do Rocky Linux rocky-linux-8-optimized-gcp-nvidia-580. Para uma lista de sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
    • NETWORK_PROJECT_ID: o ID do projeto da rede.
    • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
    • REGION: a região da sub-rede.
    • TERMINATION_ACTION: a ação a ser realizada quando o Compute Engine forçar a interrupção da instância, STOP (padrão) ou DELETE.

  2. Opcional: se você escolheu usar uma política de posicionamento compacto, adicione o seguinte subcampo instanceProperties ao corpo da solicitação:

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

    Substitua:

    • PROJECT_ID: o ID do projeto da política de posicionamento compacto.
    • REGION: a região da política de posicionamento compacto.
    • POLICY_NAME: o nome da política de posicionamento compacto.
  3. Envie a solicitação.

A3 High

Para criar VMs em massa, faça uma solicitação POST para o método instances.bulkInsert.

Os parâmetros que você precisa especificar dependem da opção de consumo que está usando para essa implantação. Selecione a guia que corresponde ao modelo de provisionamento da sua opção de consumo.

Vinculada à reserva

Antes de enviar a solicitação, adicione opcionalmente o subcampo instanceProperties para uma política de posicionamento compacto ao corpo da solicitação.

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

Siga estas etapas:

  1. Substitua:

    • PROJECT_ID: o ID do projeto em que você quer criar a VM.
    • ZONE: especifique uma zona em que o tipo de máquina que você quer usar esteja disponível. Se você quiser especificar uma política de posicionamento compacto, use uma zona na mesma região da política. Para informações sobre regiões, consulte Disponibilidade de GPUs por regiões e zonas.
    • NAME_PATTERN: o padrão de nome das VMs. Por exemplo, usar vm-# para o padrão de nome gera VMs com nomes como vm-1 e vm-2, até o número de VMs especificado por --count.
    • COUNT: o número de VMs a serem criadas.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a VM. Especifique um tipo de máquina A4 ou A3 Ultra. Para mais informações, consulte Tipos de máquinas com GPU.
    • VM_NAME: o nome da VM.
    • DISK_SIZE: o tamanho do disco de inicialização em GB.
    • DISK_TYPE: o tipo do disco de inicialização. Recomendamos usar hyperdisk-balanced.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO. Por exemplo, use cos-cloud para a imagem do Container-Optimized OS cos-121-lts ou mais recente.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para a série de máquinas A3 High, recomendamos usar a imagem do Container-Optimized OS cos-121-lts ou mais recente e desativar as atualizações automáticas. Para uma lista de sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
    • NETWORK_PROJECT_ID: o ID do projeto da rede.
    • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
    • REGION: a região da sub-rede.
    • RESERVATION: o nome da reserva ou um bloco específico dentro de uma reserva. Para conferir o nome da reserva ou os blocos disponíveis, consulte Visualizar a capacidade reservada. Com base na sua exigência de posicionamento de instâncias, escolha uma das seguintes opções:
      • Para criar instâncias em vários blocos ou em um único bloco:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

        Além disso, para um único bloco, aplique uma política de posicionamento compacto que especifica uma colocação de bloco (maxDistance=2) . Em seguida, o Compute Engine aplica a política à reserva e cria instâncias no mesmo bloco.

      • Para criar instâncias em um bloco específico:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
    • TERMINATION_ACTION: se o Compute Engine interrompe (STOP) ou exclui (DELETE) a VM ao final do período de reserva.

  2. Opcional: se você escolheu usar uma política de posicionamento compacto, adicione o seguinte subcampo instanceProperties ao corpo da solicitação:

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

    Substitua:

    • PROJECT_ID: o ID do projeto da política de posicionamento compacto.
    • REGION: a região da política de posicionamento compacto.
    • POLICY_NAME: o nome da política de posicionamento compacto.
  3. Envie a solicitação.

Spot

Antes de enviar a solicitação, adicione opcionalmente o subcampo instanceProperties para uma política de posicionamento compacto ao corpo da solicitação.

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

Siga estas etapas:

  1. Substitua:

    • PROJECT_ID: o ID do projeto em que você quer criar a VM.
    • ZONE: especifique uma zona em que o tipo de máquina que você quer usar esteja disponível. Se você quiser especificar uma política de posicionamento compacto, use uma zona na mesma região da política. Para informações sobre regiões, consulte Disponibilidade de GPUs por regiões e zonas.
    • NAME_PATTERN: o padrão de nome das VMs. Por exemplo, usar vm-# para o padrão de nome gera VMs com nomes como vm-1 e vm-2, até o número de VMs especificado por --count.
    • COUNT: o número de VMs a serem criadas.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a VM. Especifique um tipo de máquina A4 ou A3 Ultra. Para mais informações, consulte Tipos de máquinas com GPU.
    • VM_NAME: o nome da VM.
    • DISK_SIZE: o tamanho do disco de inicialização em GB.
    • DISK_TYPE: o tipo do disco de inicialização. Recomendamos usar hyperdisk-balanced.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO. Por exemplo, use cos-cloud para a imagem do Container-Optimized OS cos-121-lts ou mais recente.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para a série de máquinas A3 High, recomendamos usar a imagem do Container-Optimized OS cos-121-lts ou mais recente e desativar as atualizações automáticas. Para uma lista de sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
    • NETWORK_PROJECT_ID: o ID do projeto da rede.
    • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
    • REGION: a região da sub-rede.
    • TERMINATION_ACTION: a ação a ser realizada quando o Compute Engine forçar a interrupção da instância, STOP (padrão) ou DELETE.

  2. Opcional: se você escolheu usar uma política de posicionamento compacto, adicione o seguinte subcampo instanceProperties ao corpo da solicitação:

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

    Substitua:

    • PROJECT_ID: o ID do projeto da política de posicionamento compacto.
    • REGION: a região da política de posicionamento compacto.
    • POLICY_NAME: o nome da política de posicionamento compacto.
  3. Envie a solicitação.

Para mais informações sobre as opções de configuração ao criar VMs em massa, consulte Criar VMs em massa na documentação do Compute Engine.

A seguir