Criar solicitações de redimensionamento em um MIG


Neste documento, descrevemos como criar solicitações de redimensionamento em um grupo gerenciado de instâncias (MIG) de máquina virtual (VM) com GPUs anexadas. Para saber mais sobre as solicitações de redimensionamento, consulte Sobre as solicitações de redimensionamento em um MIG.

Criar uma solicitação de redimensionamento de MIG ajuda a receber recursos com alta demanda, como GPUs, e otimizar custos criando o número exato de VMs de uma só vez. Para criar uma solicitação de redimensionamento de MIG que possa usar os recursos e serviços disponíveis no Cluster Director, consulte Criar um MIG e uma solicitação de redimensionamento na documentação do Hypercomputer de IA.

Antes de começar

  • Para garantir que haja cota de GPU suficiente para os recursos solicitados, verifique sua cota de GPU.
  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud . Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-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. After installing the Google Cloud CLI, initialize it by running the following command:

      gcloud init

      If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

    2. Set a default region and zone.
    3. REST

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

        After installing the Google Cloud CLI, initialize it by running the following command:

        gcloud init

        If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

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

Funções exigidas

Para receber as permissões necessárias a fim de criar solicitações de redimensionamento de MIG, peça ao administrador para conceder a você o Administrador da instância da computação (v1) (roles/compute.instanceAdmin.v1) papel do IAM no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para criar solicitações de redimensionamento de MIG. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para criar solicitações de redimensionamento de MIG:

  • Para criar um modelo de instância: compute.instanceTemplates.create no projeto
  • Para criar um MIG zonal: compute.instanceGroupManagers.create no projeto
  • Para criar uma solicitação de redimensionamento de MIG: compute.instanceGroupManagers.update no projeto

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

Preparar um MIG para solicitações de redimensionamento

Para criar solicitações de redimensionamento de um MIG, configure um modelo de instância e o MIG conforme descrito nas seções a seguir.

Criar um modelo de instância

Para criar um modelo de instância configurado para criar solicitações de redimensionamento de MIG, especifique o seguinte no modelo:

Para criar um modelo de instância configurado para criar solicitações de redimensionamento de MIG, selecione uma das seguintes opções:

Console

  1. No console Google Cloud , acesse a página Modelos de instância.

    Acesse "Modelos de instância"

  2. Clique em Criar modelo de instância. A página Criar um modelo de instância é aberta.

  3. No campo Nome, insira um nome para o modelo de instância.

  4. Na seção Local, selecione uma das seguintes opções:

    • Para criar um modelo de instância regional, selecione Regional (recomendado) e escolha a região em que o modelo será criado.

    • Para criar um modelo de instância global, selecione Global.

  5. Na seção Configuração da máquina, faça o seguinte:

    1. Clique na guia GPUs.

    2. Na lista Tipo de GPU, selecione um tipo de GPU. Só é possível selecionar NVIDIA H200 141GB e tipos mais recentes se você usar o modelo de instância em MIGs zonais.

    3. Na lista Número de GPUs, selecione o número de GPUs.

    4. Opcional: se o modelo de GPU for compatível com estações de trabalho virtuais (vWS) NVIDIA RTX para cargas de trabalho de gráficos e você planeja executar cargas de trabalho com muitos gráficos, selecione Ativar estação de trabalho virtual (NVIDIA GRID).

    5. Na lista Tipo de máquina, selecione um tipo de máquina.

  6. Na seção Modelo de provisionamento, faça o seguinte:

    1. Na lista Modelo de provisionamento de VM, selecione Início flexível.

    2. Para definir uma duração de execução para as VMs criadas pelo modelo de instância, insira o número de horas no campo Enter number of hours. O valor precisa estar entre uma hora (1) e sete dias (168).

  7. Opcional: para alterar o valor padrão do tipo ou da imagem do disco de inicialização, na seção Disco de inicialização, clique em Alterar. Depois, siga as instruções para alterar o disco de inicialização.

  8. Clique em Criar.

gcloud

Para criar um modelo de instância configurado para criar solicitações de redimensionamento de MIG, use o comando beta instance-templates create com as seguintes flags:

  • A flag --maintenance-policy definida como TERMINATE.

  • A flag --instance-termination-action definida como DELETE.

  • A sinalização --max-run-duration

  • A flag --provisioning-model definida como FLEX_START.

  • A flag --reservation-affinity definida como none.

