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

Este documento descreve como criar um grupo de instâncias gerido (MIG) que usa um tipo de máquina H4D.

A criação de um GIG permite-lhe gerir várias máquinas virtuais (VMs) como uma única entidade. Cada VM num MIG baseia-se num modelo de instância. Ao gerir automaticamente as VMs no grupo, os MIGs oferecem alta disponibilidade e escalabilidade. Para saber mais sobre os MIGs, consulte o artigo Grupos de instâncias geridos.

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

Se quiser criar um MIG, mas não estiver a usar tipos de máquinas H4D, ou não precisar de criar uma implementação densa de instâncias, consulte os cenários básicos para criar grupos de instâncias geridos (MIGs).

Antes de começar

  • Escolha uma opção de consumo: para criar instâncias de computação em massa e ativar capacidades de gestão de clusters melhoradas, pode escolher uma reserva futura no modo de calendário ou VMs de opção.

    Se optar por usar VMs do Spot, as VMs podem não estar localizadas de forma compacta. Além disso, as VMs de capacidade instantânea podem ser anuladas conforme necessário e não são elegíveis para gerir eventos de manutenção do anfitrião para grupos de VMs.

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

    Para saber mais, consulte o artigo Escolha uma opção de consumo e obtenha capacidade.

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:

    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 Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

    REST

    Para usar os exemplos da API REST nesta página num ambiente de desenvolvimento local, usa as credenciais que fornece à CLI gcloud.

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

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    Para mais informações, consulte o artigo Autenticar para usar REST na Google Cloud documentação de autenticação.

Vista geral

A criação de um MIG com o tipo de máquina H4D inclui os seguintes passos:

  1. Crie redes VPC
  2. Opcional: crie uma política de carga de trabalho
  3. Crie um modelo de instância
  4. Crie um MIG

Limitações

Quando cria um MIG com VMs H4D, aplicam-se as seguintes limitações:

  • Se criar um GIG regional, o GIG só pode criar VMs na zona que contém o perfil da rede VPC.

  • Não pode configurar a flexibilidade das instâncias no MIG.

  • Se aplicar uma política de carga de trabalho a um MIG, não pode alterar a política no MIG quando o grupo tiver VMs. Para alterar a política num MIG que tenha VMs, primeiro tem de redimensionar o MIG para zero.

  • Não pode usar um modelo de instância que especifique uma política de posicionamento para criar um MIG que use uma política de carga de trabalho.

Opcional: crie redes VPC

Quando cria uma instância de computação, pode especificar uma rede de VPC e uma sub-rede. Se omitir esta configuração, são usadas a rede e a sub-rede predefinidas.

Se quiser configurar as instâncias H4D no MIG para usar o Cloud RDMA, conclua os passos nesta secção. Caso contrário, pode ignorar esta secção e usar a rede predefinida.

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

  • Tipo de NIC GVNIC: usa o controlador gve para TCP/IP e tráfego da Internet para comunicação normal entre VMs e entre VMs e a Internet.
  • Tipo de NIC IRDMA: usa controladores IDPF/iRDMA para rede RDMA na nuvem entre instâncias.

As instâncias que usam o RDMA na nuvem só podem ter uma interface IRDMA. Pode adicionar até oito interfaces de rede GVNIC adicionais para um total de 10 vNICs por instância.

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

Guias de instruções

Para criar as redes, pode usar as seguintes instruções:

Script

