Criar um MIG de HPC com a série de máquinas H4D

Neste documento, descrevemos como criar um grupo gerenciado de instâncias (MIG) que usa um tipo de máquina H4D.

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.

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

Se você quiser criar um MIG, mas não estiver usando tipos de máquina H4D ou não precisar criar uma implantação densa de instâncias, consulte Cenários básicos para criar grupos gerenciados de instâncias (MIGs).

Antes de começar

  • Escolha uma opção de consumo: para criar instâncias de computação em massa e ativar recursos aprimorados de gerenciamento de clusters, escolha uma reserva futura no modo de calendário ou VMs do Spot.

    Se você usar VMs spot, elas poderão não estar compactamente colocadas. Além disso, as VMs do Spot podem ser interrompidas conforme necessário e não estão qualificadas para gerenciar eventos de manutenção do host para grupos de VMs.

  • Obter capacidade: o processo para obter capacidade é diferente para cada opção de consumo.

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

  • Configure a autenticação, caso ainda não tenha feito isso. Com isso, você confirma sua identidade para acesso a serviços e APIs do Google Cloud . Para executar código ou exemplos em um ambiente de desenvolvimento local, faça a autenticação no Compute Engine com um destes métodos:

    Select the tab for how you plan to use the samples on this page:

    Console

    When you use the Google Cloud console to access Google Cloud services and APIs, you don't need to set up authentication.

    gcloud

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

      gcloud init

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

    2. Set a default region and zone.

    REST

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

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

      gcloud init

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

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

Visão geral

A criação de um MIG com o tipo de máquina H4D 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

Limitações

Ao criar um MIG com VMs H4D, as seguintes limitações se aplicam:

  • Se você criar um MIG regional, ele só poderá criar VMs na zona que contém o perfil da rede VPC.

  • Não é possível configurar a flexibilidade de instância no MIG.

  • Se você aplicar uma política de carga de trabalho a um MIG, não será possível mudar a política no MIG quando o grupo tiver VMs. Para mudar a política em um MIG com VMs, primeiro é necessário redimensionar o MIG para zero.

  • Não é possível usar um modelo de instância que especifica uma política de posicionamento para criar um MIG que usa uma política de carga de trabalho.

Opcional: criar redes VPC

Ao criar uma instância de computação, é possível especificar uma rede e uma sub-rede VPC. Se você omitir essa configuração, a rede e a sub-rede padrão serão usadas.

Se você quiser configurar as instâncias H4D no MIG para usar o Cloud RDMA, siga as etapas desta seção. Caso contrário, pule esta seção e use a rede padrão.

Para usar o Cloud RDMA com instâncias H4D, é preciso ter pelo menos duas redes configuradas, uma para cada tipo de interface de rede (NIC):

  • Tipo de NIC GVNIC: usa o driver gve para tráfego TCP/IP e da Internet para comunicação normal entre VM-VM e VM-Internet.
  • Tipo de NIC IRDMA: usa drivers IDPF/iRDMA para rede Cloud RDMA entre instâncias.

As instâncias que usam o Cloud RDMA só podem ter uma interface IRDMA. É possível adicionar até oito interfaces de rede GVNIC para um total de 10 vNICs por instância.

Para configurar as redes VPC do Falcon para usar com suas instâncias, siga as instruções documentadas ou use o script fornecido.

Guias de instruções

Crie as redes, suando as seguintes instruções:

Script

