Criar um MIG A3 High ou A3 Mega otimizado para IA

Neste documento, descrevemos como criar um grupo gerenciado de instâncias (MIG) que usa um tipo de máquina otimizado para aceleradores A3 High ou A3 Mega. Para saber mais sobre os tipos de máquina, consulte Sobre os aceleradores de GPU.

Ao criar um MIG, é possível gerenciar várias máquinas virtuais (VMs) como uma única entidade. Cada VM em um MIG é baseada em um modelo de instância. Ao gerenciar automaticamente as VMs no grupo, os MIGs oferecem alta disponibilidade e escalonabilidade. Para saber mais sobre MIGs, consulte Grupos gerenciados de instâncias na documentação do Compute Engine.

Para saber mais sobre outras maneiras de criar VMs ou clusters, consulte Visão geral das opções de implantação.

Limitações

Ao criar um MIG com VMs A3 Mega ou A3 High, considere as limitações do tipo de máquina e do MIG.

Limitações para VMs A3 Mega ou A3 High

Dependendo da série de máquinas que as VMs no MIG usam, as seguintes limitações se aplicam:

A3 Mega

  • Você não recebe descontos por uso prolongado e descontos por compromisso de uso flexível no caso de instâncias que usam um tipo de máquina A3 Mega.
  • Só é possível usar um tipo de máquina A3 Mega em determinadas regiões e zonas.
  • Não é possível usar o Persistent Disk regional em uma instância que usa um tipo de máquina A3 Mega.
  • O tipo de máquina A3 Mega só está disponível na plataforma de CPU Sapphire Rapids.
  • Não é possível mudar o tipo de máquina A3 Mega. Para mudar para ou desse tipo de máquina, é necessário criar uma nova instância.
  • Não é possível executar sistemas operacionais Windows em um tipo de máquina A3 Mega.

A3 High

Limitações para o MIG

Ao criar um MIG com VMs A3 Mega ou A3 High, as seguintes limitações se aplicam:

  • É necessário desativar os reparos no MIG, conforme descrito neste documento.

Limitações para solicitações de redimensionamento de MIG

Para solicitações de redimensionamento de MIG, as seguintes limitações se aplicam:

Para mais informações, consulte todas as limitações para solicitações de redimensionamento.

Antes de começar

Antes de criar um MIG, se ainda não tiver feito isso, conclua as seguintes etapas:

  1. Escolha uma opção de consumo: sua escolha 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.
  3. Verifique as permissões do agente de serviço de APIs do Google: ao criar VMs em um MIG, o Compute Engine usa o agente de serviço de APIs do Google (PROJECT_NUMBER@cloudservices.) no projeto. Se o modelo de instância usar recursos de outro projeto, verifique se esse agente de serviço tem as permissões necessárias:

Funções exigidas

Para receber as permissões necessárias para criar um MIG, 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 um MIG. Para acessar 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 um MIG:

  • Para criar um MIG: compute.instanceGroupManagers.create no projeto

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

Visão geral

A criação de um MIG com o tipo de máquina A3 Mega ou A3 High (8 GPUs) inclui as seguintes etapas:

  1. Criar redes VPC
  2. Opcional: criar uma política de carga de trabalho
  3. Criar um modelo de instância
  4. Criar um MIG
  5. Instalar os drivers da GPU
  6. Opcional: ativar o modo de GPU de várias instâncias da NVIDIA

Criar redes VPC

Para permitir uma comunicação eficiente para suas VMs de GPU, é necessário criar 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 em geral. As redes de dados são usadas para comunicação de alto desempenho entre as GPUs em diferentes VMs, por exemplo, para tráfego de acesso direto à memória remota (RDMA, na sigla em inglês).

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

A A3 Mega requer 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

A 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 carga de trabalho

Se você quiser que as VMs sejam colocadas em blocos únicos ou adjacentes, especifique o posicionamento delas criando uma política de carga de trabalho. No entanto, se você quiser que o Compute Engine coloque as VMs em um bloco específico, pule esta etapa e forneça o nome do bloco na afinidade de reserva ao criar o modelo de instância.

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

gcloud

Para criar uma política de carga de trabalho, use o comando gcloud compute resource-policies create workload-policy.

  • Para um posicionamento de VMs com o melhor esforço, especifique a flag --type=high-throughput no comando:

    gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
        --type=high-throughput \
        --region=REGION
    
  • Para colocalização estrita de VMs, especifique as flags --max-topology-distance e --type=high-throughput no comando:

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

Substitua:

  • WORKLOAD_POLICY_NAME: o nome da política de carga de trabalho.
  • TOPOLOGY_DISTANCE: a distância máxima da topologia. Especifique um dos seguintes valores:
    • Para colocar VMs no mesmo bloco: BLOCK
    • Para colocar VMs no mesmo cluster: CLUSTER
    Observação: uma distância máxima menor pode reduzir a probabilidade de disponibilidade da VM. Para mais informações, consulte Propriedade de distância máxima da topologia.
  • REGION: a região em que você quer criar a política de carga de trabalho. Especifique uma região em que você quer criar o MIG e o tipo de máquina que quer usar está disponível. Para informações sobre regiões, consulte Disponibilidade de GPUs por regiões e zonas.

REST

Para criar uma política de carga de trabalho, faça uma solicitação POST ao método resourcePolicies.insert.

  • Para um posicionamento de VMs com o melhor esforço, especifique o campo type na solicitação da seguinte maneira:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
      {
        "name": "WORKLOAD_POLICY_NAME"
        "workloadPolicy": {
          "type": "HIGH_THROUGHPUT"
        }
      }
    
  • Para uma colocalização estrita de VMs, especifique os campos maxTopologyDistance e type na solicitação da seguinte maneira:

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

