Como fazer o escalonamento automático de grupos de instâncias

Os grupos de instâncias gerenciadas (MIGs, na sigla em inglês) oferecem recursos de escalonamento que permitem adicionar ou excluir automaticamente instâncias de máquina virtual (VM) em um MIG de acordo com os aumentos ou reduções na carga. O escalonamento automático ajuda seus apps a processar aumentos de tráfego de forma eficiente e reduzir os custos quando a necessidade de recursos é menor. Para isso, defina a política de escalonamento automático. O autoescalador realizará o escalonamento automático com base na carga medida.

O escalonamento automático é feito com a adição de VMs adicionais ao MIG quando há mais carga (escalonamento horizontal, às vezes chamado de vertical) e a exclusão de VMs quando a demanda é reduzida (escalonamento vertical ou horizontal).

Especificações

  • O escalonamento automático só funciona com grupos de instâncias gerenciadas (MIGs, na sigla em inglês) zonais ou regionais. Grupos de instâncias não gerenciadas não são compatíveis.
  • O escalonamento automático não funciona com MIGs regionais se a redistribuição proativa de instâncias estiver desativada.
  • O escalonamento automático não funciona com MIGs com estado.
  • Não é possível criar instâncias com nomes específicos enquanto o escalonamento automático está ativado. No entanto, é possível ativar o escalonador automático após a criação de instâncias de VM com nomes específicos.
  • Não será possível usar o escalonamento automático se o MIG tiver uma configuração com estado.
  • Não use o escalonamento automático do Compute Engine com MIGs que pertencem ao Google Kubernetes Engine. Em vez disso, use o escalonamento automático de clusters.

    Caso você não tenha certeza se o grupo faz parte de um Cluster do GKE, procure o prefixo gke no nome do MIG. Por exemplo, gke-test-1-3-default-pool-eadji9ah.

  • Com um escalonador automático, é possível tomar decisões de dimensionamento com base em várias métricas, no entanto, só é possível lidar com uma política por tipo de métrica, exceto no caso das métricas do Cloud Monitoring. Com ele, também é possível gerenciar até cinco políticas com base nas métricas do Monitoring. O escalonador automático calcula o número recomendado de máquinas virtuais para cada política e, em seguida, escalona com base na política que fornece o maior número de máquinas virtuais no grupo.

  • O escalonamento automático funciona independentemente da recuperação automática. Se você configurou a recuperação automática para o grupo e uma instância falhou na verificação de integridade, ela tentará recriar a instância. Recriar uma instância pode fazer com que o número de instâncias no grupo fique abaixo do limite de escalonamento automático (minNumReplicas) especificado.

  • Se você escalonar automaticamente um MIG regional, uma instância poderá ser adicionada e excluída imediatamente em uma das zonas. Isso acontece quando a utilização na zona aciona um escalonamento horizontal, mas a utilização geral no MIG regional não requer a instância extra ou a instância adicional é necessária em uma zona diferente.

Noções básicas

O escalonamento automático utiliza os conceitos e serviços fundamentais a seguir.

Grupos de instâncias gerenciadas

O escalonamento automático é um recurso dos grupos de instâncias gerenciadas (MIGs, na sigla em inglês). Um grupo de instâncias gerenciadas é um conjunto de instâncias de máquina virtual (VM) criado a partir de um modelo de instância comum. Um escalonador automático adiciona ou remove instâncias de um MIG. Embora o Compute Engine tenha grupos de instâncias gerenciadas e não gerenciadas, somente grupos de instâncias gerenciadas podem ser usados com autoescalador.

Para entender a diferença entre um grupo de instâncias gerenciadas e um grupo de instâncias não gerenciadas, consulte Grupos de instâncias.

Política de escalonamento automático e utilização de destino

Para criar um autoescalador, é preciso especificar a política de escalonamento e um nível de utilização de destino que o autoescalador usa para determinar quando escalonar o grupo. É possível escolher a escala usando as seguintes políticas:

  • Uso médio da CPU.
  • Capacidade de serviço de balanceamento de carga HTTP, que pode se basear em utilização ou solicitações por segundo.
  • Métricas do Cloud Monitoring.

O escalonador automático coleta informações de uso continuamente usando a política como base, compara a utilização real com a desejada e usa essas informações para determinar se o grupo precisa remover (escalonamento vertical) ou adicionar instâncias (escalonamento horizontal).

O nível de utilização de destino é o nível no qual você pretende manter as instâncias da máquina virtual (VM, na sigla em inglês). Por exemplo, se você escala com base na utilização da CPU, pode definir o nível de utilização de destino em 75%, e o autoescalador manterá a utilização da CPU do grupo especificado de instâncias em 75% ou perto desse valor. O nível de utilização de cada métrica é interpretado de maneira diferente com base na política de escalonamento automático.