É possível criar até nove interfaces de rede gVNIC e uma interface de rede IRDMA por instância. Cada interface de rede precisa ser anexada a uma rede separada. Para criar as redes, use o script a seguir, que cria duas redes para gVNIC e uma rede para IRDMA.

  1. Opcional: antes de executar o script, liste os perfis de rede da VPC do Falcon para verificar se há um disponível.
      gcloud compute network-profiles list
      
  2. Copie e execute o código a seguir em uma janela de shell do Linux.

      #!/bin/bash
      # Set the number of GVNIC interfaces to create. You can create up to 9.
      NUM_GVNIC=NUMBER_OF_GVNIC
    
      # Create regular VPC networks and subnets for the GVNIC interfaces
        for N in $(seq 0 $(($NUM_GVNIC - 1))); do
          gcloud compute networks create GVNIC_NAME_PREFIX-net-$N \
              --subnet-mode=custom
    
          gcloud compute networks subnets create GVNIC_NAME_PREFIX-sub-$N \
              --network=GVNIC_NAME_PREFIX-net-$N \
              --region=REGION \
              --range=10.$N.0.0/16
    
          gcloud compute firewall-rules create GVNIC_NAME_PREFIX-internal-$N \
              --network=GVNIC_NAME_PREFIX-net-$N \
              --action=ALLOW \
              --rules=tcp:0-65535,udp:0-65535,icmp \
              --source-ranges=10.0.0.0/8
      done
    
      # Create SSH firewall rules
      gcloud compute firewall-rules create GVNIC_NAME_PREFIX-ssh \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=tcp:22 \
          --source-ranges=IP_RANGE
    
      # Optional: Create a firewall rule for the external IP address for the
      #  first GVNIC network interface
      gcloud compute firewall-rules create GVNIC_NAME_PREFIX-allow-ping-net-0 \
          --network=GVNIC_NAME_PREFIX-net-0 \
          --action=ALLOW \
          --rules=icmp \
          --source-ranges=IP_RANGE
    
      # Create a Falcon VPC network for the Cloud RDMA network interface
      gcloud compute networks create RDMA_NAME_PREFIX-irdma \
          --network-profile=ZONE-vpc-falcon \
          --subnet-mode custom
    
      # Create a subnet in the Falcon VPC network
      gcloud compute networks subnets create RDMA_NAME_PREFIX-irdma-sub \
          --network=RDMA_NAME_PREFIX-irdma \
          --region=REGION \
          --range=10.2.0.0/16  # offset to avoid overlap with GVNIC subnet ranges
      

    Substitua:

    • NUMBER_OF_GVNIC: o número de interfaces gVNIC a serem criadas. Especifique um número de 1 a 9.
    • GVNIC_NAME_PREFIX: o prefixo de nome a ser usado para a rede e sub-rede VPC regulares que usam um tipo de NIC GVNIC.
    • REGION: a região em que você quer criar as redes. Isso precisa corresponder à zona especificada para a flag --network-profile ao criar a rede VPC do Falcon. Por exemplo, se você especificar a zona como europe-west4-b, a região será europe-west4.
    • IP_RANGE: o intervalo de endereços IP fora da rede VPC a ser usado para as regras de firewall SSH. Como prática recomendada, especifique os intervalos de endereços IP específicos dos quais é preciso permitir o acesso, em vez de todas as origens IPv4 ou IPv6. Não use 0.0.0.0/0 ou ::/0 como um intervalo de origem, porque isso permite o tráfego de todas as origens IPv4 ou IPv6, incluindo origens fora de Google Cloud.
    • RDMA_NAME_PREFIX: o prefixo de nome a ser usado para a rede VPC e a sub-rede que usam o tipo de NIC IRDMA.
    • ZONE: a zona em que você quer criar as redes e instâncias de computação. Use us-central1-a ou europe-west4-b.
  3. Opcional: para verificar se os recursos de rede VPC foram criados, confira as configurações de rede no console do Google Cloud :

    1. No console do Google Cloud , acesse a página Redes VPC.

      Acessar redes VPC

    2. Pesquise na lista as redes que você criou na etapa anterior.
    3. Para conferir as sub-redes, regras de firewall e outras configurações de rede, clique no nome da rede.

Opcional: criar uma política de carga de trabalho

