Criar um MIG otimizado para IA com o tipo de máquina A3 Edge

Neste documento, descrevemos como criar um grupo gerenciado de instâncias (MIG) que usa um tipo de máquina otimizado para acelerador A3 Edge. Para saber mais sobre o tipo de máquina, consulte A3 Edge na documentação do Compute Engine.

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 a integridade e o tamanho do grupo de instâncias, os MIGs oferecem alta disponibilidade e escalonabilidade. Para saber mais sobre os MIGs, consulte Grupos gerenciados de instâncias.

Para saber mais sobre as opções de criação de VMs e clusters, consulte a página Visão geral da criação de VMs e clusters.

Limitações

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

Limitações das VMs A3 Edge

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

Limitações para o MIG

Ao criar um MIG com VMs A3 Edge, 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, siga estas 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.

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 Edge inclui as seguintes etapas:

  1. Criar redes VPC
  2. Opcional: criar uma política de posicionamento compacto
  3. Criar um modelo de instância
  4. Criar um MIG
  5. Instalar os drivers da GPU

Para cada MIG, escolha se você quer usar uma política de posicionamento compacto, usar solicitações de redimensionamento ou nenhuma das opções. Para mais informações sobre quando usar cada opção, consulte Limitações do MIG neste documento.

Criar redes VPC

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

Para essas redes VPC, recomendamos definir a unidade máxima de transmissão (MTU) para um valor maior. Valores de MTU mais altos aumentam o tamanho do pacote e reduzem a sobrecarga do cabeçalho do pacote, o que aumenta a capacidade de processamento 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 A3 Edge exige quatro redes de dados. Use o comando a seguir para criar quatro redes de dados, cada uma com sub-redes e regras de firewall.

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

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

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

Opcional: criar uma política de posicionamento compacto

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

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

gcloud

Para criar uma política de posicionamento compacto, use o comando gcloud beta compute resource-policies create group-placement:

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

Substitua:

  • POLICY_NAME: o nome da política de posicionamento compacto.
  • MAX_DISTANCE: a configuração da distância máxima para suas VMs, que pode ser especificada (Pré-lançamento, recomendado) ou não especificada (remova a flag --max-distance). Com base no que seu tipo de máquina oferece suporte, é possível especificar um dos seguintes valores:
    • Para colocar VMs no mesmo sub-bloco: 1
    • Para colocar VMs no mesmo bloco: 2
    • Para colocar VMs em blocos adjacentes: 3
    Verifique se a configuração de distância máxima é compatível com a série de máquinas e o número de VMs que você planeja criar. Para mais informações, consulte Sobre as políticas de posicionamento compacto na documentação do Compute Engine.
  • REGION: a região em que você quer criar a política de posicionamento compacto. Especifique a região que contém a zona em que você planeja criar instâncias e verifique se o tipo de máquina que você quer usar está disponível nessa região. Para informações sobre regiões, consulte Disponibilidade de GPUs por regiões e zonas.

REST

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

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

Substitua:

  • PROJECT_ID: o ID do projeto.
  • POLICY_NAME: o nome da política de posicionamento compacto.
  • MAX_DISTANCE: a configuração da distância máxima para suas VMs, que pode ser especificada (prévia, recomendado) ou não especificada (remova o campo maxDistance). Com base no que seu tipo de máquina oferece suporte, é possível especificar um dos seguintes valores:
    • Para colocar VMs no mesmo sub-bloco: 1
    • Para colocar VMs no mesmo bloco: 2
    • Para colocar VMs em blocos adjacentes: 3
    Verifique se a configuração de distância máxima é compatível com a série de máquinas e o número de VMs que você planeja criar. Para mais informações, consulte Sobre as políticas de posicionamento compacto na documentação do Compute Engine.
  • REGION: a região em que você quer criar a política de posicionamento compacto. Especifique a região que contém a zona em que você planeja criar instâncias e verifique se o tipo de máquina que você quer usar está disponível nessa região. Para informações sobre regiões, consulte Disponibilidade de GPUs por regiões e zonas.

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 suas instâncias. Para simplificar o gerenciamento de permissões, o Google recomenda definir o escopo de acesso de uma instância como cloud-platform e usar papéis do IAM para definir a quais serviços a instância pode acessar. Para mais informações, consulte Práticas recomendadas de escopos.

