Neste documento, descrevemos como usar o modo em massa em um MIG para criar todas as instâncias de máquina virtual (VM) necessárias ao mesmo tempo. A criação de instâncias de uma só vez garante que o MIG crie instâncias somente quando todos os recursos necessários estiverem disponíveis.
Para saber como o modo em massa funciona, consulte Sobre a criação em massa de instâncias em um MIG.
Criar um modelo de instância
O modo em massa em MIGs só é compatível com modelos de instância que especificam um modelo de provisionamento vinculado à reserva ou de início flexível. Para usar o modo em massa, crie um modelo de instância usando um desses modelos de provisionamento, conforme descrito nas seções a seguir. Para mais informações sobre os modelos de provisionamento, consulte Modelos de provisionamento de instâncias do Compute Engine.
Usar o modelo de provisionamento vinculado à reserva
Para criar um modelo de instância, selecione uma das seguintes opções:
Console
No console do Google Cloud , acesse a página Modelos de instância.
Clique em Criar modelo de instância. A página Criar modelo de instância será aberta.
No campo Nome, insira um nome para o modelo de instância.
Na seção Local, escolha uma destas opções:
Para criar um modelo de instância regional, selecione Regional (recomendado) e escolha uma região que aceite tipos de máquinas de TPU.
Para criar um modelo de instância global, selecione Global.
Na seção Configuração da máquina, especifique um tipo de máquina.
Na seção Modelo de provisionamento, conclua as etapas a seguir:
Expanda Configurações avançadas do modelo de provisionamento de VM.
Na lista No encerramento da VM, selecione Excluir.
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.
Expanda a seção Opções avançadas e depois faça o seguinte:
Expanda a seção Gerenciamento.
Na seção Reservas, selecione Escolher uma reserva e clique em Escolher reserva. No painel que aparece, siga as instruções para selecionar a reserva que você quer consumir.
Clique em Criar.
gcloud
Para criar um modelo de instância, use o
comando instance-templates create com as seguintes configurações de flag:
A flag
--instance-termination-actiondefinida comoDELETE.A flag
--maintenance-policydefinida comoTERMINATE.A flag
--provisioning-modeldefinida comoRESERVATION_BOUND.A flag
--reservation-affinitydefinida comospecific.A sinalização
--reservation
O exemplo de comando a seguir cria um modelo de instância regional. Se você quiser criar um modelo de instância global, use o mesmo comando sem a flag --instance-template-region.
gcloud 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 \
--provisioning-model=RESERVATION_BOUND \
--reservation-affinity=specific \
--reservation=RESERVATION_URL
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 detalhes sobre os projetos de imagem disponíveis, consulte Imagens públicas.IMAGE_FAMILY: uma família de imagens. Especifique uma família de imagens para usar a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificardebian-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. Especifique uma região que aceite tipos de máquinas de TPU.MACHINE_TYPE: o tipo de máquina especificado na reserva que você quer consumir.RESERVATION_URL: o URL da reserva criada automaticamente para uma reserva futura no modo de calendário que você quer usar. Especifique um dos seguintes valores:Se a reserva criada automaticamente estiver no seu projeto:
RESERVATION_NAME.Se a reserva criada automaticamente estiver em outro projeto:
projects/PROJECT_ID/reservations/RESERVATION_NAME.
REST
Para criar um modelo de instância, faça uma solicitação POST para um dos
seguintes métodos:
Para criar um modelo de instância regional: método
regionInstanceTemplates.insertPara criar um modelo de instância global: método
instanceTemplates.insert
No corpo da solicitação, inclua estes campos:
O campo
reservationAffinity.consumeReservationTypedefinido comoSPECIFIC_RESERVATION.O campo
reservationAffinity.keydefinido comocompute.googleapis.com/reservation-name.O campo
reservationAffinity.valuesdefinido como o URL da reserva criada automaticamente.O campo
scheduling.instanceTerminationActiondefinido comoDELETE.O campo
scheduling.onHostMaintenancedefinido comoTERMINATE.O campo
scheduling.provisioningModeldefinido comoRESERVATION_BOUND.
Por exemplo, para criar um modelo de instância regional, faça uma solicitação da seguinte maneira:
POST https://compute.googleapis.com/compute/v1/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": "SPECIFIC_RESERVATION",
"key": "compute.googleapis.com/reservation-name",
"values": [
"RESERVATION_URL"
]
},
"scheduling": {
"instanceTerminationAction": "DELETE",
"onHostMaintenance": "TERMINATE",
"provisioningModel": "RESERVATION_BOUND"
}
}
}
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. Especifique uma região que aceite tipos de máquinas de TPU.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 detalhes sobre os projetos de imagem disponíveis, consulte Imagens públicas.IMAGE: especifique uma destas opções:Uma versão específica da imagem do SO, como
debian-12-bookworm-v20240617.Uma família de imagens, que precisa ter o formato
family/IMAGE_FAMILY. Especifique uma família de imagens para usar a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificarfamily/debian-12, a versão mais recente na família de imagens Debian 10 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: o tipo de máquina especificado na reserva que você quer consumir.RESERVATION_URL: o URL da reserva criada automaticamente para uma reserva futura no modo de calendário que você quer usar. Especifique um dos seguintes valores:Se a reserva criada automaticamente estiver no seu projeto:
RESERVATION_NAMESe a reserva criada automaticamente estiver em outro projeto:
projects/PROJECT_ID/reservations/RESERVATION_NAME
Para mais detalhes, consulte Criar modelos de instância.
Usar o modelo de provisionamento de início flexível
Para criar um modelo de instância, selecione uma das seguintes opções:
Console
No console do Google Cloud , acesse a página Modelos de instância.
Clique em Criar modelo de instância. A página Criar modelo de instância será aberta.
No campo Nome, insira um nome para o modelo de instância.
Na seção Local, escolha uma destas opções:
Para criar um modelo de instância regional, selecione Regional (recomendado) e escolha uma região que aceite tipos de máquinas de TPU.
Para criar um modelo de instância global, selecione Global.
Na seção Configuração da máquina, especifique um tipo de máquina.
Na seção Modelo de provisionamento, conclua as etapas a seguir:
No campo Modelo de provisionamento de VM, selecione Início flexível.
Expanda Configurações avançadas do modelo de provisionamento de VM.
Marque a caixa de seleção Definir um limite de tempo para a VM.
Para definir uma duração de execução para as VMs criadas usando o modelo de instância, no campo Insira o número de horas, insira o número de horas. O valor precisa estar entre 36 segundos (
0.01) e sete dias (168).
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.
Clique em Criar.
gcloud
Para criar um modelo de instância, use o
comando instance-templates create com as seguintes configurações de flag:
A flag
--instance-termination-actiondefinida comoDELETE.A flag
--maintenance-policydefinida comoTERMINATE.A sinalização
--max-run-durationA flag
--provisioning-modeldefinida comoFLEX_START.
O exemplo de comando a seguir cria um modelo de instância regional. Se você quiser criar um modelo de instância global, use o mesmo comando sem a flag --instance-template-region.
gcloud compute instance-templates create INSTANCE_TEMPLATE_NAME \
--image-project=IMAGE_PROJECT \
--image-family=IMAGE_FAMILY \
--instance-template-region=REGION \
--instance-termination-action=DELETE \
--machine-type=MACHINE_TYPE \
--maintenance-policy=TERMINATE \
--max-run-duration=RUN_DURATION \
--provisioning-model=FLEX_START
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 detalhes sobre os projetos de imagem disponíveis, consulte Imagens públicas.IMAGE_FAMILY: uma família de imagens. Especifique uma família de imagens para usar a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificardebian-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. Especifique uma região que aceite tipos de máquinas de TPU.MACHINE_TYPE: o tipo de máquina a ser usado para as VMs de início flexível. Se você especificar um tipo de máquina N1, inclua a flag--acceleratorpara 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. Formate o valor como o número de dias, horas, minutos ou segundos, seguido pord,h,mes, respectivamente. Por exemplo, especifique30mpara 30 minutos ou1d2h3m4spara 1 dia, 2 horas, 3 minutos e 4 segundos. O valor precisa estar entre 10 minutos e sete dias.
REST
Para criar um modelo de instância, faça uma solicitação POST para um dos
seguintes métodos:
Para criar um modelo de instância regional: método
regionInstanceTemplates.insertPara criar um modelo de instância global: método
instanceTemplates.insert
No corpo da solicitação, inclua estes campos:
O campo
scheduling.instanceTerminationActiondefinido comoDELETE.O campo
scheduling.maxRunDuration.O campo
scheduling.onHostMaintenancedefinido comoTERMINATE.O campo
scheduling.provisioningModeldefinido comoFLEX_START.
A solicitação de exemplo a seguir cria um modelo de instância regional:
POST https://compute.googleapis.com/compute/v1/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"
}
],
"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. Especifique uma região que aceite tipos de máquinas de TPU.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 detalhes sobre os projetos de imagem disponíveis, consulte Imagens públicas.IMAGE: especifique uma destas opções:Uma versão específica da imagem do SO, como
debian-12-bookworm-v20240617.Uma família de imagens, que precisa ter o formato
family/IMAGE_FAMILY. Especifique uma família de imagens para usar a imagem do SO mais recente e não descontinuada. Por exemplo, se você especificarfamily/debian-12, a versão mais recente na família de imagens Debian 10 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: o tipo de máquina a ser usado para as VMs de início flexível. Se você especificar um tipo de máquina N1, inclua o campoguestAcceleratorspara 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 entre600, que representa 600 segundos (10 minutos), e604800, que é 604.800 segundos (sete dias).
Para mais detalhes, consulte Criar modelos de instância.
Criar um MIG que use o modo em massa
Para ativar a criação em massa de instâncias em um MIG, defina o campo targetSizePolicy.mode
como BULK na configuração do MIG. Ao usar esse modo em massa, o MIG
aguarda a disponibilidade total de recursos e cria instâncias de uma só vez.
Console
Acesse a página Grupos de instâncias.
Clique em Criar grupo de instâncias. A página Criar grupo de instâncias é aberta.
No campo Nome, insira um nome para o MIG.
Antes de selecionar um modelo de instância, faça o seguinte:
- Se você usa o modelo de provisionamento de início flexível, desative
os reparos da seguinte maneira:
- Na seção Ciclo de vida da instância de VM, desmarque a caixa de seleção Permitir a correção de VMs em uma zona alternativa.
- Na lista Ação padrão em caso de falha, selecione Nenhuma ação.
- Na seção Local, faça o seguinte:
- Para criar um MIG zonal, selecione Zona única.
- Para criar um MIG regional, selecione Várias zonas. Em Forma de distribuição de destino, selecione Qualquer zona única. Na caixa de diálogo que aparece, selecione Desativar redistribuição de instâncias.
- Se você usa o modelo de provisionamento de início flexível, desative
os reparos da seguinte maneira:
Volte ao campo Modelo de instância. Na lista Modelo de instância, selecione o modelo de instância que você criou na seção anterior.
No campo Número de instâncias, especifique o número de instâncias que você quer criar de uma só vez.
Marque a caixa de seleção Obter VMs de uma só vez com a política de tamanho de destino em massa.
Clique em Criar.
gcloud
Para criar um MIG com a criação em massa ativada, use o
comando gcloud compute instance-groups managed create
com a flag --target-size-policy-mode definida como bulk.
Se você usar o modelo de provisionamento de início flexível, desative os reparos
no MIG incluindo a flag --default-action-on-vm-failure=do-nothing
nos comandos a seguir.
- Para criar um MIG zonal, execute o seguinte comando:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
--size=SIZE \
--target-size-policy-mode=bulk \
--template=INSTANCE_TEMPLATE_URL \
--zone=ZONE \
- Para criar um MIG regional, execute o seguinte comando:
gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \
--size=SIZE \
--target-size-policy-mode=bulk \
--template=INSTANCE_TEMPLATE_URL \
--zones=LIST_OF_ZONES \
Substitua:
INSTANCE_GROUP_NAME: o nome do MIG;SIZE: o número de instâncias no 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
- Para um modelo de instância regional:
ZONE: a zona em que o MIG cria instâncias.LIST_OF_ZONES: uma lista separada por vírgulas de zonas em que o MIG regional cria instâncias. Por exemplo,us-central1-a, us-central1-b, us-central1-c.
REST
Para criar um MIG com a criação em massa ativada, faça uma solicitação POST da
seguinte maneira. No corpo da solicitação, defina o campo targetSizePolicy.mode como
bulk.
Se você usar o modelo de provisionamento de início flexível, desative os reparos
no MIG incluindo o campo
"instanceLifecyclePolicy": {"defaultActionOnFailure": "DO_NOTHING"}
nas seguintes solicitações.
Para criar um MIG zonal, faça uma solicitação
POSTpara o métodoinstanceGroupManagers.insert.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "targetSize": SIZE, "targetSizePolicy": { "mode": "bulk" }, "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ] }Para criar um MIG regional, faça uma solicitação
POSTpara o métodoregionInstanceGroupManagers.insert.POST https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers { "name": "INSTANCE_GROUP_NAME", "targetSize": SIZE, "targetSizePolicy": { "mode": "bulk" }, "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ] }
Substitua:
PROJECT_ID:o ID do projeto.ZONE:a zona em que o MIG cria instâncias.REGION:a região em que o MIG cria instâncias.INSTANCE_GROUP_NAME:o nome do MIG.SIZE:o número de instâncias no 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
- Para um modelo de instância regional:
Adicionar ou excluir instâncias
Em um MIG que usa o modo em massa, é possível adicionar ou remover instâncias aumentando ou diminuindo manualmente o tamanho de destino do MIG.
Adicionar instâncias: quando você aumenta o tamanho de destino de zero, o MIG adiciona instâncias da mesma forma que ao criar um MIG. Também é possível criar instâncias com nomes específicos usando o método
createInstancesquando não há instância no MIG. Para criar instâncias com nomes específicos, consulte Como criar instâncias com nomes específicos em MIGs.Excluir instâncias: quando você diminui o tamanho de destino para zero, o MIG exclui todas as instâncias atuais no grupo e cancela qualquer operação de criação em andamento. É possível remover instâncias diminuindo o tamanho de destino para
0. Para diminuir para um tamanho diferente de zero, o MIG não pode ter uma operação de instância em massa em andamento (bulkInstanceOperation.inProgressprecisa serfalse).
Para adicionar ou remover instâncias de um MIG mudando o tamanho de destino, consulte Definir manualmente o tamanho de um MIG.