Se você usa grupos de instâncias gerenciadas (MIGs, na sigla em inglês), leia este documento para saber como criar, configurar e excluir o escalonador automático do MIG.
Antes de começar
-
Configure a autenticação, caso ainda não tenha feito isso.
A autenticação é
o processo de verificação da 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 da seguinte maneira.
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
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
- Escalonamento baseado no uso da CPU
- Como fazer escalonamento com base na capacidade de serviço do balanceamento de carga
- Escalonamento com base em métricas do Cloud Monitoring
- Escalonamento com base em programações
- 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 conferir os detalhes do grupo, incluindo as 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 conferir e atualizar a configuração atual do grupo, incluindo as configurações de escalonamento automático dele.
- Clique em Salvar quando terminar.
- O aplicativo leva muito tempo para ser inicializado, por exemplo, ao configurar um período de inicialização de mais de dois minutos.
- Sua carga de trabalho varia de maneira previsível com ciclos diários ou semanais.
- investigar instâncias de VM sem interferência do escalonamento;
- reconfigurar várias propriedades do MIG sem que as ações de escalonamento sejam acionadas enquanto seu grupo estiver apenas parcialmente reconfigurado;
- manter a capacidade do MIG para uma reversão rápida ao mesmo tempo que 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 escalonador automático detecta
esse histórico mesmo quando o modo está definido como
OFF
. - Desativado: desativa temporariamente o escalonamento automático Use esse modo para evitar alterações automáticas do tamanho do MIG. A configuração do escalonamento automático permanece intacta para que você possa reativá-lo mais tarde;
- Somente escalonamento horizontal: apenas restrinja o escalonamento automático para adicionar novas instâncias de VM. Use esse modo para evitar que o grupo seja reduzido 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 a 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 conferir a configuração atual do grupo, incluindo as configurações de escalonamento automático.
- Em Escalonamento automático, defina o Modo de escalonamento automático para desativar ou restringir a função para o grupo ou para ativar o escalonador automático novamente.
- Clique em Salvar quando terminar.
MODE
:off
para desativar o escalonador automático, mas manter a configuração;only-scale-out
para restringir o escalonador automático a apenas adicionar instâncias de VM;on
para reativar todas as atividades do escalonador automático de acordo com a política.
MODE
:OFF
para desativar o escalonador automático, mas manter a configuração;ONLY_SCALE_OUT
para restringir o escalonador automático a apenas adicionar instâncias;ON
para reativar todas as atividades do escalonador automático de acordo com a política.
- Independentemente da diminuição da carga ou das alterações feitas na
configuração do escalonador automático, ele não diminui o valor
targetSize
do MIG. - Caso você altere manualmente o tamanho de destino de um MIG zonal para um valor menor que o recomendado, o escalonador automático substitui esse valor.
- Não é possível alterar manualmente o tamanho de destino de um MIG regional.
- Enquanto o modo do escalonador automático estiver
definido como
ONLY_SCALE_OUT
, o escalonador automático não reduzirá o número de instâncias no grupo se você definir o campoautoscalingPolicy.maxNumReplicas
com um valor inferior ao valor atual dotargetSize
do grupo. Como de costume, o escalonador automático recalcula continuamente o tamanho recomendado do grupo, que pode ser diminuído para atender ao novo máximo, mas sem reduzir o escalonamento horizontal do grupo. - O campo
autoscalers.status
informa um aviso: "O escalonamento automático opera em um modo restrito: ONLY_SCALE_OUT." - O escalonador automático não altera o valor
targetSize
do MIG em resposta a alterações na carga ou na própria configuração. Como de costume, o escalonador automático recalcula continuamente o tamanho recomendado do grupo, que pode ser diminuído para atender ao novo máximo, mas sem reduzir o escalonamento horizontal do grupo. - É possível alterar manualmente o tamanho de destino 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 de um MIG regional em que a redistribuição proativa de instâncias estiver ativada e o MIG tiver uma distribuição desigual de instâncias entre as zonas, o grupo proativamente exclui ou cria instâncias nas zonas dele para restabelecer uma distribuição uniforme.
- O campo
autoscalers.status
exibe um aviso: "O escalonamento automático opera em modo restrito: DESATIVADO". No Console do Google Cloud, acesse a página Grupos de instâncias.
Clique no nome de um MIG escalonado automaticamente na lista para abrir a página de visão geral desse grupo.
Clique em Editar para conferir a configuração atual do grupo, incluindo as configurações de escalonamento automático.
Em Escalonamento automático, clique em Controles de escalonamento vertical, e selecione Ativar controles de escalonamento vertical.
Em Não reduzir escalonamento horizontal em mais de, especifique o número ou a porcentagem máximo de instâncias que podem ser removidas do grupo por vez.
Em Ao longo de, especifique a frequência com que as instâncias podem ser removidas do grupo.
Clique em Save.
INSTANCE_GROUP_NAME
: o nome do MIG que será atualizado.MAX_SCALE_IN_REPLICAS
: o número máximo de VMs que podem ser deduzidas do tamanho de pico, retirado da janela de tempo final especificada. O número especificado de instâncias de VM pode ser escalonado de uma só vez. Portanto, o serviço será capaz de perder todas essas VMs ao mesmo tempo. É possível especificar um número de VMs ou uma porcentagem. Use o sinal%
para porcentagens. Por exemplo:50%
.TIME_WINDOW
: janela de tempo final em que o tamanho de pico será retirado. O escalonamento automático não fará o escalonamento em mais do que o número máximo permitido de réplicas do tamanho do pico obtido durante essa janela de tempo final. Especifique esse valor em segundos dentro de um intervalo [60, 3.600].- ter o tamanho de pico dos últimos 30 minutos (por exemplo, 100 VMs);
- usar
max-scaled-in-replicas
(por exemplo, 10 VMs); - definir o limite mínimo do tamanho recomendado como: tamanho de pico menos
max-scaled-in-replicas
(100 - 10 = 90 VMs). - Como escalonar com base em CPU ou na capacidade de serviço do balanceamento de carga
- Como escalonar com base nas métricas do Cloud Monitoring.
AUTOSCALER_NAME
: o nome do escalonador automático a ser criado. É possível nomear o escalonador automático de acordo com o MIG que o usará ou nomeá-lo como preferir.INSTANCE_GROUP_NAME
: o nome do MIG em que o escalonador automático será adicionado. 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 de destino recomendado do pico, retirado da janela de tempo final especificada. O número especificado de instâncias de VM pode ser escalonado de uma só vez. Portanto, o serviço pode ser capaz de perder muitas VMs ao mesmo tempo. É possível especificar um número de VMs ou uma porcentagem. UsemaxScaledInReplicas.percentage
especificar um valor percentual.TIME_WINDOW
: janela de tempo final em que o tamanho recomendado de pico será retirado. O escalonamento automático não fará o escalonamento em mais do que o número máximo permitido de réplicas do tamanho do pico obtido durante essa janela de tempo final. Especifique esse valor em segundos dentro de um intervalo [60, 3.600]. Por exemplo:1800
.- ter o tamanho de pico dos últimos 30 minutos (por exemplo, 100 VMs);
- usar
max-scaled-in-replicas
(por exemplo, 10 VMs); - definir o limite mínimo 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 escalonado automaticamente na lista para abrir a página de visão geral desse grupo.
Clique em Editar para conferir a configuração atual do grupo, incluindo as configurações de escalonamento automático.
Em Escalonamento automático, clique em Controles de escalonamento vertical e desmarque a caixa de seleção Ativar controles de redução de escalonamento horizontal.
Clique em Save.
AUTOSCALER_NAME
: o nome do escalonador automático a ser atualizado. Para acessar uma lista de escalonadores atuais e os 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 conferir a configuração atual do grupo, incluindo as configurações de escalonamento automático.
Em Escalonamento automático, na lista suspensa Modo de escalonamento automático, selecione Excluir configuração de escalonamento automático para interromper o escalonador automático e excluir a configuração dele.
Clique em Salvar quando terminar.
- Saiba como os escalonadores automáticos tomam decisões.
- Saiba como usar vários sinais de escalonamento automático para escalonar 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.
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
Para mais informações, consulte Autenticar para usar REST na documentação de autenticação do Google Cloud.
Como criar um escalonador automático
Dependendo da política de escalonamento automático utilizada, a criação de um escalonador automático é um pouco diferente. Para instruções sobre como criar um autoescalador, consulte:
Como receber informações sobre um escalonador automático
Para 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 ele:
... autoscaler: autoscalingPolicy: coolDownPeriodSec: 60 cpuUtilization: utilizationTarget: 0.6 maxNumReplicas: 20 minNumReplicas: 10 mode: ON scaleInControl: timeWindowSec: 300 maxScaledInReplicas: fixed: 3 calculated: 3 ...
REST
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 dele.
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 escalonador automático, 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" }
Como atualizar um escalonador automático
Ao atualizar o escalonador automático, é possível que leve algum tempo para que as alterações sejam propagadas, e alguns minutos para que as novas configurações do escalonador automático sejam aplicadas.
Console
gcloud
Use o comando
update-autoscaling
.gcloud compute instance-groups managed update-autoscaling INSTANCE_GROUP_NAME \ --max-num-replicas MAX_NUM ...
Para instruções sobre como criar um escalonador automático, consulte Como criar um escalonador automático.
REST
Para atualizar um recurso do escalonador automático, 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", ... }
Ao fazer solicitações que modificam dados, um recurso zoneOperations ou regionOperations é retornado, e será possível consultar a operação para verificar o status da alteração.
Como usar o escalonamento automático preditivo
O escalonamento automático preditivo usa dados históricos para escalonar o grupo antes da carga prevista. Ela funciona melhor se a carga de trabalho atender aos seguintes critérios:
Para mais informações, consulte Escalonamento com base em previsões.
Como desativar ou restringir um escalonador automático
Desative um escalonador automático para impedi-lo temporariamente de escalonar o MIG, ou restrinja-o, para que ele só possa escalonar o MIG horizontalmente. Esse recurso é útil quando você quiser:
Se e quando você reativar o escalonador automático, ele voltará automaticamente para a operação normal.
Use as instruções nesta seção para definir o modo do escalonador automático. Os seguintes modos estão disponíveis:
Console
gcloud
Para desativar, restringir ou reativar um escalonador automático, use o comando
update-autoscaling
com a sinalização--mode
.gcloud compute instance-groups managed update-autoscaling INSTANCE_GROUP_NAME \ --mode MODE
Substitua:
REST
Para atualizar o modo de um recurso do escalonador automático, 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 escalonador automático se comporta da seguinte maneira quando você define o modo dele como
ONLY_SCALE_OUT
:O escalonador automático se comporta da seguinte maneira quando o modo dele é definido como
OFF
:Como controlar a taxa de escalonamento vertical de um escalonador automático
Se as cargas de trabalho demorarem muito para serem inicializadas, configure os controles de escalonamento vertical para reduzir o risco de latência de resposta e interrupções devido aos eventos de escalonamento repentinos. Especificamente, se você espera que um pico de carga aconteça logo depois de uma queda no carregamento, é possível limitar a taxa de redução do escalonamento horizontal. A limitação da taxa de redução do escalonamento horizontal impede que o escalonador automático reduza o tamanho de um MIG por mais instâncias de VM do que a carga de trabalho pode tolerar.
Como configurar controles de escalonamento vertical
A configuração de controles de redução de escalonamento vertical é opcional. Por padrão, os controles de redução de escalonamento vertical não são configurados. Quando não está configurado, o escalonador automático ainda depende do mecanismo de estabilização padrão. Ou seja, ele mantém o tamanho recomendado em um nível necessário para atender à carga de pico, observada durante o período de estabilização.
Console
Para configurar os controles de redução de escalonamento horizontal em um MIG com escalonamento automático, siga as etapas abaixo:
gcloud
É possível configurar controles de escalonamento vertical ao criar um escalonador automático ou ao atualizá-lo.
Como configurar controles de escalonamento vertical ao criar um escalonador automático
Defina controles de escalonamento vertical 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 de 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
Como configurar controles de escalonamento vertical ao atualizar um escalonador automático
Atualize os controles de escalonamento vertical no escalonador automático atual de um MIG usando a sinalização
--scale-in-control
com o comandogcloud compute instance-groups managed update-autoscaling
. Por exemplo, use o seguinte comando para definir controles de escalonamento vertical em uma configuração atual 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:
Por exemplo, digamos que você defina a janela de tempo como 1.800 segundos (30 minutos). Ao calcular o tamanho atual recomendado para o MIG, o escalonador automático usa a seguinte lógica:
REST
Configure os controles de escalonamento vertical configurando os campos
maxScaledInReplicas
etimeWindowSec
na estruturaautoscalingPolicy.scaleInControl
em um recurso do escalonador automático zonal ou regional. Não há valores padrão para esses campos, é preciso fornecer valores para ambos.É possível configurar controles de escalonamento vertical ao criar um escalonador automático ou ao atualizá-lo.
Como configurar controles de escalonamento vertical 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 mais informações sobre como criar um escalonador automático, consulte os seguintes artigos:
Como configurar controles de escalonamento vertical 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:
Por exemplo, digamos que você defina a janela de tempo como 1.800 segundos (30 minutos). Ao calcular o tamanho atual recomendado para o MIG, o escalonador automático usa a seguinte lógica:
Para mais informações sobre como os controles de escalonamento vertical funcionam, consulte Noções básicas sobre as decisões do escalonador automático.
Como conseguir a configuração atual dos controles de escalonamento vertical
Para conseguir a configuração atual dos controles de escalonamento vertical, consulte Como conseguir informações sobre um escalonador automático.
Como remover controles de escalonamento vertical
É possível remover os controles de escalonamento vertical para aumentar as restrições de tempo e magnitude das operações de escalonamento usando a CLI do Google Cloud ou a API Compute Engine.
Sem os controles de escalonamento vertical, o escalonador automático ainda depende do mecanismo de estabilização padrão. Especificamente, ele mantém um tamanho recomendado em um nível necessário para atender à carga de pico, observada durante o período de estabilização.
Console
Para remover os controles de redução de escalonamento horizontal em um MIG com escalonamento automático, siga as etapas abaixo:
gcloud
Remova os controles de escalonamento vertical usando a sinalização
--clear-scale-in-control
com o comandogcloud compute instance-groups managed update-autoscaling
. Por exemplo, use o comando a seguir para remover os controles de escalonamento vertical da configuração de escalonamento automático paraexample-group
:gcloud compute instance-groups managed update-autoscaling example-group \ --clear-scale-in-control
REST
Para remover os controles de escalonamento vertical, use o método
autoscalers.patch
para um MIG zonal ou use o métodoregionAutoscalers.patch
para. um MIG regional e forneça configurações vazias para controles de escalonamento vertical.PATCH https://www.googleapis.com/compute/v1/projects/PROJECT_ID/zones/ZONE/autoscalers?autoscaler=AUTOSCALER_NAME { "autoscalingPolicy": { "scaleInControl": null } }
Substitua:
Como excluir um escalonador automático
É possível excluir permanentemente o recurso do escalonador automático e o histórico dele. Se você quiser interromper temporariamente o escalonamento automático e manter o recurso do escalonador automático e a configuração e o histórico dele, desative o escalonador.
Console
gcloud
Use o comando
stop-autoscaling
para interromper um escalonador automático e excluir a configuração dele.gcloud compute instance-groups managed stop-autoscaling INSTANCE_GROUP_NAME
Interromper um escalonador automático o exclui do MIG. Se você quiser reiniciar o escalonador automático, será necessário 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.
REST
Para interromper um escalonador automático e excluir a configuração dele, 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
Feedback
Queremos saber mais sobre seus casos de uso, desafios e feedback a respeito do escalonamento automático. Compartilhe seu feedback com nossa equipe em mig-discuss@google.com.
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 2024-09-24 UTC.
-