Para criar um modelo de instância para VMs A3 Edge, especifique quatro interfaces de rede adicionais para o tráfego do GPUDirect-TCPX. Se ainda não tiver feito isso, crie 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

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

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=DISK_TYPE \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address 
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --reservation-affinity=specific \
    --reservation=RESERVATION \
    --provisioning-model=RESERVATION_BOUND \
    --instance-termination-action=DELETE \
    --maintenance-policy=TERMINATE \
    --restart-on-failure

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 do A3 Edge. 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. Para a série de máquinas A3 Edge, recomendamos usar a imagem do Container-Optimized OS cos-121-lts ou mais recente e desativar as atualizações automáticas.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO. Por exemplo, use cos-cloud para a imagem do Container-Optimized OS cos-121-lts ou mais recente.
    • REGION: 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_TYPE: o tipo do disco de inicialização. Para essa série de máquinas, recomendamos o uso de hyperdisk-balanced. Para mais informações sobre os tipos de disco compatíveis com seu tipo de máquina, consulte Máquinas com GPU na família de máquinas otimizadas para aceleradores na documentação do Compute Engine.
    • 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, aplique uma política de posicionamento compacto que especifica uma colocação de bloco (maxDistance=2) . Em seguida, o Compute Engine aplica a política à reserva e cria instâncias no mesmo bloco.

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

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
  2. Opcional: se você escolheu usar uma política de posicionamento compacto, adicione a seguinte flag ao comando:

    --resource-policies=POLICY_NAME
    

    Substitua:

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

Início flexível

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

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=DISK_TYPE \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address 
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --reservation-affinity=none \
    --instance-termination-action=DELETE \
    --max-run-duration=RUN_DURATION \
    --maintenance-policy=TERMINATE \
    --provisioning-model=FLEX_START

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 do A3 Edge. 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. Para a série de máquinas A3 Edge, recomendamos usar a imagem do Container-Optimized OS cos-121-lts ou mais recente e desativar as atualizações automáticas.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO. Por exemplo, use cos-cloud para a imagem do Container-Optimized OS cos-121-lts ou mais recente.
    • REGION: 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_TYPE: o tipo do disco de inicialização. Para essa série de máquinas, recomendamos o uso de hyperdisk-balanced. Para mais informações sobre os tipos de disco compatíveis com seu tipo de máquina, consulte Máquinas com GPU na família de máquinas otimizadas para aceleradores na documentação do Compute Engine.
    • 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.
  2. Execute o comando.

Spot

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

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=DISK_TYPE \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-0,subnet=GVNIC_NAME_PREFIX-sub-0 \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-1,subnet=GVNIC_NAME_PREFIX-sub-1,no-address 
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-2,subnet=GVNIC_NAME_PREFIX-sub-2,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-3,subnet=GVNIC_NAME_PREFIX-sub-3,no-address \
    --network-interface=nic-type=GVNIC,network=GVNIC_NAME_PREFIX-net-4,subnet=GVNIC_NAME_PREFIX-sub-4,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION \
    --maintenance-policy=TERMINATE \
    --no-restart-on-failure

Siga estas etapas:

  1. Substitua:

    • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a instância do A3 Edge. 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. Para a série de máquinas A3 Edge, recomendamos usar a imagem do Container-Optimized OS cos-121-lts ou mais recente e desativar as atualizações automáticas.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO. Por exemplo, use cos-cloud para a imagem do Container-Optimized OS cos-121-lts ou mais recente.
    • REGION: 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_TYPE: o tipo do disco de inicialização. Para essa série de máquinas, recomendamos o uso de hyperdisk-balanced. Para mais informações sobre os tipos de disco compatíveis com seu tipo de máquina, consulte Máquinas com GPU na família de máquinas otimizadas para aceleradores na documentação do Compute Engine.
    • 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.

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

    --resource-policies=POLICY_NAME
    

    Substitua:

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

REST

Para criar 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