Se você quiser que o Compute Engine coloque instâncias de VM em um único bloco ou em blocos adjacentes, especifique o posicionamento da instância criando uma política de carga de trabalho. No entanto, se você quiser que o Compute Engine coloque as instâncias 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.

Se você já tiver uma política de carga de trabalho, poderá reutilizá-la. Quando você aplica uma política de carga de trabalho ao seu MIG, o Compute Engine faz o possível para criar instâncias que estejam o mais próximo possível umas das outras. Se o aplicativo for sensível à latência e você quiser que as instâncias fiquem mais próximas (compactação máxima), especifique o campo maxTopologyDistance ao criar uma política de carga de trabalho.

Não é possível atualizar uma política de carga de trabalho depois de criá-la. Para fazer mudanças em uma política de carga de trabalho, crie uma nova.

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 melhor esforço das VMs, especifique apenas a flag --type=high-throughput no comando:

    gcloud compute resource-policies create workload-policy WORKLOAD_POLICY_NAME \
        --type=high-throughput \
        --region=REGION
    
  • Para alocação conjunta estrita de VMs, especifique a flag --max-topology-distance 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.
  • 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 você quer usar está disponível. Para informações sobre regiões e zonas, consulte Regiões e zonas disponíveis.

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 melhor esforço das VMs, especifique apenas 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 alocação conjunta estrita de VMs, especifique o campo maxTopologyDistance 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 você quer usar está disponível. Para informações sobre regiões e zonas, consulte Regiões e zonas disponíveis.
  • WORKLOAD_POLICY_NAME: o nome da política de carga de trabalho.

Criar um modelo de instância

Para especificar as propriedades de instância e consumo de cada instância no MIG, crie um modelo de instância usando um dos seguintes métodos.

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

gcloud

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 e ao modelo de provisionamento.

Início flexível

Para criar um modelo de instância regional, use o comando gcloud compute instance-templates create.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --instance-template-region=REGION \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    
--network-interface=nic-type=GVNIC, \
      network=GVNIC_NAME_PREFIX-net-0, \
      subnet=GVNIC_NAME_PREFIX-sub-0, \
      stack-type=STACK_TYPE, \
      address=EXTERNAL_IPV4_ADDRESS \
--network-interface=nic-type=GVNIC, \
      network=GVNIC_NAME_PREFIX-net-1, \
      subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
--network-interface=nic-type=IRDMA, \
      network=RDMA_NAME_PREFIX-irdma, \
      subnet=RDMA_NAME_PREFIX-irdma-sub, \
      stack-type=IPV4_ONLY,no-address \
    
    --reservation-affinity=none \
    --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 H4D a ser usado para a instância.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GiB.
  • GVNIC_NAME_PREFIX: o prefixo de nome usado ao criar as redes e sub-redes VPC padrão para as interfaces gVNIC.

    Se você estiver usando a rede padrão, inclua apenas um campo --network-interface com o campo nic-type definido como GVNIC. Além disso, omita as configurações network e subnetwork para essa interface de rede.

  • STACK_TYPE: opcional: o tipo de pilha a ser usado para a interface gVNIC. Especifique IPV4_ONLY ou IPV4_IPV6. Se você não especificar um valor, IPV4_ONLY será usado por padrão.
  • EXTERNAL_IPV4_ADDRESS (opcional): um endereço IPv4 externo estático para usar com a interface de rede gVNIC. É preciso ter reservado um endereço IPv4 externo. Escolha uma destas opções:

    • Especifique um endereço IPv4 válido da sub-rede.
    • Use a flag no-address se não quiser que a interface de rede tenha um endereço IP externo.
    • Especifique address='' se quiser que a interface de rede receba um endereço IP externo temporário.

    Para especificar um endereço IPv6 externo para a interface de rede gVNIC, use a flag --external-ipv6-address.

  • RDMA_NAME_PREFIX: o prefixo de nome usado ao criar a rede VPC e a sub-rede para a interface de rede IRDMA.

    Se você não estiver usando o Cloud RDMA com as instâncias H4D, omita o campo --network-interface para a interface IRDMA.

  • RUN_DURATION: a duração da execução das instâncias solicitadas. Formate o valor como o número de dias, horas, minutos ou segundos seguidos por d, h, m e s respectivamente. Por exemplo, especifique 30m para 30 minutos ou 1d2h3m4s para um dia, duas horas, três minutos e quatro segundos. O valor precisa estar entre 10 minutos e sete dias.