Substitua:

  • PROJECT_ID: ID do projeto;
  • REGION: a região em que você quer criar a política de carga de trabalho. Especifique uma região em que você quer criar o MIG e o tipo de máquina que quer usar está disponível. Para informações sobre regiões, consulte Disponibilidade de GPUs por regiões e zonas.
  • WORKLOAD_POLICY_NAME: o nome da política de carga de trabalho.
  • TOPOLOGY_DISTANCE: a distância máxima da topologia. Especifique um dos seguintes valores:
    • Para colocar VMs no mesmo bloco: BLOCK
    • Para colocar VMs no mesmo cluster: CLUSTER
    Observação: uma distância máxima menor pode reduzir a probabilidade de disponibilidade da VM. Para mais informações, consulte Propriedade de distância máxima da topologia.

Criar um modelo de instância

Especifique as propriedades da VM para um MIG criando um modelo de instância.

Para criar um modelo de instância, selecione uma das seguintes opções:

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

A3 Mega

Para criar um modelo de instância para VMs A3 Mega, é preciso especificar oito interfaces de rede adicionais para o tráfego do GPUDirect-TCPXO. Se ainda não tiver feito isso, verifique se você criou oito redes VPC, conforme descrito em Criar redes VPC.

gcloud

Para criar um modelo de instância regional, use o comando gcloud compute instance-templates 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 à sua opção de consumo.

Reserva

As instâncias A3 Mega ou A3 High (8 GPUs) dão suporte a vários modelos de provisionamento para reservas. Selecione a guia que corresponde ao tipo de reserva que você quer consumir.

  • Use os parâmetros vinculados à reserva, que especificam o modelo de provisionamento vinculado à reserva, para o seguinte:

    • Reservas adiantadas para blocos de capacidade
    • Reservas adiantadas no modo calendário
  • Use os parâmetros de reserva padrão, que especificam o modelo de provisionamento padrão, para o seguinte:

    • Reservas imediatas
    • Reservas adiantadas padrão

Vinculada à reserva

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • 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, crie o MIG aplicando uma política de carga de trabalho que especifica uma colocação de bloco (maxTopologyDistance=BLOCK) . 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

Reserva padrão

Antes de executar o comando, revise todas as etapas a seguir para determinar se é necessário incluir outras flags.

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

Siga estas etapas:

  1. Substitua:

    • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO.
    • REGION: a região em que você quer criar o modelo de instância. 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.
    • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
    • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
    • RESERVATION_AFFINITY: quais reservas a instância pode consumir, se possível. Especifique uma destas opções:

      • any (a capacidade de reserva é opcional): essa é a opção padrão. A instância tenta usar a capacidade de uma reserva consumida automaticamente, o que só acontece se houver capacidade de reserva correspondente disponível. Caso contrário, a instância usará a capacidade on demand.

      • specific (a capacidade de reserva é obrigatória): exige que a instância use a capacidade de uma reserva segmentada especificamente. A instância não tem permissão para usar a capacidade on demand. Se a capacidade de reserva não estiver disponível, a criação da instância vai falhar.

    • RESERVATION: a reserva a ser usada. Especifique uma das seguintes opções com base no valor definido para RESERVATION_AFFINITY:

      • Se você especificou any, substitua RESERVATION por uma string vazia (""). Como alternativa, remova totalmente a flag --reservation.
      • Se você especificou specific, substitua RESERVATION pelo seguinte:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

        Substitua:

        • RESERVATION_OWNER_PROJECT_ID: o ID do projeto em que a reserva foi criada.
        • RESERVATION_NAME: o nome da reserva.
  2. Por padrão, a instância é reiniciada automaticamente se falhar ou se o Compute Engine a pausar para uma interrupção programada, como um evento de manutenção. Se você quiser desativar a reinicialização automática, adicione a seguinte flag:

    --no-restart-on-failure
  3. Execute o comando.

Sob demanda

Antes de executar o comando, revise todas as etapas a seguir para determinar se é necessário incluir outras flags.

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

Siga estas etapas:

  1. Substitua:

    • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO.
    • REGION: a região em que você quer criar o modelo de instância. 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.
    • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
    • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
    • RESERVATION_AFFINITY: quais reservas a instância pode consumir, se possível. Especifique uma destas opções:

      • any (a capacidade de reserva é opcional): essa é a opção padrão. A instância tenta usar a capacidade de uma reserva consumida automaticamente, o que só acontece se houver capacidade de reserva correspondente disponível. Caso contrário, a instância usará a capacidade on demand.

      • none (a capacidade sob demanda é obrigatória): impede que a instância use qualquer capacidade de reserva.

  2. Por padrão, a instância é reiniciada automaticamente se falhar ou se o Compute Engine a pausar para uma interrupção programada, como um evento de manutenção. Se você quiser desativar a reinicialização automática, adicione a seguinte flag:

    --no-restart-on-failure
  3. Execute o comando.

Início flexível

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
  • RUN_DURATION: a duração da execução das VMs solicitadas. Formate o valor como o número de dias, horas, minutos ou segundos, seguido por d, h, m e s, respectivamente. Por exemplo, especifique 30m para 30 minutos ou 1d2h3m4s para 1 dia, 2 horas, 3 minutos e 4 segundos. O valor precisa estar entre 10 minutos e sete dias.

Spot

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • 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.

REST

Para criar um modelo de instância regional, faça uma solicitação POST para o método regionInstanceTemplates.insert.

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 à sua opção de consumo.