Pode criar até nove interfaces de rede gVNIC e uma interface de rede IRDMA por instância. Cada interface de rede tem de ser anexada a uma rede separada. Para criar as redes, pode usar o seguinte script, que cria duas redes para gVNIC e uma rede para IRDMA.

  1. Opcional: antes de executar o script, liste os perfis de rede VPC do Falcon para verificar se existe um disponível.
      gcloud compute network-profiles list
      
  2. Copie o seguinte código e execute-o numa 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 o seguinte:

    • NUMBER_OF_GVNIC: o número de interfaces GVNIC a criar. Especifique um número de 1 a 9.
    • GVNIC_NAME_PREFIX: o prefixo do nome a usar para a rede VPC normal e a sub-rede que usa um tipo de NIC GVNIC.
    • REGION: a região onde quer criar as redes. Tem de corresponder à zona especificada para a flag --network-profile quando cria a rede da VPC do Falcon. Por exemplo, se especificar a zona como europe-west4-b, a sua região é europe-west4.
    • IP_RANGE: o intervalo de endereços IP fora da rede VPC a usar para as regras de firewall SSH. Como prática recomendada, especifique os intervalos de endereços IP específicos a partir dos quais precisa de permitir o acesso, em vez de todas as origens IPv4 ou IPv6. Não use 0.0.0.0/0 nem ::/0 como um intervalo de origem, porque isso permite tráfego de todas as origens IPv4 ou IPv6, incluindo origens fora de Google Cloud.
    • RDMA_NAME_PREFIX: o prefixo do nome a usar para a rede VPC e a sub-rede que usa o tipo de NIC IRDMA.
    • ZONE: a zona onde quer criar as redes e as instâncias de computação. Use us-central1-a ou europe-west4-b.
  3. Opcional: para verificar se os recursos da rede VPC foram criados com êxito, verifique as definições de rede na Google Cloud consola:

    1. Na Google Cloud consola, aceda à página Redes VPC.

      Aceda a redes de VPC

    2. Pesquise na lista as redes que criou no passo anterior.
    3. Para ver as sub-redes, as regras da firewall e outras definições de rede, clique no nome da rede.

Opcional: crie uma política de carga de trabalho

Se quiser que o Compute Engine coloque instâncias de VM num único bloco ou em blocos adjacentes, especifique o posicionamento de instâncias criando uma política de carga de trabalho. No entanto, se quiser que o Compute Engine coloque as suas instâncias num bloco específico, ignore este passo e indique o nome do bloco na afinidade de reserva quando criar o modelo de instância.

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

Não é possível atualizar uma política de carga de trabalho depois de a criar. Para fazer alterações a uma política de carga de trabalho, tem de criar 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 VMs com o melhor esforço, 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 a colocação conjunta rigorosa 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 o seguinte:

  • WORKLOAD_POLICY_NAME: o nome da política de carga de trabalho.
  • REGION: a região onde quer criar a política de carga de trabalho. Especifique uma região na qual quer criar o MIG e o tipo de máquina que quer usar está disponível. Para informações sobre regiões e zonas, consulte o artigo Regiões e zonas disponíveis.

REST

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

  • Para um posicionamento de VMs com base no melhor esforço, especifique apenas o campo type no pedido da seguinte forma:

    POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/resourcePolicies
      {
        "name": "WORKLOAD_POLICY_NAME"
        "workloadPolicy": {
          "type": "HIGH_THROUGHPUT"
        }
      }
    
  • Para a colocação conjunta estrita de VMs, especifique o campo maxTopologyDistance no pedido da seguinte forma:

    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 o seguinte:

  • PROJECT_ID: o ID do seu projeto
  • REGION: a região onde quer criar a política de carga de trabalho. Especifique uma região na qual quer criar o MIG e o tipo de máquina que quer usar está disponível. Para informações sobre regiões e zonas, consulte o artigo Regiões e zonas disponíveis.
  • WORKLOAD_POLICY_NAME: o nome da política de carga de trabalho.

Crie um modelo de instância

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

Os seguintes comandos também definem o âmbito de acesso para as suas instâncias. Para simplificar a gestão de autorizações, a Google recomenda que defina o âmbito de acesso numa instância para acesso cloud-platform e, em seguida, use as funções do IAM para definir a que serviços a instância pode aceder. Para mais informações, consulte o artigo Práticas recomendadas de âmbitos.

gcloud

Os parâmetros que tem de especificar dependem da opção de consumo que está a usar para esta implementação. Selecione o separador que corresponde à sua opção de consumo e modelo de aprovisionamento.