Para um breve resumo de cada política, consulte Políticas. Para ver uma discussão detalhada de cada política, consulte:

Período de espera

Enquanto uma instância é inicializada, as informações sobre o uso podem não refletir circunstâncias normais. Assim, essas informações podem não ser confiáveis para decisões do escalonador automático, e convém omitir esses dados. Especifique um período de espera para permitir que suas instâncias concluam a inicialização antes que o escalonador automático comece a coletar informações de uso delas. Por padrão, o período de espera é de 60 segundos.

Os tempos reais de inicialização variam de acordo com vários fatores. Recomendamos que você teste quanto tempo leva para que seu aplicativo seja inicializado. Para fazer isso, crie uma instância e cronometre o processo de inicialização desde o momento em que a instância esteja RUNNING até que o aplicativo esteja pronto.

Se você definir um valor de período de espera significativamente maior que o tempo que uma instância leva para ser inicializada, talvez o escalonador automático ignore os dados de uso legítimos e subestime o tamanho exigido pelo grupo, o que causará um atraso no escalonamento horizontal.

Período de estabilização

Para fins de escalonamento vertical, o escalonador automático calcula o tamanho de alvo recomendado do grupo com base na carga de pico dos últimos 10 minutos. Esses últimos 10 minutos são chamados de período de estabilização.

Com o período de estabilização, o escalonador automático garante que o tamanho recomendado para o grupo de instâncias gerenciadas seja sempre suficiente para atender a demanda da carga de pico observada durante os 10 minutos anteriores.

Esse período de estabilização pode aparecer como um atraso no escalonamento vertical. Mas, na verdade, é um recurso integrado de escalonamento automático. O atraso garante que o tamanho do grupo menor seja suficiente para oferecer suporte à carga máxima dos últimos 10 minutos.

Modo de escalonamento automático

Se você precisar investigar ou configurar seu grupo sem interferência das operações de escalonamento automático, desative ou restrinja atividades de escalonamento automático temporariamente. A configuração do autoescalador permanece enquanto ele está desativado ou restrito, e todas as atividades de escalonamento automático são retomadas quando você o liga novamente ou remove a restrição.

Controles de escalonamento vertical

Se as cargas de trabalho levarem muitos minutos para serem inicializadas (por exemplo, por causa das tarefas de instalação demoradas), é possível reduzir o risco de latência de resposta causada por eventos de escalonamento vertical abruptos. Para fazer isso, basta configurar controles. Especificamente, se você espera que os picos de carga ocorram logo após as recusas, limite a taxa de escalonamento vertical para evitar que o escalonamento automático reduza o tamanho de um MIG em mais instâncias de VM do que sua carga de trabalho pode tolerar.

Você não precisará configurar controles de escalonamento vertical se o aplicativo for inicializado rápido o suficiente para detectar picos de carga no escalonamento horizontal.

Para configurar controles de escalonamento vertical, defina as seguintes propriedades na política de escalonamento automático.

  • Redução máxima permitida. O número de instâncias de VM que sua carga de trabalho pode perder (a partir do tamanho do pico) dentro da janela de tempo especificada anteriormente. Use esse parâmetro para limitar quanto seu grupo pode ser escalonado verticalmente. Dessa forma, ainda será possível exibir um pico de carga provável até que mais instâncias comecem a ser exibidas. Quanto menor for a redução máxima permitida, mais tempo levará para que o grupo seja escalonado verticalmente.

  • Janela de tempo anterior. O histórico em que o escalonador automático monitora o tamanho de pico exigido pela carga de trabalho. O escalonador automático não será redimensionado abaixo da redução máxima permitida subtraída do tamanho de pico observado nesse período. É possível usar esse parâmetro para definir quanto tempo o escalonador automático deve aguardar antes de remover instâncias, conforme definido pela redução máxima permitida. Com uma janela de tempo anterior mais longa, o escalonador automático considera picos mais históricos, tornando o escalonamento vertical mais conservador e estável.

Para mais informações, veja como configurar controles de escalonamento vertical (em inglês) e Como compreender as decisões do escalonador automático.

O tamanho de grupo recomendado é o número recomendado de VMs do escalonador automático que o grupo de instâncias gerenciadas deve manter, com base na carga de pico observada durante os últimos 10 minutos. Esses 10 minutos são chamados de período de estabilização. O tamanho de alvo recomendado é recalculado constantemente. Se você definir uma política de escalonamento automático com controles de escalonamento vertical, o recommendedSize será restringido por esses controles.

A seguir

  1. Se você não tiver um MIG, confira como criar um grupo de instâncias gerenciadas.
  2. Crie um escalonador automático que age de acordo com:

  3. Gerencie seu escalonador automático, por exemplo, para ver informações sobre ele, configurar controles de escalonamento vertical ou aplicar restrições temporárias.