Reserva

As instâncias A3 Mega ou A3 High (8 GPUs) dão suporte a vários modelos de provisionamento para reservas. Selecione a guia que corresponde ao tipo de reserva que você quer consumir.

  • Use os parâmetros vinculados à reserva, que especificam o modelo de provisionamento vinculado à reserva, para o seguinte:

    • Reservas adiantadas para blocos de capacidade
    • Reservas adiantadas no modo calendário
  • Use os parâmetros de reserva padrão, que especificam o modelo de provisionamento padrão, para o seguinte:

    • Reservas imediatas
    • Reservas adiantadas padrão

Vinculada à reserva

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • 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, crie o MIG aplicando uma política de carga de trabalho que especifica uma colocação de bloco (maxTopologyDistance=BLOCK) . 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

Reserva padrão

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • 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.
  • AUTOMATIC_RESTART: se a instância será reiniciada automaticamente em caso de falha ou se o Compute Engine vai pausá-la para uma interrupção programada, como um evento de manutenção. Especifique true para ativar a reinicialização automática (padrão) ou false para desativá-la.

  • RESERVATION_AFFINITY: quais reservas a instância pode consumir, se possível. Especifique uma destas opções:

    • ANY_RESERVATION (a capacidade de reserva é opcional): essa é a opção padrão. A instância tenta usar a capacidade de uma reserva consumida automaticamente, o que só acontece se houver capacidade de reserva correspondente disponível. Caso contrário, a instância usará a capacidade on demand.

    • SPECIFIC_RESERVATION (a capacidade de reserva é obrigatória): exige que a instância use a capacidade de uma reserva segmentada especificamente. A instância não tem permissão para usar a capacidade on demand. Se a capacidade de reserva não estiver disponível, a criação da instância vai falhar.

  • RESERVATION: a reserva a ser usada. Especifique uma das seguintes opções com base no valor definido para RESERVATION_AFFINITY:

    • Se você especificou ANY_RESERVATION, exclua RESERVATION para que o valor seja uma string vazia (""). Como alternativa, remova os campos key e values por completo.
    • Se você especificou SPECIFIC_RESERVATION, substitua RESERVATION pelo seguinte:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      Substitua:

      • RESERVATION_OWNER_PROJECT_ID: o ID do projeto em que a reserva foi criada.
      • RESERVATION_NAME: o nome da reserva.

Sob demanda

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • 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.
  • AUTOMATIC_RESTART: se a instância será reiniciada automaticamente em caso de falha ou se o Compute Engine vai pausá-la para uma interrupção programada, como um evento de manutenção. Especifique true para ativar a reinicialização automática (padrão) ou false para desativá-la.

  • RESERVATION_AFFINITY: quais reservas a instância pode consumir, se possível. Especifique uma destas opções:

    • ANY_RESERVATION (a capacidade de reserva é opcional): essa é a opção padrão. A instância tenta usar a capacidade de uma reserva consumida automaticamente, o que só acontece se houver capacidade de reserva correspondente disponível. Caso contrário, a instância usará a capacidade on demand.

    • NO_RESERVATION (a capacidade sob demanda é obrigatória): impede que a instância use qualquer capacidade de reserva.

Início flexível

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

  }
}

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • 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.
  • RUN_DURATION: a duração, em segundos, em que você quer que as VMs solicitadas sejam executadas. O valor precisa estar entre 600, que representa 600 segundos (10 minutos), e 604800, que é 604.800 segundos (sete dias).

Spot

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • 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.

A3 High

Para criar um modelo de instância para VMs A3 High, especifique quatro interfaces de rede adicionais para o tráfego do GPUDirect-TCPX. Se ainda não tiver feito isso, verifique se você criou quatro redes VPC, conforme descrito em Criar redes VPC.

gcloud

Para criar um modelo de instância regional, use o comando gcloud compute instance-templates 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 à sua opção de consumo.

Reserva

As instâncias A3 Mega ou A3 High (8 GPUs) dão suporte a vários modelos de provisionamento para reservas. Selecione a guia que corresponde ao tipo de reserva que você quer consumir.

  • Use os parâmetros vinculados à reserva, que especificam o modelo de provisionamento vinculado à reserva, para o seguinte:

    • Reservas adiantadas para blocos de capacidade
    • Reservas adiantadas no modo calendário
  • Use os parâmetros de reserva padrão, que especificam o modelo de provisionamento padrão, para o seguinte:

    • Reservas imediatas
    • Reservas adiantadas padrão

Vinculada à reserva

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • 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, crie o MIG aplicando uma política de carga de trabalho que especifica uma colocação de bloco (maxTopologyDistance=BLOCK) . 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

Reserva padrão

Antes de executar o comando, revise todas as etapas a seguir para determinar se é necessário incluir outras flags.

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