Flex-start

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 o seguinte:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina H4D a usar para a instância.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que quer usar. Para ver uma lista dos sistemas operativos suportados, consulte o artigo Sistemas operativos suportados.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região onde quer criar o modelo de instância. Especifique uma região na qual o tipo de máquina que quer usar esteja disponível.
  • DISK_SIZE: o tamanho do disco de arranque em GiB.
  • GVNIC_NAME_PREFIX: o prefixo do nome que usou quando criou as redes VPC e as sub-redes padrão para as interfaces gVNIC.

    Se estiver a usar a rede predefinida, inclua apenas um único campo --network-interface com o campo nic-type definido como GVNIC. Além disso, omita as definições network e subnetwork para esta interface de rede.

  • STACK_TYPE: opcional: o tipo de pilha a usar para a interface gVNIC. Especifique IPV4_ONLY ou IPV4_IPV6. Se não especificar um valor, IPV4_ONLY é usado por predefinição.
  • EXTERNAL_IPV4_ADDRESS: Opcional: um endereço IPv4 externo estático a usar com a interface de rede gVNIC. Tem de ter reservado um endereço IPv4 externo anteriormente. Efetue um dos seguintes passos:

    • 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 efémero.

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

  • RDMA_NAME_PREFIX: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface de rede IRDMA.

    Se não estiver a usar o RDMA na nuvem com as suas instâncias H4D, omita o campo --network-interface para a interface IRDMA.

  • RUN_DURATION: a duração durante a qual quer que as instâncias pedidas sejam executadas. Tem de formatar o valor como o número de dias, horas, minutos ou segundos, seguido de d, h, m e s, respetivamente. Por exemplo, especifique 30m para 30 minutos ou 1d2h3m4s para um dia, duas horas, três minutos e quatro segundos. O valor tem de estar entre 10 minutos e sete dias.

Associado a 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 o seguinte:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina H4D a usar para a instância.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que quer usar. Para ver uma lista dos sistemas operativos suportados, consulte o artigo Sistemas operativos suportados.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região onde quer criar o modelo de instância. Especifique uma região na qual o tipo de máquina que quer usar esteja disponível.
  • DISK_SIZE: o tamanho do disco de arranque em GiB.
  • GVNIC_NAME_PREFIX: o prefixo do nome que usou quando criou as redes VPC e as sub-redes padrão para as interfaces gVNIC.

    Se estiver a usar a rede predefinida, inclua apenas um único campo --network-interface com o campo nic-type definido como GVNIC. Além disso, omita as definições network e subnetwork para esta interface de rede.

  • STACK_TYPE: opcional: o tipo de pilha a usar para a interface gVNIC. Especifique IPV4_ONLY ou IPV4_IPV6. Se não especificar um valor, IPV4_ONLY é usado por predefinição.
  • EXTERNAL_IPV4_ADDRESS: Opcional: um endereço IPv4 externo estático a usar com a interface de rede gVNIC. Tem de ter reservado um endereço IPv4 externo anteriormente. Efetue um dos seguintes passos:

    • 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 efémero.

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

  • RDMA_NAME_PREFIX: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface de rede IRDMA.

    Se não estiver a usar o RDMA na nuvem com as suas instâncias H4D, omita o campo --network-interface para a interface IRDMA.

  • RESERVATION: o nome da reserva que quer usar.

    RESERVATION: o nome da reserva ou um bloco específico numa reserva. Para obter o nome da reserva ou os blocos disponíveis, consulte o artigo Veja a capacidade reservada. Com base no seu requisito de posicionamento de instâncias, escolha uma das seguintes opções:
    • Para criar instâncias em vários blocos ou num ú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 blocos (maxTopologyDistance=BLOCK) . Em seguida, o Compute Engine aplica a política à reserva e cria instâncias no mesmo bloco.

    • Para criar instâncias num bloco específico:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME

Espaço

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 o seguinte:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina H4D a usar para a instância.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que quer usar. Para ver uma lista dos sistemas operativos suportados, consulte o artigo Sistemas operativos suportados.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região onde quer criar o modelo de instância. Especifique uma região na qual o tipo de máquina que quer usar esteja disponível.
  • DISK_SIZE: o tamanho do disco de arranque em GiB.
  • GVNIC_NAME_PREFIX: o prefixo do nome que usou quando criou as redes VPC e as sub-redes padrão para as interfaces gVNIC.

    Se estiver a usar a rede predefinida, inclua apenas um único campo --network-interface com o campo nic-type definido como GVNIC. Além disso, omita as definições network e subnetwork para esta interface de rede.

  • STACK_TYPE: opcional: o tipo de pilha a usar para a interface gVNIC. Especifique IPV4_ONLY ou IPV4_IPV6. Se não especificar um valor, IPV4_ONLY é usado por predefinição.
  • EXTERNAL_IPV4_ADDRESS: Opcional: um endereço IPv4 externo estático a usar com a interface de rede gVNIC. Tem de ter reservado um endereço IPv4 externo anteriormente. Efetue um dos seguintes passos:

    • 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 efémero.

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

  • RDMA_NAME_PREFIX: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface de rede IRDMA.

    Se não estiver a usar o RDMA na nuvem com as suas instâncias H4D, omita o campo --network-interface para a interface IRDMA.

  • TERMINATION_ACTION: se o Compute Engine para (STOP) ou elimina (DELETE) as VMs do Spot na preempção.

