Se você usa grupos de instâncias gerenciadas (MIGs) , leia este documento para saber como criar, configurar e excluir o escalonador automático do seu MIG.
Antes de começar
- Se ainda não o fez, configure a autenticação. Autenticação é o processo pelo qual sua identidade é verificada para acesso a Google Cloud serviços e APIs. Para executar códigos ou amostras em um ambiente de desenvolvimento local, você pode se autenticar 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
-
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.
- Set a default region and zone.
- Dimensionamento baseado na utilização da CPU
- Dimensionamento baseado na capacidade de serviço de balanceamento de carga
- Escalonamento baseado em métricas do Cloud Monitoring
- Dimensionamento com base em cronogramas
- No console do Google Cloud, acesse a página Grupos de instâncias .
- Clique no nome de um MIG na lista para abrir a página de visão geral desse grupo.
- Clique em Detalhes para visualizar os detalhes do grupo, incluindo suas configurações de escalonamento automático.
- No console do Google Cloud, acesse a página Grupos de instâncias .
- Clique no nome de um MIG na lista para abrir a página de visão geral desse grupo.
- Clique em Editar para visualizar e atualizar a configuração atual do grupo, incluindo suas configurações de escalonamento automático.
- Clique em Salvar quando terminar.
- Seu aplicativo demora muito para inicializar — por exemplo, se você configurar um período de inicialização de mais de 2 minutos.
- Sua carga de trabalho varia de forma previsível com ciclos diários ou semanais.
- Investigue instâncias de VM sem interferência de expansão.
- Reconfigure múltiplas propriedades do seu MIG sem que ações de escalonamento sejam acionadas enquanto seu grupo estiver apenas parcialmente reconfigurado.
- Mantenha a capacidade do MIG para uma reversão rápida enquanto redireciona uma carga de trabalho para um novo MIG.
- Ative o escalonamento automático preditivo posteriormente. O escalonamento automático preditivo requer uma política de escalonamento automático para começar a coletar o histórico de carga no qual basear as previsões. O autoescalador detecta esse histórico mesmo quando seu modo está definido como
OFF
. - Desligado : desativa temporariamente o escalonamento automático. Use este modo para evitar alterações automáticas no tamanho do MIG. A configuração do escalonamento automático permanece intacta para que você possa reativar o escalonamento automático mais tarde.
- Apenas expansão horizontal : restrinja o escalonamento automático apenas à adição de novas instâncias de VM. Use esse modo para proteger o grupo contra redução e permitir que o grupo provisione VMs extras quando a carga aumentar.
- Ativado : ativa todas as operações de escalonamento automático de acordo com sua política.
- No console do Google Cloud, acesse a página Grupos de instâncias .
- Clique no nome de um MIG na lista para abrir a página de visão geral desse grupo.
- Clique em Editar para visualizar a configuração atual do grupo, incluindo suas configurações de escalonamento automático.
- Em Autoscaling , defina o modo Autoscaling para desabilitar ou restringir o autoscaling para o grupo ou para reativar o autoscaler.
- Clique em Salvar quando terminar.
-
MODE
:-
off
para desativar o escalonador automático, mas manter sua configuração -
only-scale-out
para restringir o escalonador automático à adição apenas de instâncias de VM -
on
reativar todas as atividades do escalonador automático de acordo com sua política
-
-
MODE
:-
OFF
para desativar o escalonador automático, mas manter sua configuração -
ONLY_SCALE_OUT
para restringir o escalonador automático à adição apenas de instâncias -
ON
para reativar todas as atividades do escalonador automático de acordo com sua política
-
- O autoescalador não diminui o valor
targetSize
do MIG, independentemente de diminuições na carga ou alterações na configuração do autoescalador. - Se você alterar manualmente o tamanho de destino de um MIG zonal, o escalonador automático substituirá o tamanho fornecido manualmente se ele for menor que o tamanho recomendado pelo escalonador automático.
- Você não pode alterar manualmente o tamanho alvo de um MIG regional.
- Se você definir o campo
autoscalingPolicy.maxNumReplicas
como um valor inferior ao valortargetSize
atual do grupo enquanto o modo do escalonador automático estiver definido comoONLY_SCALE_OUT
, o escalonador automático não reduzirá o número de instâncias no grupo. Como de costume, o escalonador automático recalcula continuamente o tamanho recomendado do grupo e pode diminuir o tamanho recomendado do grupo para cumprir o novo máximo, mas o grupo não é dimensionado. - O campo
autoscalers.status
informa um aviso: "O escalonamento automático opera em modo restrito: ONLY_SCALE_OUT." - O autoescalador não altera o valor
targetSize
do MIG em resposta a alterações na carga ou na configuração do autoescalador. Como de costume, o escalonador automático recalcula continuamente o tamanho recomendado do grupo e pode diminuir o tamanho recomendado do grupo para cumprir o novo máximo, mas o grupo não é dimensionado. - Você pode alterar manualmente o tamanho alvo de um MIG zonal ou regional. Os valores
minNumReplicas
emaxNumReplicas
da política de escalonamento automático não afetam o tamanho definido. - Se você desativar o escalonamento automático para um MIG regional no qual a redistribuição proativa de instâncias está habilitada e se o MIG tiver uma distribuição desigual de instâncias entre zonas, o grupo excluirá ou criará proativamente instâncias em suas zonas para restabelecer uma distribuição uniforme.
- O campo
autoscalers.status
informa um aviso: "O escalonamento automático opera em modo restrito: DESLIGADO." No console do Google Cloud, acesse a página Grupos de instâncias .
Clique no nome de um MIG com escala automática na lista para abrir a página de visão geral desse grupo.
Clique em Editar para visualizar a configuração atual do grupo, incluindo suas configurações de escalonamento automático.
Em Dimensionamento automático , clique em Controles de redução e selecione Habilitar controles de redução .
Em Não reduzir mais que , especifique o número máximo ou a porcentagem de instâncias que podem ser removidas do grupo por vez.
Em Ao longo de , especifique com que frequência as instâncias podem ser removidas do grupo.
Clique em Salvar .
-
INSTANCE_GROUP_NAME
: o nome do MIG a ser atualizado. -
MAX_SCALE_IN_REPLICAS
: o número máximo de VMs que podem ser deduzidas do tamanho do pico, obtido na janela de tempo final especificada. O número especificado de instâncias de VM pode ser dimensionado de uma só vez, portanto, seu serviço deve ser capaz de perder tantas VMs de uma só vez. Você pode especificar um número de VMs ou uma porcentagem. Use o sinal%
para porcentagens; por exemplo:50%
. -
TIME_WINDOW
: janela de tempo final para obter o tamanho do pico. O escalonamento automático não será dimensionado mais do que o número máximo permitido de réplicas do tamanho do pico obtido durante esse período de tempo final. Especifique esse valor em segundos dentro de um intervalo [60, 3600]. - Pegue o tamanho do pico dos últimos 30 minutos (por exemplo, 100 VMs)
- Pegue
max-scaled-in-replicas
(por exemplo, 10 VMs) - Defina o limite inferior do tamanho recomendado como: tamanho de pico menos
max-scaled-in-replicas
(100 - 10 = 90 VMs) - Dimensionamento baseado na CPU ou na capacidade de serviço de balanceamento de carga
- Escalonamento baseado na métrica do Cloud Monitoring .
-
AUTOSCALER_NAME
: o nome do escalonador automático a ser criado. Você pode nomear seu autoescalador com o nome do MIG que o utilizará ou nomeá-lo de outra forma. -
INSTANCE_GROUP_NAME
: o nome do MIG ao qual adicionar o autoescalador. Para um MIG regional, substituazones/ ZONE
porregions/ REGION
. -
MAX_SCALE_IN_REPLICAS
: o número máximo de VMs que podem ser deduzidas do tamanho máximo de destino recomendado, obtido na janela de tempo final especificada. O número especificado de instâncias de VM pode ser dimensionado de uma só vez, portanto, seu serviço deve ser capaz de perder tantas VMs de uma só vez. Você pode especificar um número de VMs ou uma porcentagem. UsemaxScaledInReplicas.percentage
para especificar um valor percentual. -
TIME_WINDOW
: a janela de tempo final para obter o tamanho de pico recomendado. O escalonamento automático não será dimensionado mais do que o número máximo permitido de réplicas a partir do tamanho máximo recomendado obtido durante esse período de tempo final. Especifique esse valor em segundos dentro de um intervalo [60, 3600]; por exemplo:1800
. - Pegue o tamanho do pico dos últimos 30 minutos (por exemplo, 100 VMs)
- Pegue
max-scaled-in-replicas
(por exemplo, 10 VMs) - Defina o limite inferior do tamanho recomendado como: tamanho de pico menos
max-scaled-in-replicas
(100 - 10 = 90 VMs) No console do Google Cloud, acesse a página Grupos de instâncias .
Clique no nome de um MIG com escala automática na lista para abrir a página de visão geral desse grupo.
Clique em Editar para visualizar a configuração atual do grupo, incluindo suas configurações de escalonamento automático.
Em Autoscaling , clique em Controles de redução e desmarque a caixa de seleção Habilitar controles de redução .
Clique em Salvar .
-
AUTOSCALER_NAME
: o nome do escalonador automático a ser atualizado. Para obter uma lista de escalonadores automáticos existentes e seus MIGs de destino, use o métodoautoscalers.aggregatedList
. No console do Google Cloud, acesse a página Grupos de instâncias .
Clique no nome de um MIG na lista para abrir a página de visão geral desse grupo.
Clique em Editar para visualizar a configuração atual do grupo, incluindo suas configurações de escalonamento automático.
Em Autoscaling , na lista suspensa Modo de escalonamento automático, selecione Excluir configuração de escalonamento automático para interromper o escalonador automático e excluir sua configuração.
Clique em Salvar quando terminar.
- Saiba como os escalonadores automáticos tomam decisões .
- Aprenda como usar vários sinais de escalonamento automático para dimensionar seu grupo.
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.
Criando um escalonador automático
A criação de um escalonador automático é um pouco diferente dependendo da política de escalonamento automático que você deseja usar. Para obter instruções sobre como criar um escalonador automático, consulte:
Obtendo informações sobre um escalonador automático
Para obter mais informações sobre um escalonador automático específico, use o console, o subcomando
gcloud compute instance-groups managed describe
ou o métodoget
para um recurso REST do escalonador automático zonal ou regional .Console
gcloud
Use o comando
instance-groups managed describe
:gcloud compute instance-groups managed describe INSTANCE_GROUP_NAME
Se um escalonador automático estiver anexado ao grupo, o comando retornará detalhes sobre o escalonador automático:
... autoscaler: autoscalingPolicy: coolDownPeriodSec: 60 cpuUtilization: utilizationTarget: 0.6 maxNumReplicas: 20 minNumReplicas: 10 mode: ON scaleInControl: timeWindowSec: 300 maxScaledInReplicas: fixed: 3 calculated: 3 ...
DESCANSAR
Use o método
instanceGroupManagers.get
. Para um MIG regional, substituazones/ ZONE
porregions/ REGION
.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/instanceGroupManagers/INSTANCE_GROUP_NAME
Se um escalonador automático estiver anexado ao grupo, a solicitação retornará um link para o recurso do escalonador automático.
200 OK { ... "status": { ... "autoscaler": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-east1-c/autoscalers/example-group" }, }
Para recuperar detalhes sobre o recurso do autoescalador, use o método
autoscalers.get
para um MIG zonal ou o métodoregionAutoscalers.get
para um MIG regional.GET https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/example-autoscaler
200 OK { "kind": "compute#autoscaler", "id": "8744945839459481093", "creationTimestamp": "2018-09-28T13:02:50.553-07:00", "name": "example-group", "target": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-east1-c/instanceGroupManagers/example-group", "autoscalingPolicy": { "minNumReplicas": 10, "maxNumReplicas": 20, "mode": "ON", "scaleInControl": { "timeWindowSec": 60, "maxScaledInReplicas": { "calculated": 3, "percent": 15 } }, "coolDownPeriodSec": 60, "cpuUtilization": { "utilizationTarget": 0.6 } }, "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-east1-c", "selfLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-east1-c/autoscalers/example-group", "status": "ACTIVE" }
Atualizando um escalonador automático
Quando você atualiza um escalonador automático, pode levar algum tempo para que as alterações sejam propagadas e pode levar alguns minutos até que as novas configurações do escalonador automático sejam refletidas.
Console
gcloud
Use o comando
update-autoscaling
.gcloud compute instance-groups managed update-autoscaling INSTANCE_GROUP_NAME \ --max-num-replicas MAX_NUM ...
Para obter instruções sobre como criar um escalonador automático, consulte Criando um escalonador automático .
DESCANSAR
Para atualizar um recurso do autoescalador, use o método
autoscalers.patch
para um MIG zonal ou o métodoregionAutoscalers.patch
para um MIG regional. Forneça um corpo de solicitação que contenha a nova configuração.PATCH https://compute.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/autoscalers/example-autoscaler { "autoscalingPolicy": { "maxNumReplicas": 20 } }
200 OK { "kind": "compute#operation", "id": "4244494732310423322", "name": "operation-1556912627871-58800f8216ed7-74ab1720-7d360603", "zone": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f", "operationType": "compute.autoscalers.patch", "targetLink": "https://www.googleapis.com/compute/v1/projects/my-project/zones/us-central1-f/autoscalers/example-autoscaler", "targetId": "340775527929467142", "status": "RUNNING", ... }
Quando você executa qualquer solicitação que modifique dados, um recurso zoneOperations ou regionOperations é retornado e você pode consultar a operação para verificar o status da sua alteração.
Usando escalonamento automático preditivo
O escalonamento automático preditivo usa dados históricos para expandir seu grupo antes da carga prevista. Funciona melhor se sua carga de trabalho atender aos seguintes critérios:
Para obter mais informações, consulte Dimensionamento baseado em previsões .
Desativar ou restringir um escalonador automático
Desative um escalonador automático para impedir temporariamente que ele dimensione seu MIG ou restrinja seu escalonador automático para que ele possa dimensionar apenas seu MIG. Este recurso é útil quando você deseja:
Se e quando você reativar o escalonador automático, ele retornará automaticamente à operação normal.
Use as instruções fornecidas nesta seção para definir o modo do autoescalador. Os seguintes modos estão disponíveis:
Console
gcloud
Para desabilitar, restringir ou reativar um escalonador automático, use o comando
update-autoscaling
com o sinalizador--mode
.gcloud compute instance-groups managed update-autoscaling INSTANCE_GROUP_NAME \ --mode MODE
Substitua o seguinte:
DESCANSAR
Para atualizar o modo de um recurso do autoescalador, use o método
autoscalers.patch
para um MIG zonal ou o métodoregionAutoscalers.patch
para um MIG regional. Forneça um corpo de solicitação que inclua a propriedadeautoscalingPolicy.mode
.PATCH https://compute.googleapis.com/compute/v1/projects/my-project/regions/us-central1-f/autoscalers?autoscaler=my-autoscaler { "autoscalingPolicy": { "mode":"MODE" } }
Substitua o seguinte:
Quando você define o modo de escalonamento automático como
ONLY_SCALE_OUT
, o escalonador automático se comporta da seguinte maneira:Quando você define o modo do autoescalador como
OFF
, o autoescalador se comporta da seguinte maneira:Controlando a taxa de redução de um escalonador automático
Se as suas cargas de trabalho demorarem muitos minutos a inicializar, configure controlos de redução vertical para reduzir o risco de latência de resposta e interrupções devido a eventos abruptos de redução vertical. Especificamente, se você espera rotineiramente um pico de carga logo após um declínio na carga, poderá limitar a taxa de redução. Limitar a taxa de redução evita que o escalonador automático reduza o tamanho de um MIG em mais instâncias de VM do que sua carga de trabalho pode tolerar perder.
Configurando controles de redução vertical
A configuração de controles de redução horizontal é opcional. Por padrão, os controles de redução não estão configurados. Quando não configurado, o escalonador automático ainda depende de seu mecanismo de estabilização padrão. Ou seja, mantém o tamanho recomendado em um nível necessário para atender o pico de carga, observado durante o período de estabilização.
Console
Para configurar controles de redução vertical para um MIG com escalonamento automático:
gcloud
Você pode configurar controles de redução ao criar um autoescalador ou ao atualizar um autoescalador.
Configurando controles de redução ao criar um escalonador automático
Defina controles de redução ao criar um escalonador automático para um MIG usando a sinalização
--scale-in-control
com o comandogcloud compute instance-groups managed set-autoscaling
. Por exemplo, use o seguinte comando para configurar o escalonamento automático para umexample-group
:gcloud compute instance-groups managed set-autoscaling INSTANCE_GROUP_NAME \ --target-cpu-utilization 0.6 \ --max-num-replicas 50 \ --scale-in-control max-scaled-in-replicas=MAX_SCALE_IN_REPLICAS,time-window=TIME_WINDOW
Configurando controles de redução ao atualizar um escalonador automático
Atualize os controles de redução vertical no escalonador automático existente de um MIG usando o sinalizador
--scale-in-control
com o comandogcloud compute instance-groups managed update-autoscaling
. Por exemplo, use o seguinte comando para definir controles de redução em uma configuração de escalonamento automático existente paraexample-group
:gcloud compute instance-groups managed update-autoscaling INSTANCE_GROUP_NAME \ --scale-in-control max-scaled-in-replicas=MAX_SCALE_IN_REPLICAS,time-window=TIME_WINDOW
Substitua o seguinte:
Por exemplo, digamos que você definiu a janela de tempo para 1.800 segundos (30 minutos). Ao calcular o tamanho recomendado atual para o MIG, o autoescalador usa a seguinte lógica:
DESCANSAR
Configure controles de redução vertical definindo os campos
maxScaledInReplicas
etimeWindowSec
na estruturaautoscalingPolicy.scaleInControl
em um recurso de escalonador automático zonal ou regional . Não há valores padrão para esses campos; você deve fornecer valores para ambos os campos.Você pode configurar controles de redução ao criar um autoescalador ou ao atualizar um autoescalador.
Configurando controles de redução ao criar um escalonador automático
Para um MIG zonal, use o método
autoscalers.insert
. Para um MIG regional, use o métodoregionAutoscalers.insert
.POST https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/autoscalers { "name": "AUTOSCALER_NAME", "target": "https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/instanceGroupManagers/INSTANCE_GROUP_NAME", "autoscalingPolicy": { "minNumReplicas": 1, "maxNumReplicas": 5, "coolDownPeriodSec": 60, "cpuUtilization": { "utilizationTarget": 0.8 }, "scaleInControl": { "maxScaledInReplicas": { "fixed": MAX_SCALE_IN_REPLICAS }, "timeWindowSec": TIME_WINDOW } } }
Para obter mais informações sobre como criar um escalonador automático, consulte os seguintes artigos:
Configurando controles de redução ao atualizar um escalonador automático
Para um MIG zonal, use o método
autoscalers.patch
. Para um MIG regional, use o métodoregionAutoscalers.patch
.PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/regions/REGION/autoscalers?autoscaler=AUTOSCALER_NAME { "autoscalingPolicy": { "minNumReplicas": 1, "maxNumReplicas": 5, "coolDownPeriodSec": 60, "cpuUtilization": { "utilizationTarget": 0.8 }, "scaleInControl": { "maxScaledInReplicas": { "fixed": MAX_SCALE_IN_REPLICAS }, "timeWindowSec": TIME_WINDOW } } }
Substitua o seguinte:
Por exemplo, digamos que você definiu a janela de tempo para 1.800 segundos (30 minutos). Ao calcular o tamanho recomendado atual para o MIG, o autoescalador usa a seguinte lógica:
Para obter mais informações sobre como funcionam os controles de redução, consulte Noções básicas sobre decisões do escalonador automático .
Obtendo a configuração atual dos controles de redução vertical
Para obter a configuração atual dos controles de redução vertical, consulte Obtendo informações sobre um escalonador automático .
Removendo controles de redução vertical
Você pode remover os controles de redução vertical para eliminar restrições sobre o tempo e a magnitude das operações de redução vertical usando a CLI do Google Cloud ou a API Compute Engine.
Sem controles de redução, o escalonador automático ainda depende de seu mecanismo de estabilização padrão. Especificamente, mantém um tamanho recomendado em um nível necessário para atender aos picos de carga, observados durante o período de estabilização.
Console
Para remover controles de redução de escala para um MIG com escalonamento automático:
gcloud
Remova os controles de redução vertical usando a sinalização
--clear-scale-in-control
com o comandogcloud compute instance-groups managed update-autoscaling
. Por exemplo, use o seguinte comando para remover controles de redução da configuração de escalonamento automático paraexample-group
:gcloud compute instance-groups managed update-autoscaling example-group \ --clear-scale-in-control
DESCANSAR
Para remover controles de redução, use o método
autoscalers.patch
para um MIG zonal ou use o métodoregionAutoscalers.patch
para um MIG regional e forneça configuração vazia para controles de redução.PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME { "autoscalingPolicy": { "scaleInControl": null } }
Substitua o seguinte:
Excluindo um escalonador automático
Você pode excluir permanentemente o recurso do escalonador automático e seu histórico. Se você quiser interromper temporariamente o escalonamento automático e manter o recurso do escalonador automático e sua configuração e histórico, desative o escalonador automático.
Console
gcloud
Use o comando
stop-autoscaling
para interromper um escalonador automático e excluir sua configuração.gcloud compute instance-groups managed stop-autoscaling INSTANCE_GROUP_NAME
Interromper um autoescalador o exclui do MIG. Se desejar reiniciar o escalonador automático, você deverá recriá-lo usando o comando
set-autoscaling
.Se você excluir um MIG usando a CLI gcloud, todos os escalonadores automáticos anexados ao MIG também serão excluídos.
DESCANSAR
Para interromper um escalonador automático e excluir sua configuração, use o método
autoscalers.delete
para um MIG zonal ou use o métodoregionAutoscalers.delete
para um MIG regional.DELETE https://compute.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers/AUTOSCALER_NAME
Opinião
Queremos saber mais sobre seus casos de uso, desafios e feedback sobre escalonamento automático. Compartilhe seus comentários com nossa equipe em mig-discuss@google.com .
O que vem a seguir
Exceto em caso de indicação contrária, o conteúdo desta página é licenciado de acordo com a Licença de atribuição 4.0 do Creative Commons, e as amostras de código são licenciadas de acordo com a Licença Apache 2.0. Para mais detalhes, consulte as políticas do site do Google Developers. Java é uma marca registrada da Oracle e/ou afiliadas.
Última atualização 2025-04-21 UTC.
-