Siga estas etapas:

  1. Substitua:

    • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO.
    • REGION: a região em que você quer criar o modelo de instância. 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.
    • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
    • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
    • RESERVATION_AFFINITY: quais reservas a instância pode consumir, se possível. Especifique uma destas opções:

      • any (a capacidade de reserva é opcional): essa é a opção padrão. A instância tenta usar a capacidade de uma reserva consumida automaticamente, o que só acontece se houver capacidade de reserva correspondente disponível. Caso contrário, a instância usará a capacidade on demand.

      • specific (a capacidade de reserva é obrigatória): exige que a instância use a capacidade de uma reserva segmentada especificamente. A instância não tem permissão para usar a capacidade on demand. Se a capacidade de reserva não estiver disponível, a criação da instância vai falhar.

    • RESERVATION: a reserva a ser usada. Especifique uma das seguintes opções com base no valor definido para RESERVATION_AFFINITY:

      • Se você especificou any, substitua RESERVATION por uma string vazia (""). Como alternativa, remova totalmente a flag --reservation.
      • Se você especificou specific, substitua RESERVATION pelo seguinte:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

        Substitua:

        • RESERVATION_OWNER_PROJECT_ID: o ID do projeto em que a reserva foi criada.
        • RESERVATION_NAME: o nome da reserva.
  2. Por padrão, a instância é reiniciada automaticamente se falhar ou se o Compute Engine a pausar para uma interrupção programada, como um evento de manutenção. Se você quiser desativar a reinicialização automática, adicione a seguinte flag:

    --no-restart-on-failure
  3. Execute o comando.

Sob demanda

Antes de executar o comando, revise todas as etapas a seguir para determinar se é necessário incluir outras flags.

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

Siga estas etapas:

  1. Substitua:

    • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
    • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO.
    • REGION: a região em que você quer criar o modelo de instância. 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.
    • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
    • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
    • RESERVATION_AFFINITY: quais reservas a instância pode consumir, se possível. Especifique uma destas opções:

      • any (a capacidade de reserva é opcional): essa é a opção padrão. A instância tenta usar a capacidade de uma reserva consumida automaticamente, o que só acontece se houver capacidade de reserva correspondente disponível. Caso contrário, a instância usará a capacidade on demand.

      • none (a capacidade sob demanda é obrigatória): impede que a instância use qualquer capacidade de reserva.

  2. Por padrão, a instância é reiniciada automaticamente se falhar ou se o Compute Engine a pausar para uma interrupção programada, como um evento de manutenção. Se você quiser desativar a reinicialização automática, adicione a seguinte flag:

    --no-restart-on-failure
  3. Execute o comando.

Início flexível

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
  • RUN_DURATION: a duração da execução das VMs solicitadas. Formate o valor como o número de dias, horas, minutos ou segundos, seguido por d, h, m e s, respectivamente. Por exemplo, especifique 30m para 30 minutos ou 1d2h3m4s para 1 dia, 2 horas, 3 minutos e 4 segundos. O valor precisa estar entre 10 minutos e sete dias.

Spot

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • 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.

REST

Para criar um modelo de instância regional, faça uma solicitação POST para o método regionInstanceTemplates.insert.

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 à sua opção de consumo.

Reserva

As instâncias A3 Mega ou A3 High (8 GPUs) dão suporte a vários modelos de provisionamento para reservas. Selecione a guia que corresponde ao tipo de reserva que você quer consumir.

  • Use os parâmetros vinculados à reserva, que especificam o modelo de provisionamento vinculado à reserva, para o seguinte:

    • Reservas adiantadas para blocos de capacidade
    • Reservas adiantadas no modo calendário
  • Use os parâmetros de reserva padrão, que especificam o modelo de provisionamento padrão, para o seguinte:

    • Reservas imediatas
    • Reservas adiantadas padrão

Vinculada à reserva

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • 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, crie o MIG aplicando uma política de carga de trabalho que especifica uma colocação de bloco (maxTopologyDistance=BLOCK) . 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

Reserva padrão

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • 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.
  • AUTOMATIC_RESTART: se a instância será reiniciada automaticamente em caso de falha ou se o Compute Engine vai pausá-la para uma interrupção programada, como um evento de manutenção. Especifique true para ativar a reinicialização automática (padrão) ou false para desativá-la.

  • RESERVATION_AFFINITY: quais reservas a instância pode consumir, se possível. Especifique uma destas opções:

    • ANY_RESERVATION (a capacidade de reserva é opcional): essa é a opção padrão. A instância tenta usar a capacidade de uma reserva consumida automaticamente, o que só acontece se houver capacidade de reserva correspondente disponível. Caso contrário, a instância usará a capacidade on demand.

    • SPECIFIC_RESERVATION (a capacidade de reserva é obrigatória): exige que a instância use a capacidade de uma reserva segmentada especificamente. A instância não tem permissão para usar a capacidade on demand. Se a capacidade de reserva não estiver disponível, a criação da instância vai falhar.

  • RESERVATION: a reserva a ser usada. Especifique uma das seguintes opções com base no valor definido para RESERVATION_AFFINITY:

    • Se você especificou ANY_RESERVATION, exclua RESERVATION para que o valor seja uma string vazia (""). Como alternativa, remova os campos key e values por completo.
    • Se você especificou SPECIFIC_RESERVATION, substitua RESERVATION pelo seguinte:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

      Substitua:

      • RESERVATION_OWNER_PROJECT_ID: o ID do projeto em que a reserva foi criada.
      • RESERVATION_NAME: o nome da reserva.

Sob demanda

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • 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.
  • AUTOMATIC_RESTART: se a instância será reiniciada automaticamente em caso de falha ou se o Compute Engine vai pausá-la para uma interrupção programada, como um evento de manutenção. Especifique true para ativar a reinicialização automática (padrão) ou false para desativá-la.

  • RESERVATION_AFFINITY: quais reservas a instância pode consumir, se possível. Especifique uma destas opções:

    • ANY_RESERVATION (a capacidade de reserva é opcional): essa é a opção padrão. A instância tenta usar a capacidade de uma reserva consumida automaticamente, o que só acontece se houver capacidade de reserva correspondente disponível. Caso contrário, a instância usará a capacidade on demand.

    • NO_RESERVATION (a capacidade sob demanda é obrigatória): impede que a instância use qualquer capacidade de reserva.