Vinculada à reserva

Para criar um modelo de instância regional, use o comando gcloud compute instance-templates create.

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

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina H4D a ser usado para a instância.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GiB.
  • GVNIC_NAME_PREFIX: o prefixo de nome usado ao criar as redes e sub-redes VPC padrão para as interfaces gVNIC.

    Se você estiver usando a rede padrão, inclua apenas um campo --network-interface com o campo nic-type definido como GVNIC. Além disso, omita as configurações network e subnetwork para essa interface de rede.

  • STACK_TYPE: opcional: o tipo de pilha a ser usado para a interface gVNIC. Especifique IPV4_ONLY ou IPV4_IPV6. Se você não especificar um valor, IPV4_ONLY será usado por padrão.
  • EXTERNAL_IPV4_ADDRESS (opcional): um endereço IPv4 externo estático para usar com a interface de rede gVNIC. É preciso ter reservado um endereço IPv4 externo. Escolha uma destas opções:

    • Especifique um endereço IPv4 válido da sub-rede.
    • Use a flag no-address se não quiser que a interface de rede tenha um endereço IP externo.
    • Especifique address='' se quiser que a interface de rede receba um endereço IP externo temporário.

    Para especificar um endereço IPv6 externo para a interface de rede gVNIC, use a flag --external-ipv6-address.

  • RDMA_NAME_PREFIX: o prefixo de nome usado ao criar a rede VPC e a sub-rede para a interface de rede IRDMA.

    Se você não estiver usando o Cloud RDMA com as instâncias H4D, omita o campo --network-interface para a interface IRDMA.

  • RESERVATION: o nome da reserva que você quer usar.

    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

Spot

Para criar um modelo de instância regional, use o comando gcloud compute instance-templates create.

gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --machine-type=MACHINE_TYPE \
    --image-family=IMAGE_FAMILY \
    --image-project=IMAGE_PROJECT \
    --instance-template-region=REGION \
    --boot-disk-type=hyperdisk-balanced \
    --boot-disk-size=DISK_SIZE \
    --scopes=cloud-platform \
    
--network-interface=nic-type=GVNIC, \
      network=GVNIC_NAME_PREFIX-net-0, \
      subnet=GVNIC_NAME_PREFIX-sub-0, \
      stack-type=STACK_TYPE, \
      address=EXTERNAL_IPV4_ADDRESS \
--network-interface=nic-type=GVNIC, \
      network=GVNIC_NAME_PREFIX-net-1, \
      subnet=GVNIC_NAME_PREFIX-sub-1,no-address \
