Criar um MIG para cargas de trabalho de HPC com consumo vinculado à reserva

Neste tutorial, você aprende a criar um grupo gerenciado de instâncias (MIG) que usa um tipo de máquina H4D. O MIG usa o modelo de provisionamento vinculado à reserva para conseguir recursos de computação.

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.

Este tutorial é destinado a engenheiros de HPC, administradores e operadores de plataforma, além de especialistas em dados e MPI interessados em criar um grupo de instâncias de HPC interconectadas para executar cargas de trabalho. As instâncias resultantes não usam um orquestrador para gerenciamento de instâncias ou programação de jobs.

Se você quiser criar um grupo gerenciado de instâncias, mas não precisar criar uma implantação densa de instâncias, consulte Cenários básicos para criar grupos gerenciados de instâncias (MIGs).

Objetivos

  • Reserve blocos de capacidade para as instâncias de VM.
  • Opcional: crie redes de nuvem privada virtual (VPC).
  • Opcional: crie uma política de carga de trabalho.
  • Criar um modelo de instância.
  • Crie um MIG usando um dos seguintes métodos:
    • Crie um MIG com um tamanho de destino.
    • Crie um MIG e uma solicitação de redimensionamento.
  • Limpe os recursos criados.

Custos

Neste documento, você vai usar os seguintes componentes faturáveis do Cloud de Confiance by S3NS:

Ao concluir as tarefas descritas neste documento, é possível evitar o faturamento contínuo excluindo os recursos criados. Para mais informações, consulte Limpeza.

Antes de começar

  1. Instale a CLI do Google Cloud.

  2. Configure a CLI gcloud para usar sua identidade federada.

    Para mais informações, consulte Fazer login na CLI gcloud com sua identidade federada.

  3. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  4. Crie ou selecione um Cloud de Confiance projeto.

    Funções necessárias para selecionar ou criar um projeto

    • Selecionar um projeto: não é necessário um papel específico do IAM para selecionar um projeto. Você pode escolher qualquer projeto em que tenha recebido um papel.
    • Criar um projeto: para criar um projeto, é necessário ter o papel de Criador de projetos (roles/resourcemanager.projectCreator), que contém a permissão resourcemanager.projects.create. Saiba como conceder papéis.
    • Crie um projeto do Cloud de Confiance :

      gcloud projects create PROJECT_ID

      Substitua PROJECT_ID por um nome para o projeto Cloud de Confiance que você está criando.

    • Selecione o projeto Cloud de Confiance que você criou:

      gcloud config set project PROJECT_ID

      Substitua PROJECT_ID pelo nome do projeto do Cloud de Confiance .

  5. Verifique se o faturamento está ativado para o projeto do Cloud de Confiance .

  6. Ative a API necessária:

    Funções necessárias para ativar APIs

    Para ativar APIs, você precisa da permissão serviceusage.services.enable. Se você criou o projeto, provavelmente já tem essa permissão com o papel de Proprietário (roles/owner). Caso contrário, é possível receber essa permissão com o papel de Administrador do Service Usage (roles/serviceusage.serviceUsageAdmin). Saiba como conceder papéis.

    gcloud services enable compute.googleapis.com
  7. Atribua papéis à sua conta de usuário. Execute uma vez o seguinte comando para cada um dos seguintes papéis do IAM: roles/compute.instanceAdmin.v1,roles/compute.networkAdmin

    gcloud projects add-iam-policy-binding PROJECT_ID --member="user:USER_IDENTIFIER" --role=ROLE

    Substitua:

Capacidade de reserva

Para usar os comandos neste tutorial, reserve a capacidade para criar as instâncias no MIG.

Criar uma reserva adiantada para blocos de capacidade

Com essa ação, é possível reservar blocos de capacidade por um período definido, começando em uma data e hora específicas escolhidas por você. A reserva reserva blocos ou sub-blocos de capacidade em um cluster, o que permite implantações densas de instâncias de VM.

Para criar uma reserva adiantada para uma implantação densa, o processo é o seguinte:

  1. Siga o processo para reservar capacidade entrando em contato com sua equipe de conta na documentação do Hipercomputador de IA. Na sua solicitação de reserva adiantada futura, forneça as informações conforme documentado, com as seguintes exceções:

    • Tipo de máquina: especifique o tipo de máquina H4D h4d-highmem-192-lssd.
    • Zona: especifique uma das zonas em que as instâncias H4D estão disponíveis, conforme documentado na tabela Regiões e zonas disponíveis. Para mostrar apenas as zonas disponíveis para H4D, na lista Selecionar uma série de máquinas, escolha H4D.
    • Tipo de programação de manutenção: para instâncias H4D, é possível especificar GROUPED ou INDEPENDENT.
    • Modo operacional da reserva: para instâncias H4D, especifique o valor HIGHLY_AVAILABLE_CAPACITY.
  2. A cota é aumentada automaticamente antes da entrega da capacidade. Você não precisa fazer nada.

  3. Ao criar o modelo de instância, especifique o modelo de provisionamento vinculado à reserva. As instâncias de VM no MIG são provisionadas com base na sua capacidade reservada.