Início flexível

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

  }
}

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • 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.
  • RUN_DURATION: a duração, em segundos, em que você quer que as VMs solicitadas sejam executadas. O valor precisa estar entre 600, que representa 600 segundos (10 minutos), e 604800, que é 604.800 segundos (sete dias).

Spot

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a ser usado para a instância A3 Mega ou A3 High (8 GPUs). Para mais informações, consulte Tipos de máquinas com GPU na documentação do Compute Engine.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de todos os sistemas operacionais compatíveis, consulte Sistemas operacionais compatíveis.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região em que você quer criar o modelo de instância. 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GB. Para mais informações, consulte Limites de tamanho do Google Cloud Hyperdisk ou Limites de tamanho do Persistent Disk, com base no tipo de disco.
  • 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.

Depois de criar o modelo de instância, é possível visualizá-lo para ver o ID e as propriedades da instância.

Criar um MIG

Depois de concluir todas as etapas anteriores, crie um MIG com base no seu cenário, da seguinte maneira:

Cenário Método para criar um MIG e VMs nele Exemplo
Você tem jobs múltiplos ou paralelos que podem ser iniciados com qualquer número de VMs. Crie um MIG e use o tamanho de destino para especificar o número de VMs que você quer no grupo.

Consulte Criar um MIG com um tamanho de destino.

Jobs de inferência de ML
Você tem um job que precisa ser distribuído em um número exato de VMs. Crie um MIG sem VMs e, em seguida, crie uma solicitação de redimensionamento no MIG. A solicitação de redimensionamento ajuda você a receber VMs de uma só vez.

Consulte Criar um MIG e uma solicitação de redimensionamento.

Jobs de treinamento e ajuste fino de ML distribuídos

Criar um MIG com um tamanho de destino

Se for possível iniciar o job sem criar todas as VMs de uma só vez, crie um MIG com um tamanho de destino. O tamanho de destino determina o número de VMs no MIG. O MIG começa a criar VMs com base na disponibilidade atual de recursos. Se algum recurso estiver temporariamente indisponível, o MIG tentará continuamente criar VMs para atingir o tamanho de destino.

Para criar um MIG com um tamanho de destino, selecione uma das seguintes opções:

gcloud

Para criar um MIG com um tamanho de destino especificado, use o comando instance-groups managed create.

Os comandos usados para criar um MIG usam uma política de carga de trabalho para especificar o posicionamento da instância. Se você não quiser usar uma política de carga de trabalho, remova a flag --workload-policy.

Crie um MIG zonal ou regional da seguinte maneira:

  • Para criar um MIG zonal, use o seguinte comando:
    gcloud compute instance-groups managed create MIG_NAME \
      --template=INSTANCE_TEMPLATE_URL \
      --size=TARGET_SIZE \
      --workload-policy=WORKLOAD_POLICY_URL \
      --zone=ZONE
    
  • Para criar um MIG regional, use o seguinte comando:
    gcloud compute instance-groups managed create MIG_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --size=TARGET_SIZE \
        --workload-policy=WORKLOAD_POLICY_URL \
        --region=REGION
    
Substitua:
  • MIG_NAME: o nome do MIG;
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você quer usar para criar instâncias no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:
    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID.
    • Para um modelo de instância global: INSTANCE_TEMPLATE_ID
  • TARGET_SIZE: o número de instâncias que você quer no MIG.
  • WORKLOAD_POLICY_URL: Opcional. O URL da política de carga de trabalho, por exemplo, projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy. Se você não quiser usar uma política de carga de trabalho, remova a flag --workload-policy.
  • ZONE: a zona em que você quer criar o MIG. Se você usar uma política de carga de trabalho, especifique uma zona na região da política.
  • REGION: a região em que você quer criar o MIG. Se você usar uma política de carga de trabalho, especifique a mesma região da política. Para um MIG regional, em vez de uma região, é possível especificar as zonas nessa região usando a sinalização --zones.

REST

Para criar um MIG com um tamanho de destino especificado, faça uma solicitação POST.

As solicitações usadas para criar um MIG usam uma política de carga de trabalho para especificar o posicionamento da instância. Se você não quiser usar uma política de carga de trabalho, remova o campo resourcePolicies.workloadPolicy.

Crie um MIG zonal ou regional da seguinte maneira:

  • Para criar um MIG zonal, faça uma solicitação POST para o método instanceGroupManagers.insert.
    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
    {
      "versions": [
        {
          "instanceTemplate": "INSTANCE_TEMPLATE_URL"
        }
      ],
      "name": "MIG_NAME",
      "targetSize": TARGET_SIZE,
      "resourcePolicies": {
        "workloadPolicy": "WORKLOAD_POLICY_URL"
      }
    }
    
  • Para criar um MIG regional, faça uma solicitação POST ao método regionInstanceGroupManagers.insert.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
      {
        "name": "MIG_NAME",
        "instanceTemplate": "INSTANCE_TEMPLATE_URL",
        "targetSize": TARGET_SIZE,
        "resourcePolicies": {
          "workloadPolicy": "WORKLOAD_POLICY_URL"
        }
      }
    
Substitua:
  • PROJECT_ID: o ID do projeto;
  • ZONE: a zona em que você quer criar o MIG. Se você usar uma política de carga de trabalho, especifique uma zona dentro da região da política.
  • REGION: a região em que você quer criar o MIG. Se você usar uma política de carga de trabalho, especifique a mesma região da política.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você quer usar para criar instâncias no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:
    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID.
    • Para um modelo de instância global: INSTANCE_TEMPLATE_ID
  • MIG_NAME: o nome do MIG;
  • TARGET_SIZE: o número de instâncias que você quer no MIG.
  • WORKLOAD_POLICY_URL: Opcional. O URL da política de carga de trabalho, por exemplo, projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy. Se você não quiser usar uma política de carga de trabalho, remova o campo resourcePolicies.workloadPolicy.