O comando a seguir cria um modelo de instância regional. Para criar um modelo de instância global, use o mesmo comando sem a flag --instance-template-region.

gcloud beta compute instance-templates create INSTANCE_TEMPLATE_NAME \
    --image-project=IMAGE_PROJECT \
    --image-family=IMAGE_FAMILY \
    --instance-termination-action=DELETE \
    --instance-template-region=REGION \
    --machine-type=MACHINE_TYPE \
    --maintenance-policy=TERMINATE \
    --max-run-duration=RUN_DURATION \
    --provisioning-model=FLEX_START \
    --reservation-affinity=none

Substitua:

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância a ser criado.

  • IMAGE_PROJECT: o projeto de imagem que contém a imagem, por exemplo, debian-cloud. Para mais informações sobre os projetos de imagem com suporte, consulte Imagens públicas.

  • IMAGE_FAMILY: uma família de imagens. Especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificar debian-12, a versão mais recente na família de imagens do Debian 12 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

  • REGION: a região em que o modelo de instância será criado.

  • MACHINE_TYPE: um tipo de máquina de GPU. Verifique o seguinte:

    • Só é possível especificar um tipo de máquina A4 ou A3 Ultra para MIGs zonais.

    • Se você especificar um tipo de máquina N1, inclua a flag --accelerator para definir o número e o tipo de GPUs a serem anexadas às VMs.

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

REST

Para criar um modelo de instância configurado para a criação de solicitações de redimensionamento em um MIG, faça uma solicitação POST para um dos seguintes métodos:

No corpo da solicitação, inclua os seguintes campos:

  • O campo scheduling.onHostMaintenance definido como TERMINATE.

  • O campo scheduling.instanceTerminationAction definido como DELETE.

  • O campo scheduling.maxRunDuration.

  • O campo scheduling.provisioningModel definido como FLEX_START.

  • O campo reservationAffinity.consumeReservationType definido como NO_RESERVATION.

Por exemplo, para criar um modelo de instância regional, faça uma solicitação POST da seguinte maneira:

POST https://compute.googleapis.com/compute/beta/projects/PROJECT_ID/regions/REGION/instanceTemplates