--network-interface=nic-type=IRDMA, \
      network=RDMA_NAME_PREFIX-irdma, \
      subnet=RDMA_NAME_PREFIX-irdma-sub, \
      stack-type=IPV4_ONLY,no-address \
    --provisioning-model=SPOT \
    --instance-termination-action=TERMINATION_ACTION

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina H4D a ser usado para a instância.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de 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.
  • DISK_SIZE: o tamanho do disco de inicialização em GiB.
  • GVNIC_NAME_PREFIX: o prefixo de nome usado ao criar as redes e sub-redes VPC padrão para as interfaces gVNIC.

    Se você estiver usando a rede padrão, inclua apenas um campo --network-interface com o campo nic-type definido como GVNIC. Além disso, omita as configurações network e subnetwork para essa interface de rede.

  • STACK_TYPE: opcional: o tipo de pilha a ser usado para a interface gVNIC. Especifique IPV4_ONLY ou IPV4_IPV6. Se você não especificar um valor, IPV4_ONLY será usado por padrão.
  • EXTERNAL_IPV4_ADDRESS (opcional): um endereço IPv4 externo estático para usar com a interface de rede gVNIC. É preciso ter reservado um endereço IPv4 externo. Escolha uma destas opções:

    • Especifique um endereço IPv4 válido da sub-rede.
    • Use a flag no-address se não quiser que a interface de rede tenha um endereço IP externo.
    • Especifique address='' se quiser que a interface de rede receba um endereço IP externo temporário.

    Para especificar um endereço IPv6 externo para a interface de rede gVNIC, use a flag --external-ipv6-address.

  • RDMA_NAME_PREFIX: o prefixo de nome usado ao criar a rede VPC e a sub-rede para a interface de rede IRDMA.

    Se você não estiver usando o Cloud RDMA com as instâncias H4D, omita o campo --network-interface para a interface IRDMA.

  • TERMINATION_ACTION: se o Compute Engine interrompe (STOP) ou exclui (DELETE) as VMs spot na preempção.

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

Início flexível

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "machineType":"MACHINE_TYPE",
    
        "networkInterfaces": [
        {
          "network": "GVNIC_NAME_PREFIX-net-0",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
          "accessConfigs": [
            {
                "type": "ONE_TO_ONE_NAT",
                "name": "External IP",
                "natIP": "EXTERNAL_IPV4_ADDRESS"
            }
          ],
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "GVNIC_NAME_PREFIX-net-1",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "RDMA_NAME_PREFIX-irdma",
          "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
          "stackType": "IPV4_ONLY",
          "nicType": "IRDMA",
      }
    ],
,
    "reservationAffinity": {
        "consumeReservationType": "NO_RESERVATION"
      },
    "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. Especifique um tipo de máquina H4D. Para mais informações, consulte Tipos de máquina H4D.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de 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 Regiões e zonas.
  • DISK_SIZE: o tamanho do disco de inicialização em GiB.
  • GVNIC_NAME_PREFIX: o prefixo de nome usado ao criar as redes e sub-redes VPC padrão para as interfaces gVNIC.

    Se você estiver usando a rede padrão, inclua apenas um campo --network-interface com o campo nic-type definido como GVNIC. Além disso, omita as configurações network e subnetwork para essa interface de rede.

  • EXTERNAL_IPV4_ADDRESS (opcional): um endereço IPv4 externo estático para usar com a interface de rede gVNIC. É preciso ter reservado um endereço IPv4 externo.

    Para especificar um endereço IPv6 externo para a interface de rede gVNIC, use a flag --external-ipv6-address.

  • RDMA_NAME_PREFIX: o prefixo de nome usado ao criar a rede VPC e a sub-rede para a interface de rede IRDMA.

    Se você não estiver usando o Cloud RDMA com as instâncias H4D, omita o campo --network-interface para a interface IRDMA.

  • RUN_DURATION: a duração, em segundos, em que você quer que as instâncias solicitadas sejam executadas. O valor precisa estar entre 600, que representa 600 segundos (10 minutos), e 604800, que é 604.800 segundos (sete dias).

Vinculada à reserva

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "machineType":"MACHINE_TYPE",
    
        "networkInterfaces": [
        {
          "network": "GVNIC_NAME_PREFIX-net-0",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
          "accessConfigs": [
            {
                "type": "ONE_TO_ONE_NAT",
                "name": "External IP",
                "natIP": "EXTERNAL_IPV4_ADDRESS"
            }
          ],
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "GVNIC_NAME_PREFIX-net-1",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "RDMA_NAME_PREFIX-irdma",
          "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
          "stackType": "IPV4_ONLY",
          "nicType": "IRDMA",
      }
    ],