Criar um MIG e uma solicitação de redimensionamento

Se você precisar de várias VMs de uma só vez para iniciar um job, crie um MIG e uma solicitação de redimensionamento no MIG, conforme descrito nesta seção.

Para criar uma solicitação de redimensionamento em um MIG, selecione uma das seguintes opções:

gcloud

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.

Reserva

Os comandos usados para criar um MIG usam uma política de carga de trabalho para especificar o posicionamento da instância. Se você não quiser usar uma política de carga de trabalho, remova a flag --workload-policy.

Crie um MIG zonal ou regional e uma solicitação de redimensionamento da seguinte maneira:

Sob demanda

Os comandos usados para criar um MIG usam uma política de carga de trabalho para especificar o posicionamento da instância. Se você não quiser usar uma política de carga de trabalho, remova a flag --workload-policy.

Crie um MIG zonal ou regional e uma solicitação de redimensionamento da seguinte maneira:

Início flexível

Crie um MIG zonal ou regional e uma solicitação de redimensionamento da seguinte maneira:

  • Para criar um MIG zonal e uma solicitação de redimensionamento nele, faça o seguinte:

    1. Crie um MIG zonal usando o comando instance-groups managed create da seguinte maneira.

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --default-action-on-vm-failure=do-nothing \
          --workload-policy=WORKLOAD_POLICY_URL \
          --zone=ZONE
      
    2. Crie uma solicitação de redimensionamento no MIG zonal usando o comando instance-groups managed resize-requests create da seguinte maneira. Esse comando especifica o número de VMs que você quer criar. Se a carga de trabalho exigir nomes de VM específicos, crie uma solicitação de redimensionamento especificando uma lista de nomes de VM.

      gcloud compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --zone=ZONE
      
  • Para criar um MIG regional e uma solicitação de redimensionamento nele, faça o seguinte:

    1. Crie um MIG regional usando o comando instance-groups managed create da seguinte maneira.

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --default-action-on-vm-failure=do-nothing \
      
          --workload-policy=WORKLOAD_POLICY_URL \
      
          --region=REGION \
          --target-distribution-shape=any-single-zone \
          --instance-redistribution-type=none \
          --workload-policy=WORKLOAD_POLICY_URL
        
    2. Crie uma solicitação de redimensionamento no MIG regional usando o comando instance-groups managed resize-requests create da seguinte maneira. Esse comando especifica o número de VMs que você quer criar. Se a carga de trabalho exigir nomes de VM específicos, crie uma solicitação de redimensionamento especificando uma lista de nomes de VM.

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

Spot

Os comandos usados para criar um MIG usam uma política de carga de trabalho para especificar o posicionamento da instância. Se você não quiser usar uma política de carga de trabalho, remova a flag --workload-policy.

Crie um MIG zonal ou regional e uma solicitação de redimensionamento da seguinte maneira:

Substitua:
  • MIG_NAME: o nome do MIG;
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você quer usar para criar instâncias no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:
    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID.
    • Para um modelo de instância global: INSTANCE_TEMPLATE_ID
  • WORKLOAD_POLICY_URL: opcional. O URL da política de carga de trabalho, por exemplo, projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy. Se você não quiser usar uma política de carga de trabalho, remova a flag --workload-policy.
  • ZONE: a zona em que você quer criar o MIG. Para um MIG regional, também é necessário especificar uma zona. Essa zona precisa ser a que contém o perfil da sua rede VPC e precisa ser uma zona em que o tipo de máquina está disponível. Para mais informações, consulte Limitações.
  • RESIZE_REQUEST_NAME: o nome da solicitação de redimensionamento, que precisa ser exclusivo no MIG especificado. Caso contrário, a criação da solicitação de redimensionamento falha.
  • COUNT: o número de instâncias a serem adicionadas ao MIG de uma só vez.
  • REGION: a região em que você quer criar o MIG.

Criar uma solicitação de redimensionamento especificando uma lista de nomes de VM

Se a carga de trabalho exigir nomes de VM específicos, especifique uma lista de nomes para criar as VMs. O número de nomes que você especificar determina o número de VMs que o MIG vai criar de uma só vez.

Para criar uma solicitação de redimensionamento com nomes de VM específicos em um MIG, use o comando Beta gcloud compute instance-groups managed resize-requests create com a flag --instances:

  • Em um MIG zonal, execute o seguinte comando:

    gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
        --resize-request=RESIZE_REQUEST_NAME \
        --instances=INSTANCE_NAMES \
        --zone=ZONE
    
  • Em um MIG regional, execute o seguinte comando:

    gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
        --resize-request=RESIZE_REQUEST_NAME \
        --instances=INSTANCE_NAMES \
        --region=REGION
    
Substitua INSTANCE_NAMES por uma lista separada por vírgulas de nomes para as VMs. Por exemplo, instance-1,instance-2,instance-3.

REST

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.

Reserva

As solicitações usadas para criar um MIG usam uma política de carga de trabalho para especificar o posicionamento da instância. Se você não quiser usar uma política de carga de trabalho, remova o campo resourcePolicies.workloadPolicy.