Antes de enviar a solicitação, revise todas as etapas a seguir para determinar se é necessário incluir outros campos.

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": "DISK_TYPE",
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode": "READ_WRITE",
        "type": "PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      }
    ],
    "reservationAffinity": {
        "consumeReservationType": "SPECIFIC_RESERVATION",
        "key": "compute.googleapis.com/reservation-name",
        "values": [
          "RESERVATION"
        ]
      },
    "scheduling": {
        "provisioningModel": "RESERVATION_BOUND",
        "instanceTerminationAction": "DELETE",
        "onHostMaintenance": "TERMINATE",
        "automaticRestart": true
      }
  }
}

Siga estas etapas:

  1. Substitua:

    • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a instância do A3 Edge. 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. Para a série de máquinas A3 Edge, recomendamos usar a imagem do Container-Optimized OS cos-121-lts ou mais recente e desativar as atualizações automáticas.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO. Por exemplo, use cos-cloud para a imagem do Container-Optimized OS cos-121-lts ou mais recente.
    • REGION: 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.
    • DISK_TYPE: o tipo do disco de inicialização. Para essa série de máquinas, recomendamos o uso de hyperdisk-balanced. Para mais informações sobre os tipos de disco compatíveis com seu tipo de máquina, consulte Máquinas com GPU na família de máquinas otimizadas para aceleradores na documentação do Compute Engine.
    • NETWORK_PROJECT_ID: o ID do projeto da rede.
    • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
    • REGION: a região da sub-rede.
    • RESERVATION: o nome da reserva ou um bloco específico dentro de uma reserva. Para conferir o nome da reserva ou os blocos disponíveis, consulte Visualizar a capacidade reservada. Com base na sua exigência de posicionamento de instâncias, escolha uma das seguintes opções:
      • Para criar instâncias em vários blocos ou em um único bloco:

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME

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

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

        projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME
  2. Opcional: se você escolheu usar uma política de posicionamento compacta, adicione o seguinte subcampo instanceProperties ao corpo da solicitação:

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

    Substitua:

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

Início flexível

Antes de enviar a solicitação, revise todas as etapas a seguir para determinar se é necessário incluir outros campos.

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": "DISK_TYPE",
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode": "READ_WRITE",
        "type": "PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      }
    ],
    "reservationAffinity": {
        "consumeReservationType": "NO_RESERVATION"
      },
    "scheduling": {
        "instanceTerminationAction": "DELETE",
        "maxRunDuration": {
          "seconds": RUN_DURATION
        },
        "onHostMaintenance": "TERMINATE",
        "provisioningModel": "FLEX_START"
      }

  }
}

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 do A3 Edge. 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. Para a série de máquinas A3 Edge, recomendamos usar a imagem do Container-Optimized OS cos-121-lts ou mais recente e desativar as atualizações automáticas.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO. Por exemplo, use cos-cloud para a imagem do Container-Optimized OS cos-121-lts ou mais recente.
    • REGION: 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.
    • DISK_TYPE: o tipo do disco de inicialização. Para essa série de máquinas, recomendamos o uso de hyperdisk-balanced. Para mais informações sobre os tipos de disco compatíveis com seu tipo de máquina, consulte Máquinas com GPU na família de máquinas otimizadas para aceleradores na documentação do Compute Engine.
    • 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).
  2. Envie a solicitação.

Spot

Antes de enviar a solicitação, revise todas as etapas a seguir para determinar se é necessário incluir outros campos.

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": "DISK_TYPE",
          "sourceImage": "projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode": "READ_WRITE",
        "type": "PERSISTENT"
      }
    ],
    "serviceAccounts": [
      {
        "email": "default",
        "scopes": [
          "https://www.googleapis.com/auth/cloud-platform"
        ]
      }
    ],
    "networkInterfaces": [
      {
        "accessConfigs": [
          {
            "name": "external-nat",
            "type": "ONE_TO_ONE_NAT"
          }
        ],
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-0",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-0"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-1",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-1"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-2",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-2"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-3",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-3"
      },
      {
        "network": "projects/NETWORK_PROJECT_ID/global/networks/GVNIC_NAME_PREFIX-net-4",
        "nicType": "GVNIC",
        "subnetwork": "projects/NETWORK_PROJECT_ID/region/REGION/subnetworks/GVNIC_NAME_PREFIX-sub-4"
      }
    ],
    "scheduling":
    {
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "TERMINATION_ACTION",
      "onHostMaintenance": "TERMINATE",
      "automaticRestart": false
    }
  }
}