{
  "name": "INSTANCE_TEMPLATE_NAME",
  "properties": {
    "disks": [
      {
        "boot": true,
        "initializeParams": {
          "sourceImage": "projects/IMAGE_PROJECT/global/images/IMAGE"
        }
      }
    ],
    "machineType": "MACHINE_TYPE",
    "networkInterfaces": [
      {
        "network": "global/networks/default"
      }
    ],
    "reservationAffinity": {
      "consumeReservationType": "NO_RESERVATION"
    },
    "scheduling": {
      "instanceTerminationAction": "DELETE",
      "maxRunDuration": {
        "seconds": RUN_DURATION
      },
      "onHostMaintenance": "TERMINATE",
      "provisioningModel": "FLEX_START"
    }
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que o modelo de instância será criado.

  • REGION: a região em que o modelo de instância será criado.

  • INSTANCE_TEMPLATE_NAME: o nome do modelo de instância a ser criado.

  • IMAGE_PROJECT: o projeto de imagem que contém a imagem, por exemplo, debian-cloud. Para mais informações sobre os projetos de imagem com suporte, consulte Imagens públicas.

  • IMAGE: especifique uma destas opções:

    • Uma versão específica da imagem do SO. Por exemplo: debian-12-bookworm-v20240617

    • Uma família de imagens, que precisa ser formatada como family/IMAGE_FAMILY. Especifica a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificar family/debian-12, a versão mais recente na família de imagens do Debian 12 será usada. Para mais informações sobre o uso de famílias de imagens, consulte Práticas recomendadas para famílias de imagens.

  • MACHINE_TYPE: um tipo de máquina de GPU. Verifique o seguinte:

    • Só é possível especificar um tipo de máquina A4 ou A3 Ultra para MIGs zonais.

    • Se você especificar um tipo de máquina N1, inclua o campo guestAccelerators no corpo da solicitação para definir o número e o tipo de GPUs a serem anexadas às VMs.

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

Para mais informações sobre como criar um modelo de instância, consulte Criar modelos de instância.

Criar ou atualizar um MIG

Depois de criar o modelo de instância conforme descrito na seção anterior, use esse modelo para atualizar um MIG ou criar um MIG conforme a seguir. Além disso, faça o seguinte a fim de prepará-lo para as solicitações de redimensionamento:

Para criar um MIG compatível com solicitações de redimensionamento, selecione uma das seguintes opções:

Console

  1. No console Google Cloud , acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Clique em Criar grupo de instâncias. A página Criar grupo de instâncias é aberta.

  3. No campo Nome, insira um nome para o MIG.

  4. Antes de selecionar um modelo de instância, exclua a configuração de escalonamento automático e desative os reparos da seguinte maneira:

    1. Para excluir a configuração de escalonamento automático, faça o seguinte:

      1. Na seção Escalonamento automático, clique na lista Modo de escalonamento automático e em Excluir configuração de escalonamento automático.

      2. Na caixa de diálogo de confirmação, clique em Excluir.

    2. Para desativar os reparos, na seção Ciclo de vida da instância de VM, clique na lista Ação padrão em caso de falha e selecione Nenhuma ação.

  5. Volte para o campo Modelo de instância. Na lista Modelo de instância, selecione o modelo de instância que você criou na seção anterior. Se você selecionar um modelo de instância regional, a lista Região será definida como a região do modelo.

  6. Escolha uma destas opções:

    • Para criar uma solicitação de redimensionamento ao criar o MIG, faça o seguinte:

      1. No campo Número de instâncias, insira o número de VMs que você quer criar de uma só vez.

      2. Marque a caixa de seleção Usar solicitação de redimensionamento para criar VMs de uma só vez.

      3. Opcional: para especificar uma duração de execução diferente para as VMs, em vez da definida no modelo de instância, no campo Duração da execução solicitada e nas listas Unidade, especifique uma duração. A duração precisa ser de uma a sete horas.

    • Para criar uma solicitação de redimensionamento depois de criar o MIG, insira 0 no campo Número de instâncias.

  7. Na seção Local, especifique se você quer criar um MIG regional ou por zona da seguinte maneira:

    1. Para criar um MIG zonal, selecione Zona única. Ou, para criar um MIG regional, selecione Várias zonas.

    2. Selecione a Região e as Zonas do MIG.

    3. Se você estiver criando um MIG regional, faça o seguinte:

      1. No campo Forma de distribuição de destino, selecione Qualquer zona única.

      2. Na caixa de diálogo exibida, clique em Desativar redistribuição de instâncias.

  8. Clique em Criar.

gcloud

Use o comando instance-groups managed create com a flag --default-action-on-vm-failure definida como do_nothing. Se você estiver criando um MIG regional, também precisará incluir a flag --target-distribution-shape definida como any-single-zone e a flag --instance-redistribution-type definida como none.

  • Para criar um MIG zonal, execute o seguinte comando:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --size=0 \
        --zone=ZONE \
        --default-action-on-vm-failure=do_nothing
    
  • Para criar um MIG regional, execute o seguinte comando:

    gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
        --template=INSTANCE_TEMPLATE_URL \
        --size=0 \
        --region=REGION \
        --target-distribution-shape=any-single-zone \
        --instance-redistribution-type=none \
        --default-action-on-vm-failure=do_nothing
    

Substitua:

  • INSTANCE_GROUP_NAME: o nome do MIG que será criado.

  • INSTANCE_TEMPLATE_URL: o URL parcial do modelo de instância que você criou na seção anterior. Se você querer usar um modelo de instância regional para criar o MIG, só poderá criar o MIG na região do modelo. Especifique um destes valores:

    • Para um modelo de instância regional: projects/PROJECT_ID/regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_NAME

    • Para um modelo de instância global: INSTANCE_TEMPLATE_NAME

  • ZONE: a zona em que o MIG será criado.

  • REGION: a região em que o MIG será criado.

REST

  • Para criar um MIG por zona, envie uma solicitação POST usando 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": "INSTANCE_GROUP_NAME",
      "targetSize": 0,
      "instanceLifecyclePolicy": {
        "defaultActionOnFailure": "DO_NOTHING"
      }
    }
    
  • Para criar um MIG regional, envie uma solicitação POST usando 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": "INSTANCE_GROUP_NAME",
      "targetSize": 0,
      "distributionPolicy": {
        "targetShape": "ANY_SINGLE_ZONE"
      },
      "updatePolicy": {
        "instanceRedistributionType": "NONE"
      },
      "instanceLifecyclePolicy": {
        "defaultActionOnFailure": "DO_NOTHING"
      }
    }
    