Crie um MIG zonal ou regional e uma solicitação de redimensionamento da seguinte maneira:

  • Para criar um MIG zonal e uma solicitação de redimensionamento nele, faça o seguinte:
    1. Crie um MIG zonal fazendo uma solicitação POST para o método instanceGroupManagers.insert da seguinte maneira.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": 0,
        "resourcePolicies": {
          "workloadPolicy": "WORKLOAD_POLICY_URL"
        }
      }
      
    2. Crie uma solicitação de redimensionamento no MIG zonal fazendo uma solicitação POST ao método instanceGroupManagerResizeRequests.insert, conforme mostrado a seguir. Essa solicitação especifica o número de VMs que você quer criar. Se a carga de trabalho exigir nomes de VM específicos, crie uma solicitação de redimensionamento especificando uma lista de nomes de VM.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
  • Para criar um MIG regional e uma solicitação de redimensionamento nele, faça o seguinte:
    1. Crie um MIG regional fazendo uma solicitação POST para o método regionInstanceGroupManagers.insert da seguinte maneira.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": 0,
        "distributionPolicy": {
          "targetShape": "ANY_SINGLE_ZONE",
          "zones": [
            {
              "zone": "projects/PROJECT_ID/zones/ZONE"
            }
          ]
        },
        "updatePolicy": {
          "instanceRedistributionType": "NONE"
        },
        "resourcePolicies": {
          "workloadPolicy": "WORKLOAD_POLICY_URL"
        }
      }
      
    2. Crie uma solicitação de redimensionamento no MIG regional fazendo uma solicitação POST ao método regionInstanceGroupManagerResizeRequests.insert da seguinte maneira. Essa solicitação especifica o número de VMs que você quer criar. Se a carga de trabalho exigir nomes de VM específicos, crie uma solicitação de redimensionamento especificando uma lista de nomes de VM.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      

Sob demanda

As solicitações usadas para criar um MIG usam uma política de carga de trabalho para especificar o posicionamento da instância. Se você não quiser usar uma política de carga de trabalho, remova o campo resourcePolicies.workloadPolicy.

Crie um MIG zonal ou regional e uma solicitação de redimensionamento da seguinte maneira:

  • Para criar um MIG zonal e uma solicitação de redimensionamento nele, faça o seguinte:
    1. Crie um MIG zonal fazendo uma solicitação POST para o método instanceGroupManagers.insert da seguinte maneira.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": 0,
        "resourcePolicies": {
          "workloadPolicy": "WORKLOAD_POLICY_URL"
        }
      }
      
    2. Crie uma solicitação de redimensionamento no MIG zonal fazendo uma solicitação POST ao método instanceGroupManagerResizeRequests.insert, conforme mostrado a seguir. Essa solicitação especifica o número de VMs que você quer criar. Se a carga de trabalho exigir nomes de VM específicos, crie uma solicitação de redimensionamento especificando uma lista de nomes de VM.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
  • Para criar um MIG regional e uma solicitação de redimensionamento nele, faça o seguinte:
    1. Crie um MIG regional fazendo uma solicitação POST para o método regionInstanceGroupManagers.insert da seguinte maneira.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": 0,
        "distributionPolicy": {
          "targetShape": "ANY_SINGLE_ZONE",
          "zones": [
            {
              "zone": "projects/PROJECT_ID/zones/ZONE"
            }
          ]
        },
        "updatePolicy": {
          "instanceRedistributionType": "NONE"
        },
        "resourcePolicies": {
          "workloadPolicy": "WORKLOAD_POLICY_URL"
        }
      }
      
    2. Crie uma solicitação de redimensionamento no MIG regional fazendo uma solicitação POST ao método regionInstanceGroupManagerResizeRequests.insert da seguinte maneira. Essa solicitação especifica o número de VMs que você quer criar. Se a carga de trabalho exigir nomes de VM específicos, crie uma solicitação de redimensionamento especificando uma lista de nomes de VM.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      

Início flexível

Crie um MIG zonal ou regional e uma solicitação de redimensionamento da seguinte maneira:

  • Para criar um MIG zonal e uma solicitação de redimensionamento nele, faça o seguinte:
    1. Crie um MIG zonal fazendo uma solicitação POST para o método instanceGroupManagers.insert da seguinte maneira.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": 0,
        "instanceLifecyclePolicy": {
          "defaultActionOnFailure": "DO_NOTHING"
        },
        "resourcePolicies": {
          "workloadPolicy": "WORKLOAD_POLICY_URL"
        }
      }
      
    2. Crie uma solicitação de redimensionamento no MIG zonal fazendo uma solicitação POST ao método instanceGroupManagerResizeRequests.insert, conforme mostrado a seguir. Essa solicitação especifica o número de VMs que você quer criar. Se a carga de trabalho exigir nomes de VM específicos, crie uma solicitação de redimensionamento especificando uma lista de nomes de VM.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
  • Para criar um MIG regional e uma solicitação de redimensionamento nele, faça o seguinte:
    1. Crie um MIG regional fazendo uma solicitação POST para o método regionInstanceGroupManagers.insert da seguinte maneira.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": 0,
        "distributionPolicy": {
          "targetShape": "ANY_SINGLE_ZONE",
          "zones": [
            {
              "zone": "projects/PROJECT_ID/zones/ZONE"
            }
          ]
        },
        "updatePolicy": {
          "instanceRedistributionType": "NONE"
        },
        "instanceLifecyclePolicy": {
          "defaultActionOnFailure": "DO_NOTHING"
        },
        "resourcePolicies": {
          "workloadPolicy": "WORKLOAD_POLICY_URL"
        }
      }
      
    2. Crie uma solicitação de redimensionamento no MIG regional fazendo uma solicitação POST ao método regionInstanceGroupManagerResizeRequests.insert da seguinte maneira. Essa solicitação especifica o número de VMs que você quer criar. Se a carga de trabalho exigir nomes de VM específicos, crie uma solicitação de redimensionamento especificando uma lista de nomes de VM.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      