Você recebe cobranças por todo o período de reserva, mesmo que não use os recursos reservados durante todo o período. Para mais informações, consulte Faturamento de reservas.

Criar uma reserva adiantada no modo de calendário

Se você precisar usar a capacidade reservada por menos de 90 dias, crie uma reserva adiantada no modo de calendário usando o Programador dinâmico de cargas de trabalho. Para receber recursos de reserva adiantada, o processo é o seguinte:

  1. Pesquise a capacidade disponível e reserve recursos usando o console Cloud de Confiance , a CLI gcloud ou a API Compute Engine.
  2. Nenhuma cota é cobrada, e você não precisa fazer nada.
  3. Ao criar o modelo de instância, especifique o modelo de provisionamento vinculado à reserva. As instâncias de VM no MIG são provisionadas com base na sua capacidade reservada.

Você recebe cobranças por todo o período de reserva, mesmo que não use os recursos reservados durante todo o período. Para mais informações, consulte Preços do programador de cargas de trabalho dinâmicas.

Opcional: criar redes VPC

A menos que você desative essa opção, cada projeto tem uma rede padrão, que pode ser usada para fornecer conectividade de rede às suas instâncias. Ao criar uma VM, é possível especificar uma sub-rede e uma rede VPC. Se você omitir essa configuração, a rede e a sub-rede padrão serão usadas.

As instâncias H4D podem ser configuradas para usar o Cloud RDMA. O Cloud RDMA permite recursos de mensagens confiáveis e de baixa latência usando um driver de rede IRDMA que oferece suporte ao acesso direto à memória remota (RDMA) entre instâncias do Compute Engine.

Neste tutorial:

  • Se você quiser configurar as instâncias H4D para usar o Cloud RDMA, conclua as etapas desta seção.
  • Se você não quiser usar o Cloud RDMA, pule esta seção e use a rede padrão.

Para usar o Cloud RDMA com instâncias H4D, é necessário 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 extras, totalizando 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 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 Cloud de Confiance by S3NS.
    • 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 Cloud de Confiance :

    1. No console do Cloud de Confiance , 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.

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 a flag --type=high-throughput no comando:

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

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

Substitua:

  • WORKLOAD_POLICY_NAME: o nome da política de carga de trabalho.
  • TOPOLOGY_DISTANCE: a distância máxima da topologia. Especifique um dos seguintes valores:
    • Para colocar VMs no mesmo sub-bloco: SUBBLOCK
    • Para colocar VMs no mesmo bloco: BLOCK
    • Para colocar VMs no mesmo cluster: CLUSTER
    Observação:uma distância máxima menor pode reduzir a probabilidade de disponibilidade da VM. Para mais informações, consulte Propriedade de distância máxima da topologia.
  • REGION: a região em que você quer criar a política de carga de trabalho. Especifique uma região em que você quer criar o MIG e o tipo de máquina que 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 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 os campos maxTopologyDistance e type na solicitação da seguinte maneira:

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

Substitua:

  • PROJECT_ID: ID do projeto;
  • REGION: a região em que você quer criar a política de carga de trabalho. Especifique uma região em que você quer criar o MIG e o tipo de máquina que 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.
  • TOPOLOGY_DISTANCE: a distância máxima da topologia. Especifique um dos seguintes valores:
    • Para colocar VMs no mesmo sub-bloco: SUBBLOCK
    • Para colocar VMs no mesmo bloco: BLOCK
    • Para colocar VMs no mesmo cluster: CLUSTER
    Observação:uma distância máxima menor pode reduzir a probabilidade de disponibilidade da VM. Para mais informações, consulte a propriedade de distância máxima da topologia.

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:

gcloud

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

REST

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

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

Dependendo dos requisitos da carga de trabalho, é possível criar um MIG em qualquer uma das seguintes configurações:

Criar um MIG com um tamanho de destino

Se for possível iniciar o job sem criar todas as instâncias de VM de uma só vez, crie um MIG com um tamanho de destino. O tamanho de destino determina o número de instâncias no MIG. O MIG começa a criar instâncias com base na disponibilidade atual de recursos. Se algum recurso estiver temporariamente indisponível, o MIG tentará continuamente criar instâncias 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.

Nesta etapa, 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 instâncias no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:
    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID.
    • Para um modelo de instância global: INSTANCE_TEMPLATE_ID
  • TARGET_SIZE: o número de VMs que você quer no MIG.
  • WORKLOAD_POLICY_URL: opcional: o URL da política de carga de trabalho. 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, você pode especificar as zonas nessa região usando a flag --zones.

REST

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

