Neste documento, explicamos como o pool em espera de instâncias de máquina virtual (VM) suspensas e interrompidas funciona e como é possível usar o pool em espera para acelerar o escalonamento horizontal de um grupo gerenciado de instâncias (MIG).
Antes de começar
- Consulte a página introdutória sobre VMs suspensas e interrompidas em um MIG.
-
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 initAo usar 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.
-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Se você estiver usando um shell local, crie credenciais de autenticação local para sua conta de usuário:
gcloud auth application-default login
Não é necessário fazer isso se você estiver usando o Cloud Shell.
Se um erro de autenticação for retornado e você estiver usando um provedor de identidade (IdP) externo, confirme se você fez login na CLI gcloud com sua identidade federada.
Terraform
Para usar os exemplos do Terraform nesta página em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud e configure o Application Default Credentials com suas credenciais de usuário.
Para mais informações, consulte Configurar a autenticação para um ambiente de desenvolvimento local.
REST
Para usar as amostras da API REST nesta página em um ambiente de desenvolvimento local, use as credenciais fornecidas para CLI gcloud.
Instale a CLI do Google Cloud.
Ao usar 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 .
Usar a API MIG para escalonamento automático
Recomendamos o uso do escalonador automático do Compute Engine para escalonamento automático do MIG. No entanto, se por algum motivo você preferir usar um escalonador automático diferente, use os endpoints da API MIG para lidar com VMs suspensas e interrompidas.
Escolher entre pools suspensos e interrompidos
A escolha entre pools suspensos e interrompidos depende do seu caso de uso específico. Para melhores desempenhos, teste diferentes tipos de pools em espera nos cenários de escalonamento horizontal para determinar qual atende melhor às suas necessidades. Cargas de trabalho diferentes podem mostrar um tempo menor para exibição com opções diferentes. Em alguns casos, a operação de copiar o estado da memória do armazenamento para a VM pode levar mais tempo do que reiniciar a VM ou criar uma nova VM do zero.
Para encontrar a melhor abordagem, comece com estas diretrizes:
- Use VMs suspensas se elas exigirem uma inicialização demorada de memória, porque as VMs suspensas preservam o estado da memória. Verifique se a inscrição pode ser suspensa e retomada. Manter o estado da memória exige mais armazenamento e pode gerar custos extras.
- Use VMs interrompidas se a inicialização da VM se concentrar principalmente na inicialização de dados armazenados nos discos permanentes.
Editar a política de espera em um MIG
Nesta seção, descrevemos como definir o modo de pool em espera para escalonar horizontalmente o pool e o atraso inicial.
Console
No console, do Google Cloud , acesse a página Grupos de instâncias.
Clique no nome do grupo de instâncias que você quer editar.
Clique em Editar para modificar o grupo gerenciado de instâncias.
Clique em Opções avançadas para abrir a seção.
Na seção Pool em espera, selecione Escalonar horizontalmente.
No campo Atraso inicial, insira o número de segundos que o MIG precisa aguardar antes de suspender ou interromper uma VM. O atraso inicial dá ao script de inicialização o tempo para preparar a VM para escalonamento horizontal rápido.
Clique em Salvar.
gcloud
Use o
comando instance-groups managed update
e especifique o modo de operação e o atraso inicial.
gcloud compute instance-groups managed update MIG_NAME \ --standby-policy-mode=scale-out-pool \ --standby-policy-initial-delay=DELAY \ [--region=REGION | --zone=ZONE]
Substitua:
MIG_NAME: o nome do MIG;DELAY: o número de segundos que o MIG precisa aguardar antes de suspender ou interromper uma VM. O atraso inicial dá ao script de inicialização o tempo para preparar a VM para escalonamento horizontal rápido.REGION: para um MIG regional, a região em que o MIG está localizado.ZONE: para um MIG zonal, a zona em que o MIG está localizado.
Terraform
O exemplo a seguir cria um MIG zonal com uma política de espera. Use o
bloco standby_policy para definir um atraso inicial e o modo como
SCALE_OUT_POOL.
O exemplo usa o recurso google_compute_instance_group_manager.
Para um MIG regional, use o método google_compute_region_instance_group_manager.
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
REST
Use o
método instanceGroupManager.patch
e especifique o modo de operação e o atraso inicial no corpo da solicitação.
Para MIGs regionais, use o
método regionInstanceGroupManager.patch.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
// ...
"standbyPolicy": {
"mode": "SCALE_OUT_POOL",
"initialDelaySec": DELAY
}
// ...
}
Substitua:
PROJECT_ID: ID do projeto.ZONE: para um MIG zonal, a zona em que o MIG está localizado.zones/ZONEporregions/REGIONe especifique a região do MIG se ele for regional;
MIG_NAME: o nome do MIG;DELAY: o número de segundos que o MIG precisa aguardar antes de suspender ou interromper uma VM. O atraso inicial dá ao script de inicialização o tempo para preparar a VM para escalonamento horizontal rápido.
Redimensionar o pool em espera em um MIG
Nesta seção, descrevemos como redimensionar os pools em espera de VMs suspensas e interrompidas em um MIG.
Console
No console, do Google Cloud , acesse a página Grupos de instâncias.
Clique no nome do grupo de instâncias que você quer editar.
Clique em Editar para modificar o grupo gerenciado de instâncias.
Clique em Opções avançadas para abrir a seção.
Na seção Pool em espera, insira os novos tamanhos nos campos VMs suspensas e VMs interrompidas.
Clique em Salvar.
gcloud
Use o
comando instance-groups managed update
com as sinalizações --suspended-size e --stopped-size.
gcloud compute instance-groups managed update MIG_NAME \ --suspended-size=SUSPENDED_SIZE \ --stopped-size=STOPPED_SIZE \ [--region=REGION | --zone=ZONE]
Substitua:
MIG_NAME: o nome do MIG em que uma instância será suspensa.SUSPENDED_SIZE: o número de VMs suspensas que o MIG precisa manter a qualquer momento.STOPPED_SIZE: o número de VMs interrompidas que o MIG precisa manter a qualquer momento.REGION: para um MIG regional, a região em que o MIG está localizado.ZONE: para um MIG zonal, a zona em que o MIG está localizado.
Terraform
O exemplo a seguir cria um MIG zonal com tamanhos de destino para VMs suspensas e
interrompidas. Para definir os tamanhos desejados, use os argumentos target_suspended_size e target_stopped_size.
O exemplo usa o recurso google_compute_instance_group_manager.
Para um MIG regional, use o método google_compute_region_instance_group_manager.
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
REST
Use o
método instanceGroupManager.patch
e especifique os tamanhos dos pools de VMs suspensas e interrompidas no corpo
da solicitação.
Para MIGs regionais, use o
método regionInstanceGroupManager.patch.
PATCH https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/MIG_NAME
{
// ...
"targetSuspendedSize": SUSPENDED_SIZE,
"targetStoppedSize": STOPPED_SIZE
// ...
}
Substitua:
PROJECT_ID: ID do projeto.ZONE: para um MIG zonal, a zona em que o MIG está localizado.zones/ZONEporregions/REGIONe especifique a região do MIG se ele for regional;
MIG_NAME: o nome do MIG em que uma instância será interrompida.SUSPENDED_SIZE: o número de VMs suspensas que o MIG precisa manter a qualquer momento.STOPPED_SIZE: o número de VMs interrompidas que o MIG precisa manter a qualquer momento.
A seguir
- Saiba como suspender ou interromper manualmente as VMs em um MIG.
- Saiba mais sobre atualizações para VMs suspensas e interrompidas em um MIG.