Spot

As solicitações usadas para criar um MIG usam uma política de carga de trabalho para especificar o posicionamento da instância. Se você não quiser usar uma política de carga de trabalho, remova o campo resourcePolicies.workloadPolicy.

Crie um MIG zonal ou regional e uma solicitação de redimensionamento da seguinte maneira:

  • Para criar um MIG zonal e uma solicitação de redimensionamento nele, faça o seguinte:
    1. Crie um MIG zonal fazendo uma solicitação POST para o método instanceGroupManagers.insert da seguinte maneira.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": 0,
        "resourcePolicies": {
          "workloadPolicy": "WORKLOAD_POLICY_URL"
        }
      }
      
    2. Crie uma solicitação de redimensionamento no MIG zonal fazendo uma solicitação POST ao método instanceGroupManagerResizeRequests.insert, conforme mostrado a seguir. Essa solicitação especifica o número de VMs que você quer criar. Se a carga de trabalho exigir nomes de VM específicos, crie uma solicitação de redimensionamento especificando uma lista de nomes de VM.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
  • Para criar um MIG regional e uma solicitação de redimensionamento nele, faça o seguinte:
    1. Crie um MIG regional fazendo uma solicitação POST para o método regionInstanceGroupManagers.insert da seguinte maneira.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "name": "MIG_NAME",
        "targetSize": 0,
        "distributionPolicy": {
          "targetShape": "ANY_SINGLE_ZONE",
          "zones": [
            {
              "zone": "projects/PROJECT_ID/zones/ZONE"
            }
          ]
        },
        "updatePolicy": {
          "instanceRedistributionType": "NONE"
        },
        "resourcePolicies": {
          "workloadPolicy": "WORKLOAD_POLICY_URL"
        }
      }
      
    2. Crie uma solicitação de redimensionamento no MIG regional fazendo uma solicitação POST ao método regionInstanceGroupManagerResizeRequests.insert da seguinte maneira. Essa solicitação especifica o número de VMs que você quer criar. Se a carga de trabalho exigir nomes de VM específicos, crie uma solicitação de redimensionamento especificando uma lista de nomes de VM.
      POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
Substitua:
  • PROJECT_ID: o ID do projeto;
  • ZONE: a zona em que você quer criar o MIG. Essa zona precisa ser a mesma que contém o perfil da sua rede VPC e precisa ser uma zona em que o tipo de máquina escolhido esteja disponível. Para mais informações, consulte Limitações.
  • REGION: a região em que você quer criar o MIG. Essa região precisa ser a mesma que contém o perfil da sua rede VPC e precisa conter uma zona em que o tipo de máquina escolhido esteja disponível. Para mais informações, consulte Limitações.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você quer usar para criar instâncias no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:
    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID.
    • Para um modelo de instância global: INSTANCE_TEMPLATE_ID
  • MIG_NAME: o nome do MIG;
  • WORKLOAD_POLICY_URL: opcional. O URL da política de carga de trabalho, por exemplo, projects/example-project/regions/us-central1/resourcePolicies/example-workload-policy. Se você não quiser usar uma política de carga de trabalho, remova o campo resourcePolicies.workloadPolicy.
  • RESIZE_REQUEST_NAME: o nome da solicitação de redimensionamento, que precisa ser exclusivo no MIG especificado. Caso contrário, a criação da solicitação de redimensionamento falha.
  • COUNT: o número de instâncias a serem adicionadas ao MIG de uma só vez.

Criar uma solicitação de redimensionamento especificando uma lista de nomes de VM

Se a carga de trabalho exigir nomes de VM específicos, especifique uma lista de nomes para criar as VMs. O número de nomes que você especificar determina o número de VMs que o MIG vai criar de uma só vez.

Para criar uma solicitação de redimensionamento com nomes de VM específicos em um MIG, use um dos seguintes métodos:

Por exemplo, para especificar dois nomes de VM, inclua o seguinte no corpo da solicitação:

{
  "name": "RESIZE_REQUEST_NAME",
  "instances": [
    {
      "name": "INSTANCE_NAME_1"
    },
    {
      "name": "INSTANCE_NAME_2"
    }
  ]
}

Substitua INSTANCE_NAME_1, INSTANCE_NAME_2 pelos nomes das VMs.

Instalar os drivers da GPU

Depois de criar uma instância, ela não poderá usar as GPUs, a menos que os drivers de GPU corretos já estejam instalados. Se você não especificou uma imagem do SO que inclui drivers de GPU, consulte Instalar drivers de GPU na documentação do Compute Engine.

Opcional: ativar o modo de GPU de várias instâncias da NVIDIA

O modo de GPU de várias instâncias (MIG) é um recurso que pode ser ativado para uma GPU NVIDIA compatível. Depois de criar uma instância, é possível ativar o modo MIG em uma única GPU anexada à máquina. Com o modo MIG ativado, a GPU única é particionada em até sete instâncias de GPU independentes. Cada instância é executada simultaneamente, cada uma com a própria memória, o próprio cache e os próprios multiprocessadores de streaming. Em seguida, é possível executar diferentes cargas de trabalho nessas instâncias de GPU em paralelo. Para mais informações sobre como usar o modo MIG, consulte o Guia do usuário da GPU de várias instâncias (MIG) na documentação da NVIDIA.

A seguir