,
    "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. Especifique um tipo de máquina H4D. Para mais informações, consulte Tipos de máquina H4D.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de 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 Regiões e zonas.
  • DISK_SIZE: o tamanho do disco de inicialização em GiB.
  • GVNIC_NAME_PREFIX: o prefixo de nome usado ao criar as redes e sub-redes VPC padrão para as interfaces gVNIC.

    Se você estiver usando a rede padrão, inclua apenas um campo --network-interface com o campo nic-type definido como GVNIC. Além disso, omita as configurações network e subnetwork para essa interface de rede.

  • EXTERNAL_IPV4_ADDRESS (opcional): um endereço IPv4 externo estático para usar com a interface de rede gVNIC. É preciso ter reservado um endereço IPv4 externo.

    Para especificar um endereço IPv6 externo para a interface de rede gVNIC, use a flag --external-ipv6-address.

  • RDMA_NAME_PREFIX: o prefixo de nome usado ao criar a rede VPC e a sub-rede para a interface de rede IRDMA.

    Se você não estiver usando o Cloud RDMA com as instâncias H4D, omita o campo --network-interface para a interface IRDMA.

  • RESERVATION: o nome da reserva que você quer usar.

    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

Spot

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

POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceTemplates
{
  "name":"INSTANCE_TEMPLATE_NAME",
  "properties":{
    "disks":[
      {
        "boot":true,
        "initializeParams":{
          "diskSizeGb":"DISK_SIZE",
          "diskType":"hyperdisk-balanced",
          "sourceImage":"projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY"
        },
        "mode":"READ_WRITE",
        "type":"PERSISTENT"
      }
    ],
    "machineType":"MACHINE_TYPE",
    
        "networkInterfaces": [
        {
          "network": "GVNIC_NAME_PREFIX-net-0",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-0",
          "accessConfigs": [
            {
                "type": "ONE_TO_ONE_NAT",
                "name": "External IP",
                "natIP": "EXTERNAL_IPV4_ADDRESS"
            }
          ],
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "GVNIC_NAME_PREFIX-net-1",
          "subnetwork": "GVNIC_NAME_PREFIX-sub-1",
          "stackType": "IPV4_ONLY",
          "nicType": "GVNIC",
      },
      {
          "network": "RDMA_NAME_PREFIX-irdma",
          "subnetwork": "RDMA_NAME_PREFIX-irdma-sub",
          "stackType": "IPV4_ONLY",
          "nicType": "IRDMA",
      }
    ],
,
    "scheduling":
    {
      "provisioningModel": "SPOT",
      "instanceTerminationAction": "TERMINATION_ACTION"
    }
  }
}

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. Especifique um tipo de máquina H4D. Para mais informações, consulte Tipos de máquina H4D.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que você quer usar. Para uma lista de 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 Regiões e zonas.
  • DISK_SIZE: o tamanho do disco de inicialização em GiB.
  • GVNIC_NAME_PREFIX: o prefixo de nome usado ao criar as redes e sub-redes VPC padrão para as interfaces gVNIC.

    Se você estiver usando a rede padrão, inclua apenas um campo --network-interface com o campo nic-type definido como GVNIC. Além disso, omita as configurações network e subnetwork para essa interface de rede.

  • EXTERNAL_IPV4_ADDRESS (opcional): um endereço IPv4 externo estático para usar com a interface de rede gVNIC. É preciso ter reservado um endereço IPv4 externo.

    Para especificar um endereço IPv6 externo para a interface de rede gVNIC, use a flag --external-ipv6-address.

  • RDMA_NAME_PREFIX: o prefixo de nome usado ao criar a rede VPC e a sub-rede para a interface de rede IRDMA.

    Se você não estiver usando o Cloud RDMA com as instâncias H4D, omita o campo --network-interface para a interface IRDMA.

  • TERMINATION_ACTION: se o Compute Engine interrompe (STOP) ou exclui (DELETE) as VMs spot na preempção.

