Neste documento, explicamos como criar um grupo gerenciado de instâncias (MIG) que usa VMs Spot.
As VMs spot são instâncias de máquina virtual (VM) que podem ser adquiridas com um desconto significativo. No entanto, o Compute Engine pode interromper ou excluir VMs spot a qualquer momento para recuperar a capacidade. Use as VMs do Spot para executar cargas de trabalho tolerantes a falhas, como jobs de processamento em lote ou aplicativos sem estado, a um baixo custo.
Para outros métodos que podem ser usados para criar MIGs, consulte Cenários básicos para criar um MIG.
Antes de começar
- Verifique se você tem cota suficiente para os recursos que quer solicitar. Para mais informações, consulte Cotas de alocação.
- Verifique a disponibilidade de recursos na região ou zona em que você quer criar VMs spot. Isso ajuda a reduzir as chances de encontrar erros de disponibilidade de recursos ao criar VMs. Para instruções, consulte Verificar a disponibilidade de VMs spot.
-
Configure a autenticação, caso ainda não tenha feito isso.
Com isso, você confirma 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:
Selecione a guia para como planeja usar as amostras nesta página:
Console
Quando você usa o console Google Cloud para acessar serviços Google Cloud e APIs, não é necessário configurar a autenticação.
gcloud
-
Instale a CLI do Google Cloud. Após a instalação, inicialize a Google Cloud CLI executando o seguinte comando:
gcloud initSe você usa um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
- Defina uma região e uma zona padrão.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para a CLI gcloud.
Instale a CLI do Google Cloud.
Se você usa um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
Saiba mais em Autenticar para usar REST na documentação de autenticação do Google Cloud .
Funções exigidas
Para receber as permissões necessárias para criar MIGs que usam VMs Spot,
peça ao administrador para conceder a você o papel do IAM de Administrador da instância da computação (v1) (roles/compute.instanceAdmin.v1) 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 MIGs que usam VMs spot. Para acessar 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 MIGs que usam VMs do Spot:
-
Para criar um modelo de instância:
compute.instanceTemplates.createno projeto -
Para criar um MIG:
compute.instanceGroupManagers.createno projeto
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Criar um MIG que use VMs Spot
Para criar um MIG que use VMs Spot, siga estas etapas:
Criar um modelo de instância configurado para criar VMs Spot
Para criar um modelo de instância configurado para criar VMs Spot, 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 um modelo de instância é exibida.
No campo Nome, insira um nome para o modelo de instância.
Na seção Local, selecione o tipo de modelo de instância que você quer criar:
Para um modelo de instância regional, selecione Regional e escolha a região em que você quer criar o modelo. Com base no tipo de máquina que você quer que as VMs do Spot usem, especifique uma região compatível.
Para um modelo de instância global, selecione Global.
Na seção Configuração da máquina, selecione uma série de máquinas compatível para VMs spot.
Na seção Modelo de provisionamento, faça o seguinte:
Na lista Modelo de provisionamento de VM, selecione Spot.
Para especificar se as VMs Spot serão interrompidas ou excluídas na preempção, na lista No encerramento da VM, selecione uma das seguintes opções:
Para interromper as VMs spot, selecione Parar.
Para excluir VMs Spot, 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.
Clique em Criar.
gcloud
Para criar um modelo de instância configurado para criar
VMs Spot, use o
comando gcloud compute instance-templates create.
O 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=TERMINATION_ACTION \
--machine-type=MACHINE_TYPE \
--provisioning-model=SPOT
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. Isso especifica 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. Com base no tipo de máquina que você quer que as VMs Spot usem, especifique uma região compatível.TERMINATION_ACTION: se o Compute Engine interrompe ou exclui as VMs spot na preempção. É necessário especificar se as VMs serão interrompidas (STOP) ou excluídas (DELETE).MACHINE_TYPE: um tipo de máquina compatível para VMs Spot. 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.
REST
Para criar um modelo de instância configurado para criar
VMs Spot, faça uma das seguintes solicitações POST:
Para criar um modelo de instância regional: método
regionInstanceTemplates.insertPara criar um modelo de instância global: método
instanceTemplates.insert
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"
}
],
"scheduling": {
"instanceTerminationAction": "TERMINATION_ACTION",
"provisioningModel": "SPOT"
}
}
}
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. Com base no tipo de máquina que você quer que as VMs Spot usem, especifique uma região compatível.INSTANCE_TEMPLATE_NAME: o nome do modelo de instância.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. Ela especifica 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 do Debian 12 será usada. Para saber como usar famílias de imagens, consulte Práticas recomendadas para famílias de imagens.
MACHINE_TYPE: um tipo de máquina compatível para VMs Spot. 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.TERMINATION_ACTION: se o Compute Engine interrompe ou exclui as VMs spot na preempção. É necessário especificar se as VMs serão interrompidas (STOP) ou excluídas (DELETE).
Depois de criar o modelo de instância, você pode conferir os detalhes dele para revisar as propriedades.
Criar um MIG regional ou zonal
Para criar um MIG regional ou zonal, selecione uma das seguintes opções:
Console
No console, do Google Cloud , 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.
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, insira o número de VMs Spot a serem criadas no MIG. Se a carga de trabalho exigir VMs com nomes específicos, insira
0para pular a criação de VMs nesta etapa. Depois de criar o MIG, adicione VMs com nomes específicos a ele.Na seção Local, especifique se você quer criar um MIG zonal ou regional da seguinte maneira:
Para criar um MIG zonal, selecione Zona única. Ou, para criar um MIG regional, selecione Várias zonas.
Selecione a Região e as Zonas do MIG.
Clique em Criar.
gcloud
Para criar um MIG, use o
comando gcloud compute instance-groups managed create.
Com base no tipo de MIG que você quer criar, inclua as seguintes flags no comando:
Para criar um MIG zonal, inclua a flag
--zone:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --size=SIZE \ --template=INSTANCE_TEMPLATE_URL \ --zone=ZONEPara criar um MIG regional, inclua a flag
--region:gcloud compute instance-groups managed create INSTANCE_GROUP_NAME \ --size=SIZE \ --template=INSTANCE_TEMPLATE_URL \ --region=REGION
Substitua:
INSTANCE_GROUP_NAME: o nome do MIG;INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você criou na seção anterior. 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_IDPara um modelo de instância global:
INSTANCE_TEMPLATE_ID
SIZE: o número de VMs spot a serem criadas no MIG. Se sua carga de trabalho exigir nomes de VM específicos, especifique0para pular a criação de VMs nesta etapa. Depois de criar o MIG, adicione VMs com nomes específicos a ele.ZONE: a zona em que o MIG zonal será criado. Se você usar um modelo de instância regional para criar o MIG, especifique uma zona na mesma região do modelo.REGION: a região em que o MIG regional será criado. Se você usar um modelo de instância regional para criar o MIG, especifique a mesma região do modelo.
REST
Para criar um MIG, faça uma solicitação POST a um dos seguintes métodos:
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", "versions": [ { "instanceTemplate": "INSTANCE_TEMPLATE_URL" } ], "targetSize": SIZE }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", "instanceTemplate": "INSTANCE_TEMPLATE_URL", "targetSize": SIZE }
Substitua:
PROJECT_ID: o ID do projeto em que o MIG regional ou zonal será criado.ZONE: a zona em que o MIG zonal será criado. Se você usar um modelo de instância regional para criar o MIG, especifique uma zona na mesma região do modelo.REGION: a região em que o MIG regional será criado. Se você usar um modelo de instância regional para criar o MIG, especifique a mesma região do modelo.INSTANCE_GROUP_NAME: o nome do MIG;INSTANCE_TEMPLATE_URL: o URL do modelo de instância que você criou na seção anterior. 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_IDPara um modelo de instância global:
INSTANCE_TEMPLATE_ID
SIZE: o número de VMs spot a serem criadas no MIG. Se sua carga de trabalho exigir nomes de VM específicos, especifique0para pular a criação de VMs nesta etapa. Depois de criar o MIG, adicione VMs com nomes específicos a ele.
Depois de criar o MIG, é possível conferir os detalhes dele para analisar as propriedades.
A seguir
Saiba mais sobre as práticas recomendadas para VMs spot.
Saiba mais sobre como reparar VMs para alta disponibilidade em MIGs.
Saiba mais sobre escalonamento automático de VMs em MIGs.
Saiba mais sobre MIGs com estado.