Siga estas etapas:

  1. Substitua:

    • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
    • MACHINE_TYPE: o tipo de máquina a ser usado para a instância do A3 Edge. 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. Para a série de máquinas A3 Edge, recomendamos usar a imagem do Container-Optimized OS cos-121-lts ou mais recente e desativar as atualizações automáticas.
    • IMAGE_PROJECT: o ID do projeto da imagem do SO. Por exemplo, use cos-cloud para a imagem do Container-Optimized OS cos-121-lts ou mais recente.
    • REGION: 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.
    • DISK_TYPE: o tipo do disco de inicialização. Para essa série de máquinas, recomendamos o uso de hyperdisk-balanced. Para mais informações sobre os tipos de disco compatíveis com seu tipo de máquina, consulte Máquinas com GPU na família de máquinas otimizadas para aceleradores na documentação do Compute Engine.
    • NETWORK_PROJECT_ID: o ID do projeto da rede.
    • GVNIC_NAME_PREFIX: o prefixo de nome especificado ao criar as redes e sub-redes VPC padrão que usam NICs gVNIC.
    • REGION: a região da sub-rede.
    • TERMINATION_ACTION: a ação a ser realizada quando o Compute Engine forçar a interrupção da instância, STOP (padrão) ou DELETE.

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

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

    Substitua:

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

Depois de criar o modelo de instância, você pode visualizá-lo para conferir 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 vários jobs paralelos que podem começar 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 exige distribuição 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 a obter VMs de uma só vez.

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

Jobs de treinamento e ajuste 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. Quando você especifica um tamanho de destino, o MIG começa a criar VMs com base na disponibilidade de recursos atual. Se algum recurso estiver temporariamente indisponível, o MIG tentará criar VMs continuamente 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.

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 \
      --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 \
        --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.
  • ZONE: a zona em que você quer criar o MIG.
  • REGION: a região em que você quer criar a MIG. Para um MIG regional, em vez de uma região, especifique as zonas nessa região usando a flag --zones.

REST

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

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
    }
    
  • Para criar um MIG regional, faça uma solicitação POST para o 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
      }
    
Substitua:
  • PROJECT_ID: o ID do projeto;
  • ZONE: a zona em que você quer criar o MIG.
  • REGION: a região em que você quer criar o 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
  • MIG_NAME: o nome do MIG;
  • TARGET_SIZE: o número de instâncias que você quer no MIG.

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 faça um pedido 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

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 \
          --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 \
      
          --region=REGION \
          --target-distribution-shape=any-single-zone \
          --instance-redistribution-type=none
        
    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

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
  • 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. Saiba mais em 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.

Crie 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 especificados determina o número de VMs que o MIG cria 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

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
      }
      
    2. Crie uma solicitação de redimensionamento no MIG zonal fazendo uma solicitação POST para o método instanceGroupManagerResizeRequests.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/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"
        }
      }
      
    2. Crie uma solicitação de redimensionamento no MIG regional fazendo uma solicitação POST para o 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"
        }
      }
      
    2. Crie uma solicitação de redimensionamento no MIG zonal fazendo uma solicitação POST para o método instanceGroupManagerResizeRequests.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/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"
        }
      }
      
    2. Crie uma solicitação de redimensionamento no MIG regional fazendo uma solicitação POST para o 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

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
      }
      
    2. Crie uma solicitação de redimensionamento no MIG zonal fazendo uma solicitação POST para o método instanceGroupManagerResizeRequests.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/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"
        }
      }
      
    2. Crie uma solicitação de redimensionamento no MIG regional fazendo uma solicitação POST para o 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 está disponível. Saiba mais em 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 uma zona em que o tipo de máquina escolhido está disponível. Saiba mais em 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;
  • 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

Crie 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 especificados determina o número de VMs que o MIG cria 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.

A seguir