REST

Os parâmetros que tem de especificar dependem da opção de consumo que está a usar para esta implementação. Selecione o separador que corresponde à sua opção de consumo e modelo de aprovisionamento.

Flex-start

Para criar um modelo de instância regional, faça um pedido POST ao 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 o seguinte:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a usar para a instância. Especifique um tipo de máquina H4D. Para mais informações, consulte os tipos de máquinas H4D.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que quer usar. Para ver uma lista dos sistemas operativos suportados, consulte o artigo Sistemas operativos suportados.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região onde quer criar o modelo de instância. Especifique uma região na qual o tipo de máquina que quer usar esteja disponível. Para obter informações sobre regiões, consulte o artigo Regiões e zonas.
  • DISK_SIZE: o tamanho do disco de arranque em GiB.
  • GVNIC_NAME_PREFIX: o prefixo do nome que usou quando criou as redes VPC e as sub-redes padrão para as interfaces gVNIC.

    Se estiver a usar a rede predefinida, inclua apenas um único campo --network-interface com o campo nic-type definido como GVNIC. Além disso, omita as definições network e subnetwork para esta interface de rede.

  • EXTERNAL_IPV4_ADDRESS: Opcional: um endereço IPv4 externo estático a usar com a interface de rede gVNIC. Tem de ter reservado um endereço IPv4 externo anteriormente.

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

  • RDMA_NAME_PREFIX: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface de rede IRDMA.

    Se não estiver a usar o RDMA na nuvem com as suas instâncias H4D, omita o campo --network-interface para a interface IRDMA.

  • RUN_DURATION: a duração, em segundos, durante a qual quer que as instâncias pedidas sejam executadas. O valor tem de estar entre 600, que é 600 segundos (10 minutos), e 604800, que é 604 800 segundos (sete dias).

Associado a reserva

Para criar um modelo de instância regional, faça um pedido POST ao 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 o seguinte:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a usar para a instância. Especifique um tipo de máquina H4D. Para mais informações, consulte os tipos de máquinas H4D.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que quer usar. Para ver uma lista dos sistemas operativos suportados, consulte o artigo Sistemas operativos suportados.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região onde quer criar o modelo de instância. Especifique uma região na qual o tipo de máquina que quer usar esteja disponível. Para obter informações sobre regiões, consulte o artigo Regiões e zonas.
  • DISK_SIZE: o tamanho do disco de arranque em GiB.
  • GVNIC_NAME_PREFIX: o prefixo do nome que usou quando criou as redes VPC e as sub-redes padrão para as interfaces gVNIC.

    Se estiver a usar a rede predefinida, inclua apenas um único campo --network-interface com o campo nic-type definido como GVNIC. Além disso, omita as definições network e subnetwork para esta interface de rede.

  • EXTERNAL_IPV4_ADDRESS: Opcional: um endereço IPv4 externo estático a usar com a interface de rede gVNIC. Tem de ter reservado um endereço IPv4 externo anteriormente.

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

  • RDMA_NAME_PREFIX: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface de rede IRDMA.

    Se não estiver a usar o RDMA na nuvem com as suas instâncias H4D, omita o campo --network-interface para a interface IRDMA.

  • RESERVATION: o nome da reserva que quer usar.

    RESERVATION: o nome da reserva ou um bloco específico numa reserva. Para obter o nome da reserva ou os blocos disponíveis, consulte o artigo Veja a capacidade reservada. Com base no seu requisito de posicionamento de instâncias, escolha uma das seguintes opções:
    • Para criar instâncias em vários blocos ou num ú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 blocos (maxTopologyDistance=BLOCK) . Em seguida, o Compute Engine aplica a política à reserva e cria instâncias no mesmo bloco.

    • Para criar instâncias num bloco específico:

      projects/RESERVATION_OWNER_PROJECT_ID/reservations/RESERVATION_NAME/reservationBlocks/RESERVATION_BLOCK_NAME

Espaço