Nesta etapa, 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 do corpo da solicitação.

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 um MIG. Se você usar uma política de carga de trabalho, especifique a mesma região da política.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você quer usar para criar instâncias no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:
    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID.
    • Para um modelo de instância global: INSTANCE_TEMPLATE_ID
  • MIG_NAME: o nome do MIG;
  • TARGET_SIZE: o número de VMs que você quer no MIG.
  • WORKLOAD_POLICY_URL (opcional): o URL da política de carga de trabalho. 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

Para criar todas as instâncias solicitadas ao mesmo tempo, crie um MIG sem instâncias. Depois de criar o MIG vazio, crie uma solicitação de redimensionamento no MIG. Quando os recursos estão disponíveis para criar todas as instâncias de uma só vez, a solicitação de redimensionamento adiciona as instâncias ao MIG.

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

gcloud

Nesta etapa, 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 \
          POPULATION_METHOD \
          --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 \
          POPULATION_METHOD \
          --region=REGION
      

Substitua:

  • MIG_NAME: o nome do MIG;
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você quer usar para criar instâncias no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:
    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID.
    • Para um modelo de instância global: INSTANCE_TEMPLATE_ID
  • WORKLOAD_POLICY_URL (opcional): o URL da política de carga de trabalho. 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.
  • POPULATION_METHOD: o método de adicionar instâncias ao MIG. Use uma das seguintes opções:

    • --resize-by=COUNT: adicione o número especificado de instâncias ao MIG de uma só vez. Os nomes das instâncias são gerados automaticamente.
    • --instances=INSTANCE_NAME_LIST: adiciona de uma só vez ao MIG instâncias com os nomes especificados. Substitua INSTANCE_NAME_LIST por uma lista separada por vírgulas de nomes de instâncias. O número de nomes fornecidos determina o número de instâncias a serem criadas com essa solicitação de redimensionamento.
  • REGION: a região em que o MIG está localizado.

Se você quiser aplicar uma política de carga de trabalho ao MIG, inclua a sinalização --workload-policy no comando.

REST

Nesta etapa, 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 do corpo da solicitação.

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",
        POPULATION_METHOD
      }
      
  • 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",
        POPULATION_METHOD
      }
      

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 o MIG.
  • INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você quer usar para criar instâncias no MIG. O URL pode conter o ID ou o nome do modelo de instância. Especifique um dos seguintes valores:
    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_ID.
    • Para um modelo de instância global: INSTANCE_TEMPLATE_ID
  • MIG_NAME: o nome do MIG;
  • WORKLOAD_POLICY_URL: opcional: o URL da política de carga de trabalho. 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.
  • POPULATION_METHOD: o método de adicionar instâncias ao MIG. Use uma das seguintes opções:

    • "resizeBy":COUNT: substitua COUNT pelo número especificado de instâncias a serem adicionadas ao MIG de uma só vez. Os nomes das instâncias são gerados automaticamente.
    • "instanceNames":INSTANCE_NAME_LIST: adiciona de uma só vez ao MIG instâncias com os nomes especificados. Substitua INSTANCE_NAME_LIST por uma lista separada por vírgulas de nomes de instâncias. O número de nomes fornecidos determina a quantidade de instâncias a serem criadas com essa solicitação de redimensionamento.

Se você quiser aplicar uma política de carga de trabalho ao MIG, inclua o resourcePolicies.workloadPolicy campo no corpo da solicitação.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.

Excluir o projeto

Excluir um projeto do Cloud de Confiance :

gcloud projects delete PROJECT_ID

Excluir os recursos

  1. Exclua solicitações de redimensionamento em um MIG.

  2. Exclua o MIG e as instâncias.

  3. Se o estado de exclusão automática dos discos estiver definido como False no modelo de instância, os discos não serão excluídos automaticamente quando a instância da VM for excluída. É possível excluir os discos usando um dos seguintes métodos:

    Console

    1. No console do Cloud de Confiance , acesse a página Discos.

    Acessar "Discos"

    1. Selecione as linhas que contêm os discos criados neste tutorial. Verifique se a coluna Em uso por está vazia para cada disco.

    2. Clique em Excluir e depois em Excluir para confirmar.

    gcloud

    Use o comando gcloud compute disks delete.

    gcloud compute disks delete DISK_NAME \
        --project PROJECT_ID --zone ZONE
    

    Substitua:

    • DISK_NAME : o nome do disco que será excluído.
    • PROJECT_ID: o ID do projeto que contém o disco
    • ZONE: a zona do disco.

    REST

    Use o método disks.delete para excluir os discos.

    DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/disks/DISK_NAME 
    

    Substitua:

    • PROJECT_ID: o ID do projeto que contém o disco
    • ZONE: a zona do disco.
    • DISK_NAME : o nome do disco que será excluído.
  4. Exclua as redes.

  5. Exclua os modelos de instância.

A seguir