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 a região em que você quer criar o modelo.
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.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 adiantada no modo de calendário que você quer efetivar. 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.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 adiantada no modo de calendário que você quer efetivar. 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 a região em que você quer criar o modelo.
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.A flag
--reservation-affinitydefinida comonone.
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 \
--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 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.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
reservationAffinity.consumeReservationTypedefinido comoNO_RESERVATION.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"
}
],
"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 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. 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.
A seguir
- Saiba como ver ou cancelar a criação em massa de instâncias em um MIG.
- Saiba como trabalhar com instâncias gerenciadas.
- Ver informações sobre MIGs e instâncias gerenciadas