Para criar um modelo de instância regional, faça um pedido POST ao 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 o seguinte:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.
  • MACHINE_TYPE: o tipo de máquina a usar para a instância. Especifique um tipo de máquina H4D. Para mais informações, consulte os tipos de máquinas H4D.
  • IMAGE_FAMILY: a família de imagens da imagem do SO que quer usar. Para ver uma lista dos sistemas operativos suportados, consulte o artigo Sistemas operativos suportados.
  • IMAGE_PROJECT: o ID do projeto da imagem do SO.
  • REGION: a região onde quer criar o modelo de instância. Especifique uma região na qual o tipo de máquina que quer usar esteja disponível. Para obter informações sobre regiões, consulte o artigo Regiões e zonas.
  • DISK_SIZE: o tamanho do disco de arranque em GiB.
  • GVNIC_NAME_PREFIX: o prefixo do nome que usou quando criou as redes VPC e as sub-redes padrão para as interfaces gVNIC.

    Se estiver a usar a rede predefinida, inclua apenas um único campo --network-interface com o campo nic-type definido como GVNIC. Além disso, omita as definições network e subnetwork para esta interface de rede.

  • EXTERNAL_IPV4_ADDRESS: Opcional: um endereço IPv4 externo estático a usar com a interface de rede gVNIC. Tem de ter reservado um endereço IPv4 externo anteriormente.

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

  • RDMA_NAME_PREFIX: o prefixo do nome que usou quando criou a rede VPC e a sub-rede para a interface de rede IRDMA.

    Se não estiver a usar o RDMA na nuvem com as suas instâncias H4D, omita o campo --network-interface para a interface IRDMA.

  • TERMINATION_ACTION: se o Compute Engine para (STOP) ou elimina (DELETE) as VMs do Spot na preempção.

Depois de criar o modelo de instância, pode ver o modelo para ver o respetivo ID e rever as propriedades da instância.

Crie um MIG

Depois de concluir todos os passos anteriores, crie um MIG com base no seu cenário da seguinte forma:

Cenário Método para criar um MIG e VMs no mesmo Exemplo
Tem várias tarefas paralelas 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 quer no grupo.

Consulte o artigo Crie um MIG com um tamanho de destino.

Empregos de inferência de AA
Tem um trabalho que requer distribuição por um número exato de VMs. Crie um MIG sem VMs e, em seguida, crie um pedido de redimensionamento no MIG. O pedido de redimensionamento ajuda a obter VMs de uma só vez.

Consulte o artigo Crie um MIG e um pedido de redimensionamento.

Tarefas de ajuste preciso e formação de ML distribuídas

Crie um MIG com o tamanho de destino

Se puder iniciar a tarefa sem criar todas as VMs de uma vez, crie um MIG com um tamanho-alvo. O tamanho do destino determina o número de VMs no MIG. O GIG começa a criar VMs com base na disponibilidade de recursos atual. Se algum recurso estiver temporariamente indisponível, o MIG tenta continuamente criar VMs para atingir o tamanho alvo.

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

gcloud

Para criar um MIG com um tamanho alvo 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 não quiser usar uma política de carga de trabalho, remova a flag --workload-policy.

Crie um GIG zonal ou regional da seguinte forma:

  • 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 o seguinte:
  • MIG_NAME: o nome do MIG.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que 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 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 não quiser usar uma política de carga de trabalho, pode remover a flag --workload-policy.
  • ZONE: a zona na qual quer criar o MIG. Se usar uma política de carga de trabalho, especifique uma zona na região da política.
  • REGION: a região na qual quer criar o MIG. Se usar uma política de carga de trabalho, especifique a mesma região que a da política. Para um MIG regional, em vez de uma região, pode especificar as zonas nessa região através da flag --zones.

REST

Para criar um MIG com um tamanho de destino especificado, faça um pedido POST.

Os pedidos de criação de um GIG usam uma política de carga de trabalho para especificar o posicionamento da VM. Se não quiser usar uma política de carga de trabalho, remova o campo resourcePolicies.workloadPolicy.

Crie um GIG zonal ou regional da seguinte forma:

  • Para criar um MIG zonal, faça um pedido POST ao 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 GIG regional, faça um pedido POST ao 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 o seguinte:
  • PROJECT_ID: o ID do projeto.
  • ZONE: a zona na qual quer criar o MIG. Se usar uma política de carga de trabalho, especifique uma zona na região da política.
  • REGION: a região na qual quer criar o MIG. Se usar uma política de carga de trabalho, especifique a mesma região que a da política.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que 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 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 não quiser usar uma política de carga de trabalho, pode remover o campo resourcePolicies.workloadPolicy.

Crie um MIG e um pedido de redimensionamento