Depois de criar o modelo de instância, você pode visualizar o modelo 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 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 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á 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.

Os comandos para criar um MIG usam uma política de carga de trabalho para especificar o posicionamento da VM. 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 VMs 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 VMs 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 a 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 dessa região usando a flag --zones.

REST

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

As solicitações para criar um MIG usam uma política de carga de trabalho para especificar o posicionamento da VM. 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",
      "instanceTemplate": "INSTANCE_TEMPLATE_URL",
      "targetSize": "TARGET_SIZE",
      "resourcePolicies": {
        "workloadPolicy": WORKLOAD_POLICY_URL
      }
    }
    
  • 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
      {
        "versions": [
          {
            "instanceTemplate": "INSTANCE_TEMPLATE_URL"
          }
        ],
        "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 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.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você quer usar para criar VMs 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 VMs 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.

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:

      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 \
          --zones=ZONE \
          --target-distribution-shape=any-single-zone \
          --instance-redistribution-type=none
        
    2. Crie uma solicitação de redimensionamento no MIG regional usando o comando Beta instance-groups managed resize-requests create da seguinte maneira:

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

Vinculada à reserva

Os comandos para criar um MIG usam uma política de carga de trabalho para especificar o posicionamento da VM. 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:

  • 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 \
          --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:

      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 \
          --workload-policy=WORKLOAD_POLICY_URL \
          --zones=ZONE \
          --target-distribution-shape=any-single-zone \
          --instance-redistribution-type=none
        
    2. Crie uma solicitação de redimensionamento no MIG regional usando o comando Beta instance-groups managed resize-requests create da seguinte maneira:

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

Spot

Os comandos para criar um MIG usam uma política de carga de trabalho para especificar o posicionamento da VM. 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:

  • 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 \
          --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:

      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 \
          --workload-policy=WORKLOAD_POLICY_URL \
          --zones=ZONE \
          --target-distribution-shape=any-single-zone \
          --instance-redistribution-type=none
        
    2. Crie uma solicitação de redimensionamento no MIG regional usando o comando Beta instance-groups managed resize-requests create da seguinte maneira:

      gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --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 VMs 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. 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 VMs a serem adicionadas ao MIG de uma só vez.
  • REGION: a região em que o MIG está localizado.

Se a carga de trabalho exigir nomes de VM específicos, especifique uma lista de nomes de VMs a serem criadas usando o comando beta instance-groups managed resize-requests create. No comando, substitua a flag --resize-request pela flag--instances.

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.

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:
      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 beta.regionInstanceGroupManagerResizeRequests.insert da seguinte maneira:
      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      

Vinculada à reserva

As solicitações para criar um MIG usam uma política de carga de trabalho para especificar o posicionamento da VM. 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 para o método instanceGroupManagerResizeRequests.insert da seguinte maneira:
      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 para o método beta.regionInstanceGroupManagerResizeRequests.insert da seguinte maneira:
      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      

Spot

As solicitações para criar um MIG usam uma política de carga de trabalho para especificar o posicionamento da VM. 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 para o método instanceGroupManagerResizeRequests.insert da seguinte maneira:
      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 para o método beta.regionInstanceGroupManagerResizeRequests.insert da seguinte maneira:
      POST https://compute.googleapis.com/compute/beta/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. 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.
  • REGION: a região em que você quer criar a MIG.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você quer usar para criar VMs 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 VMs a serem adicionadas ao MIG de uma só vez.

Se a carga de trabalho exigir nomes de VM específicos, especifique uma lista de nomes de VMs a serem criadas. Para isso, envie uma solicitação POST para o método beta.regionInstanceGroupManagerResizeRequests.insert para um MIG regional ou o método beta.instanceGroupManagerResizeRequests.insert para um MIG zonal. No corpo da solicitação, substitua o campo resizeBy pelo campo instanceNames.

A seguir