Os grupos de instâncias geridas (GIGs) oferecem capacidades de escala automática que lhe permitem adicionar ou eliminar automaticamente instâncias de máquinas virtuais (VMs) de um GIG com base em aumentos ou diminuições na carga. A escala automática ajuda as suas apps a processarem facilmente aumentos no tráfego e a reduzir os custos quando a necessidade de recursos é inferior. Define a política de escala automática e o escalador automático executa a escala automática com base na carga medida e nas opções que configurar.
A escala automática funciona adicionando mais VMs ao seu MIG quando existe mais carga (expansão da escala) e eliminando VMs quando a necessidade de VMs é reduzida (redução da escala).
Pré-requisitos
O escalador automático usa o agente de serviço do Compute Engine para adicionar e remover instâncias no grupo.O Compute Engine cria automaticamente esta conta de serviço, bem como a respetiva associação de políticas do IAM à função de agente de serviço do Compute Engine, quando a API Compute Engine está ativada. Google Cloud
Se o seu projeto não tiver esta conta, por exemplo, se a tiver removido, pode adicioná-la manualmente:
Consola
Na Google Cloud consola, aceda à página IAM.
Clique em Conceder acesso.
No campo Novos principais, introduza
service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com
.Selecione a função Agente de serviço do Compute Engine.
Clique em Guardar.
gcloud
gcloud projects add-iam-policy-binding PROJECT_ID \ --member serviceAccount:service-PROJECT_NUMBER@compute-system.iam.gserviceaccount.com \ --role roles/compute.serviceAgent
Fundamentals
O dimensionamento automático usa os seguintes conceitos e serviços fundamentais.
Grupos de instâncias geridas
A escala automática é uma funcionalidade dos grupos de instâncias geridas (GIGs). Um grupo de instâncias geridas é um conjunto de instâncias de máquinas virtuais (VMs) que são criadas a partir de um modelo de instância comum. Um escalador automático adiciona ou elimina instâncias de um grupo de instâncias gerido com base na política de escalamento automático do grupo. Embora o Compute Engine tenha grupos de instâncias geridos e não geridos, só os grupos de instâncias geridos podem ser usados com um escalador automático.
Para compreender a diferença entre um grupo de instâncias gerido e um grupo de instâncias não gerido, consulte o artigo Grupos de instâncias.
Para saber como criar um grupo de instâncias gerido, consulte o artigo Criar MIGs.
Política de escala automática
Quando define uma política de dimensionamento automático para o seu grupo, especifica um ou mais sinais que o dimensionador automático usa para dimensionar o grupo. Quando define vários sinais numa política, o dimensionador automático calcula o número recomendado de VMs para cada sinal e define o tamanho recomendado do grupo como o número mais elevado.
Uma política de dimensionamento automático tem de ter sempre, pelo menos, um sinal de dimensionamento. Quando ativa a criação de uma escala automática num GIG, por predefinição, o criador de uma escala automática adiciona um sinal de utilização da CPU. Pode editar este sinal predefinido ou remover e adicionar outros sinais na política.
As secções seguintes fornecem uma vista geral dos sinais com base nas métricas de utilização do objetivo e nos sinais com base em horários.
Métricas de utilização alvo
Pode ajustar automaticamente a escala com base numa ou mais das seguintes métricas que refletem a carga do grupo de instâncias:
- Utilização média da CPU
- Capacidade de publicação do balanceamento de carga HTTP
- Métricas do Cloud Monitoring
O escalador automático recolhe continuamente informações de utilização com base na métrica de utilização selecionada, compara a utilização real com a utilização alvo desejada e usa estas informações para determinar se o grupo precisa de remover instâncias (reduzir a escala) ou adicionar instâncias (aumentar a escala).
O nível de utilização alvo é o nível ao qual quer manter as instâncias de máquinas virtuais (VMs). Por exemplo, se fizer o escalonamento com base na utilização da CPU, pode definir o nível de utilização pretendido em 75% e o escalonador automático mantém a utilização da CPU do grupo de instâncias especificado em 75% ou perto desse valor. O nível de utilização de cada métrica é interpretado de forma diferente com base na política de escalabilidade automática.
Se criar uma escala automática com base em qualquer um dos seguintes elementos, o GIG não pode ser reduzido para zero instâncias:
- Utilização média da CPU
- Capacidade de publicação do balanceamento de carga HTTP
- Monitorizar as métricas provenientes de cada instância no MIG
No entanto, pode usar outras métricas de monitorização quando reduzir o número de instâncias para zero, desde que defina o número mínimo de instâncias (autoscalingPolicy.minNumReplicas
) para 0
.
Para mais informações sobre o dimensionamento com base nas métricas de utilização alvo, consulte as seguintes páginas:
- Dimensionamento com base na utilização da CPU
- Dimensionamento com base na capacidade de publicação do balanceamento de carga
- Dimensionamento com base nas métricas do Cloud Monitoring
Agendamentos
Pode usar o ajuste de escala automático baseado em horários para atribuir capacidade a cargas previstas. Pode ter até 128 horários de escalonamento por grupo de instâncias. Para cada programação de ajuste de escala, especifique o seguinte:
- Capacidade: instâncias de VM mínimas necessárias
- Horário: hora de início, duração e recorrência (por exemplo, uma vez, diariamente, semanalmente ou mensalmente)
Cada programação de escalonamento está ativa a partir da respetiva hora de início e durante a duração configurada. Durante este período, o escalador automático dimensiona o grupo para ter, pelo menos, tantas instâncias quanto as definidas pelo horário de escalonamento.
Quando usa programações, o MIG pode ser reduzido para zero instâncias se todas as seguintes condições forem cumpridas:
- O número mínimo de instâncias (
autoscalingPolicy.minNumReplicas
) está definido como0
. - A política de escalabilidade automática não contém programações ativas.
- A política de escala automática não contém sinais baseados em métricas de utilização alvo que impeçam a redução da escala para zero instâncias.
Para mais informações, consulte o artigo Dimensionamento com base em programações.
Período de inicialização
O período de inicialização, anteriormente conhecido como período de repouso, é a duração necessária para as aplicações serem inicializadas nas suas instâncias de VM. Enquanto uma aplicação está a ser inicializada numa instância, os dados de utilização da instância podem não refletir as circunstâncias normais. Assim, o dimensionamento automático usa o período de inicialização para tomar decisões de dimensionamento das seguintes formas:
- Para decisões de aumento da escala, o escalador automático considera os dados de utilização de todas as instâncias, mesmo de uma instância que ainda esteja no respetivo período de inicialização. O escalador automático recomenda a remoção de instâncias se a utilização média de todas as instâncias for inferior à utilização alvo.
- Para decisões de expansão, o escalador automático ignora os dados de utilização de instâncias que ainda se encontram no período de inicialização.
- Se ativar o modo preditivo, o período de inicialização informa o escalador automático preditivo para aumentar a escala com maior antecedência em relação à carga prevista, para que as aplicações sejam inicializadas quando a carga chegar. Por exemplo, se definir o período de inicialização para 300 segundos, o escalador automático preditivo cria VMs 5 minutos antes da carga prevista.
Por predefinição, o período de inicialização é de 60 segundos. Os tempos de inicialização reais variam devido a vários fatores. Recomendamos que teste o tempo que a sua aplicação demora a inicializar. Para o fazer, crie uma instância e cronometre o processo de arranque desde o momento em que a instância fica
RUNNING
até a aplicação estar pronta.
Se definir um valor do período de inicialização significativamente superior ao tempo necessário para inicializar uma instância, o escalador automático pode ignorar dados de utilização legítimos e subestimar o tamanho necessário do grupo, o que causa um atraso no aumento da escala.
Período de estabilização
Os sinais de dimensionamento automático, como a utilização da CPU, não são muito estáveis e podem mudar rapidamente. À medida que a carga aumenta e diminui, o escalador automático tem de estabilizar o sinal para evitar a eliminação e a criação contínuas de VMs. O escalador automático estabiliza um sinal mantendo uma capacidade de VM suficiente para atender ao pico de carga observado durante o período de estabilização.
O período de estabilização é igual a 10 minutos ou ao período de inicialização que definiu, conforme o que for mais longo. O período de estabilização é usado apenas para decisões de redução quando o escalador automático tem de eliminar VMs.
Quando a carga diminui, o escalador automático não elimina imediatamente as VMs. O dimensionamento automático continua a monitorizar a capacidade necessária durante o período de estabilização e elimina as VMs apenas quando existe capacidade suficiente para satisfazer o pico de carga. Isto pode aparecer como um atraso no aumento da escala, mas é uma funcionalidade incorporada do ajuste de escala automático.
Se a sua aplicação demorar mais de 10 minutos a inicializar numa nova VM, o escalador automático usa o período de inicialização em vez dos 10 minutos de estabilização predefinidos para aguardar até que a VM possa ser eliminada. Isto garante que a decisão do redimensionador automático de eliminar a VM tem em conta o tempo necessário para recuperar a capacidade de publicação.
Quando a carga aumenta, o redimensionador automático não usa o período de estabilização e cria imediatamente o número de VMs necessário para satisfazer a procura.
Modo de escala automática
Se precisar de investigar ou configurar o seu grupo sem interferência das operações do escalamento automático, pode desativar ou restringir temporariamente as atividades de escalamento automático. A configuração do ajuste de escala automático persiste enquanto estiver desativado ou restrito e todas as atividades de ajuste de escala automático são retomadas quando o ativa novamente ou levanta a restrição.
Escala automática preditiva
Se ativar o dimensionamento automático preditivo para otimizar o MIG para disponibilidade, o dimensionador automático prevê a carga futura com base nos dados do histórico e dimensiona um MIG antecipadamente em função da carga prevista, para que as novas instâncias estejam prontas para serem usadas quando a carga chegar.
O dimensionamento automático preditivo funciona melhor se a sua carga de trabalho cumprir os seguintes critérios:
- A sua aplicação demora muito tempo a inicializar, por exemplo, se configurar um período de inicialização de mais de 2 minutos.
- A sua carga de trabalho varia de forma previsível com ciclos diários ou semanais.
Para mais informações, consulte o artigo Ajustar a escala com base nas previsões.
Controlos de redução
Se as suas cargas de trabalho demorarem muitos minutos a inicializar (por exemplo, devido a tarefas de instalação demoradas), pode reduzir o risco de latência de resposta causada por eventos de redução abruptos configurando controlos de redução. Especificamente, se esperar picos de carga pouco depois das recusas, pode limitar a taxa de redução para impedir que o dimensionamento automático reduza o tamanho de um MIG em mais instâncias de VM do que a sua carga de trabalho pode tolerar.
Não tem de configurar os controlos de redução se a sua aplicação for inicializada com rapidez suficiente para detetar picos de carga na expansão.
Para configurar os controlos de redução, defina as seguintes propriedades na sua política de dimensionamento automático.
Redução máxima permitida. O número de instâncias de VM que a sua carga de trabalho pode perder (a partir do respetivo tamanho máximo) no período de tempo de acompanhamento especificado. Use este parâmetro para limitar a quantidade de escalamento vertical do seu grupo, de modo que ainda possa publicar um pico de carga provável até que mais instâncias comecem a publicar. Quanto menor for a redução máxima permitida, mais tempo demora o grupo a aumentar.
Período de tempo de seguimento. O histórico no qual o redimensionador automático monitoriza o tamanho máximo exigido pela sua carga de trabalho. O ajuste automático de escala não redimensiona abaixo da redução máxima permitida subtraída do tamanho máximo observado neste período. Pode usar este parâmetro para definir o tempo que o escalador automático deve esperar antes de remover instâncias, conforme definido pela redução máxima permitida. Com um período de análise mais longo, o escalador automático considera mais picos históricos, o que torna a redução mais conservadora e estável.
Para mais informações, consulte os artigos Configurar controlos de redução e Compreender as decisões do dimensionamento automático.
Tamanho recomendado
O tamanho do grupo recomendado é o número de VMs recomendado pelo escalador automático que o grupo de instâncias geridas deve manter, com base no pico de carga observado durante os últimos 10 minutos. Estes últimos 10 minutos são denominados período de estabilização. O tamanho recomendado é recalculado constantemente. Se definir uma política de ajuste de escala automático com controlos de redução de escala, o tamanho recomendado é limitado pelos controlos de redução de escala.
Limitações
Não pode usar o dimensionamento automático com os seguintes grupos de instâncias, que não permitem que o dimensionador automático crie nem elimine VMs de acordo com a procura:
- Grupos de instâncias não geridos
- MIGs com configuração com estado
- GIGs com reparações de VMs desativadas
- GIGs regionais com uma forma de distribuição de destino de
ANY
ouANY_SINGLE_ZONE
Não pode criar instâncias de VM com nomes específicos quando o ajuste de escala automático está ativado.
Não use a escala automática do Compute Engine com GIGs pertencentes ao Google Kubernetes Engine. Para grupos do Google Kubernetes Engine, use a escala automática de clusters. Se não tiver a certeza se um MIG faz parte de um cluster do GKE, procure o prefixo
gke
no nome do MIG. Por exemplo,gke-test-1-3-default-pool-eadji9ah
.
O que acontece durante a autorreparação
O dimensionamento automático funciona independentemente da autorreparação.
Se configurar a autorrecuperação para o seu grupo e uma instância falhar na verificação de estado, o MIG tenta recriar a instância. Enquanto uma instância está a ser recriada pelo MIG, o número de instâncias em execução no grupo pode ser inferior ao número mínimo de instâncias especificado para o grupo (autoscalingPolicy.minNumReplicas
).
Preços
Não existe um custo adicional para configurar uma política de dimensionamento automático. O escalador automático adiciona ou elimina dinamicamente instâncias de VMs, pelo que só lhe é cobrado o valor dos recursos que o GIG usa. Pode controlar o custo dos recursos configurando o número mínimo e máximo de instâncias na política de escalabilidade automática. Para ver informações de preços do Compute Engine, consulte a página Preços.
O que se segue?
- Saiba como o dimensionamento automático funciona num MIG regional.
- Se não tiver um MIG, reveja como criar um grupo de instâncias gerido.
Crie um redimensionador automático que seja dimensionado com base no seguinte:
Faça a gestão do seu escalador automático, por exemplo, para obter informações sobre o mesmo, configurar controlos de redução ou restringi-lo temporariamente.