Se precisar de várias VMs em simultâneo para iniciar uma tarefa, crie um MIG e crie um pedido de redimensionamento no MIG, conforme descrito nesta secção.

Para criar um pedido de redimensionamento num MIG, selecione uma das seguintes opções.

gcloud

Os parâmetros que tem de especificar dependem da opção de consumo que está a usar para esta implementação. Selecione o separador que corresponde ao modelo de aprovisionamento da sua opção de consumo.

Flex-start

Crie um GIG zonal ou regional e um pedido de redimensionamento da seguinte forma:

  • Para criar um MIG zonal e um pedido de redimensionamento no mesmo, faça o seguinte:

    1. Crie um MIG zonal com o comando instance-groups managed create da seguinte forma.

      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 um pedido de redimensionamento no GIG zonal através do comando instance-groups managed resize-requests create da seguinte forma:

      gcloud compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --zone=ZONE
      
  • Para criar um GIG regional e um pedido de redimensionamento no mesmo, faça o seguinte:

    1. Crie um MIG regional com o comando instance-groups managed create da seguinte forma.

      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 um pedido de redimensionamento no GIG regional através do comando beta instance-groups managed resize-requests create da seguinte forma:

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

Associado a reserva

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

Crie um GIG zonal ou regional e um pedido de redimensionamento da seguinte forma:

  • Para criar um MIG zonal e um pedido de redimensionamento no mesmo, faça o seguinte:

    1. Crie um MIG zonal com o comando instance-groups managed create da seguinte forma.

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --workload-policy=WORKLOAD_POLICY_URL \
          --zone=ZONE
      
    2. Crie um pedido de redimensionamento no GIG zonal através do comando instance-groups managed resize-requests create da seguinte forma:

      gcloud compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --zone=ZONE
      
  • Para criar um GIG regional e um pedido de redimensionamento no mesmo, faça o seguinte:

    1. Crie um MIG regional com o comando instance-groups managed create da seguinte forma.

      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 um pedido de redimensionamento no GIG regional através do comando beta instance-groups managed resize-requests create da seguinte forma:

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

Espaço

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

Crie um GIG zonal ou regional e um pedido de redimensionamento da seguinte forma:

  • Para criar um MIG zonal e um pedido de redimensionamento no mesmo, faça o seguinte:

    1. Crie um MIG zonal com o comando instance-groups managed create da seguinte forma.

      gcloud compute instance-groups managed create MIG_NAME \
          --template=INSTANCE_TEMPLATE_URL \
          --size=0 \
          --workload-policy=WORKLOAD_POLICY_URL \
          --zone=ZONE
      
    2. Crie um pedido de redimensionamento no GIG zonal através do comando instance-groups managed resize-requests create da seguinte forma:

      gcloud compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --zone=ZONE
      
  • Para criar um GIG regional e um pedido de redimensionamento no mesmo, faça o seguinte:

    1. Crie um MIG regional com o comando instance-groups managed create da seguinte forma.

      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 um pedido de redimensionamento no GIG regional através do comando beta instance-groups managed resize-requests create da seguinte forma:

      gcloud beta compute instance-groups managed resize-requests create MIG_NAME \
          --resize-request=RESIZE_REQUEST_NAME \
          --resize-by=COUNT \
          --region=REGION
      
Substitua o seguinte:
  • MIG_NAME: o nome do MIG.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que 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 não quiser usar uma política de carga de trabalho, pode remover a flag --workload-policy.
  • ZONE: a zona na qual quer criar o MIG. Para um MIG regional, também tem de especificar uma zona. Esta zona tem de ser a zona que contém o perfil da sua rede VPC e tem de ser uma zona onde o tipo de máquina está disponível. Para mais informações, consulte a secção Limitações.
  • RESIZE_REQUEST_NAME: o nome do pedido de redimensionamento, que tem de ser exclusivo no MIG especificado. Caso contrário, a criação do pedido de redimensionamento falha.
  • COUNT: o número de VMs a adicionar ao MIG de uma só vez.
  • REGION: a região em que o MIG está localizado.

Se a sua carga de trabalho exigir nomes de VMs específicos, pode especificar uma lista de nomes de VMs a criar através do comando beta instance-groups managed resize-requests create. No comando, substitua a flag --resize-request pela flag --instances.

REST

Os parâmetros que tem de especificar dependem da opção de consumo que está a usar para esta implementação. Selecione o separador que corresponde ao modelo de aprovisionamento da sua opção de consumo.