Substitua:

  • PROJECT_ID: o ID do projeto em que o modelo de instância criado na seção anterior existe.

  • INSTANCE_TEMPLATE_URL: o URL parcial do modelo de instância que você criou na seção anterior. Se você querer usar um modelo de instância regional para criar o MIG, só poderá criar o MIG na região do modelo. Especifique um destes valores:

    • Para um modelo de instância regional: regions/REGION/instanceTemplates/INSTANCE_TEMPLATE_NAME

    • Para um modelo de instância global: global/instanceTemplates/INSTANCE_TEMPLATE_NAME

  • ZONE: a zona em que o MIG será criado.

  • REGION: a região em que o MIG será criado.

  • INSTANCE_GROUP_NAME: o nome do MIG que será criado.

Criar uma solicitação de redimensionamento em um MIG

Antes de criar solicitações de redimensionamento de MIG, verifique se você preparou o MIG conforme descrito na seção anterior.

Depois que você cria uma solicitação de redimensionamento e todos os recursos solicitados ficam disponíveis, o MIG cria o número solicitado de VMs de uma só vez. As VMs são executadas até que o MIG as exclua após o término da duração de execução especificada ou até você excluí-las.

Para criar uma solicitação de redimensionamento em um MIG, selecione uma das opções a seguir. Para adicionar VMs com nomes específicos ao MIG por meio de uma solicitação de redimensionamento, use a CLI gcloud ou a API REST.

Console

  1. No console Google Cloud , acesse a página Grupos de instâncias.

    Acesse grupo de instâncias

  2. Na coluna Nome, clique no nome do MIG em que você quer criar a solicitação de redimensionamento.

    A página de visão geral do MIG será aberta.

  3. Na linha Solicitações de redimensionamento, clique em Editar solicitações de redimensionamento.

  4. Clique em Nova solicitação de redimensionamento.

    O painel Novas solicitações de redimensionamento será exibido.

  5. No campo Nome, digite o nome da solicitação de redimensionamento.

  6. No campo Número de instâncias extras necessárias, insira o número de VMs a serem adicionadas ao MIG de uma só vez.

  7. Opcional: para especificar uma duração de execução diferente para as VMs, diferente da definida no modelo de instância, especifique uma duração nos campos Duração da execução solicitada e Unidade. A duração precisa ser de uma hora a sete dias.

  8. Clique em Criar.

gcloud

  • Para criar uma solicitação de redimensionamento em um MIG zonal, use o comando instance-groups managed resize-requests create.

    gcloud compute instance-groups managed resize-requests create INSTANCE_GROUP_NAME \
        --resize-request=RESIZE_REQUEST_NAME \
        --resize-by=COUNT \
        --zone=ZONE
    
  • Para criar uma solicitação de redimensionamento em um MIG regional, use o comando beta instance-groups managed resize-requests create.

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

Substitua:

  • INSTANCE_GROUP_NAME: o nome do MIG configurado para a criação de solicitações de redimensionamento.

  • RESIZE_REQUEST_NAME: o nome da solicitação de redimensionamento, que precisa ser exclusivo no MIG especificado. Caso contrário, a criação da solicitação de redimensionamento falha.

  • COUNT: o número de VMs a serem adicionadas ao MIG de uma só vez.

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

  • ZONE: a zona em que o MIG existe.

  • REGION: a região em que o MIG existe.

Também é possível fazer o seguinte:

REST

No corpo da solicitação, inclua o seguinte:

{
  "name": "RESIZE_REQUEST_NAME",
  "resizeBy": COUNT,
  "requestedRunDuration": {
    "seconds": "RUN_DURATION"
  }
}

Substitua:

  • PROJECT_ID: o ID do projeto em que o MIG especificado existe.

  • ZONE: a zona em que o MIG existe.

  • REGION: a região em que o MIG existe.

  • INSTANCE_GROUP_NAME: o nome do MIG configurado para a criação de solicitações de redimensionamento.

  • RESIZE_REQUEST_NAME: o nome da solicitação de redimensionamento, que precisa ser exclusivo no MIG especificado. Caso contrário, a criação da solicitação de redimensionamento falha.

  • COUNT: o número de VMs a serem adicionadas de uma só vez ao MIG.

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

Também é possível fazer o seguinte:

A seguir