Flex-start

Crie um GIG zonal ou regional e um pedido de redimensionamento da seguinte forma:

  • Para criar um GIG zonal e um pedido de redimensionamento no mesmo, faça o seguinte:
    1. Crie um GIG zonal fazendo um pedido POST ao método instanceGroupManagers.insert da seguinte forma.
      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 um pedido de redimensionamento no GIG zonal fazendo um pedido POST ao método instanceGroupManagerResizeRequests.insert da seguinte forma:
      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 GIG regional e um pedido de redimensionamento no mesmo, faça o seguinte:
    1. Crie um GIG regional fazendo um pedido POST ao método regionInstanceGroupManagers.insert da seguinte forma.
      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 um pedido de redimensionamento no GIG regional fazendo um pedido POST ao método beta.regionInstanceGroupManagerResizeRequests.insert da seguinte forma:
      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      

Associado a reserva

Os pedidos de criação de um GIG usam uma política de carga de trabalho para especificar o posicionamento da VM. Se não quiser usar uma política de carga de trabalho, remova o campo resourcePolicies.workloadPolicy.

Crie um GIG zonal ou regional e um pedido de redimensionamento da seguinte forma:

  • Para criar um GIG zonal e um pedido de redimensionamento no mesmo, faça o seguinte:
    1. Crie um GIG zonal fazendo um pedido POST ao método instanceGroupManagers.insert da seguinte forma.
      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 um pedido de redimensionamento no GIG zonal fazendo um pedido POST ao método instanceGroupManagerResizeRequests.insert da seguinte forma:
      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 GIG regional e um pedido de redimensionamento no mesmo, faça o seguinte:
    1. Crie um GIG regional fazendo um pedido POST ao método regionInstanceGroupManagers.insert da seguinte forma.
      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 um pedido de redimensionamento no GIG regional fazendo um pedido POST ao método beta.regionInstanceGroupManagerResizeRequests.insert da seguinte forma:
      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      

Espaço

Os pedidos de criação de um GIG usam uma política de carga de trabalho para especificar o posicionamento da VM. Se não quiser usar uma política de carga de trabalho, remova o campo resourcePolicies.workloadPolicy.

Crie um GIG zonal ou regional e um pedido de redimensionamento da seguinte forma:

  • Para criar um GIG zonal e um pedido de redimensionamento no mesmo, faça o seguinte:
    1. Crie um GIG zonal fazendo um pedido POST ao método instanceGroupManagers.insert da seguinte forma.
      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 um pedido de redimensionamento no GIG zonal fazendo um pedido POST ao método instanceGroupManagerResizeRequests.insert da seguinte forma:
      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 GIG regional e um pedido de redimensionamento no mesmo, faça o seguinte:
    1. Crie um GIG regional fazendo um pedido POST ao método regionInstanceGroupManagers.insert da seguinte forma.
      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 um pedido de redimensionamento no GIG regional fazendo um pedido POST ao método beta.regionInstanceGroupManagerResizeRequests.insert da seguinte forma:
      POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/MIG_NAME/resizeRequests
      {
        "name": "RESIZE_REQUEST_NAME",
        "resizeBy": COUNT
      }
      
Substitua o seguinte:
  • PROJECT_ID: o ID do projeto.
  • ZONE: a zona na qual quer criar o MIG. Para um MIG regional, também tem de especificar uma zona. Esta zona tem de ser a zona que contém o perfil da sua rede VPC e tem de ser uma zona onde o tipo de máquina está disponível. Para mais informações, consulte a secção Limitações.
  • REGION: a região na qual quer criar o MIG.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que 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 não quiser usar uma política de carga de trabalho, pode remover o campo resourcePolicies.workloadPolicy.
  • RESIZE_REQUEST_NAME: o nome do pedido de redimensionamento, que tem de ser exclusivo no MIG especificado. Caso contrário, a criação do pedido de redimensionamento falha.
  • COUNT: o número de VMs a adicionar ao MIG de uma só vez

Se a sua carga de trabalho exigir nomes de VMs específicos, pode especificar uma lista de nomes de VMs a criar. Para o fazer, envie um pedido POST para o método beta.regionInstanceGroupManagerResizeRequests.insert para um GIG regional ou o método beta.instanceGroupManagerResizeRequests.insert para um GIG zonal. No corpo do pedido, substitua o campo resizeBy pelo campo instanceNames.

O que se segue?