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

Os grupos de instâncias gerenciadas oferecem recursos de escalonamento automático que permitem adicionar ou excluir automaticamente instâncias de um grupo com base em aumentos ou reduções na carga. O escalonamento automático ajuda seus aplicativos a processar aumentos de tráfego 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 mais instâncias ao seu grupo de instâncias quando há mais carga (aumento) e exclusão de instâncias quando a necessidade de instâncias é reduzida (diminuição).

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 de grupos de instâncias gerenciadas. Um grupo de instâncias gerenciadas é um conjunto de instâncias homogêneas, criadas a partir de um modelo de instância comum. Um autoescalador adiciona ou remove instâncias a partir de um grupo de instâncias gerenciadas. 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 a documentação de 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. Você pode 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 Stackdriver Monitoring

O autoescalador coleta continuamente informações de uso com base na política, compara a utilização real com a utilização de destino desejada e determina se o grupo precisa ser escalonado para cima ou para baixo.

O nível de utilização de destino é o nível no qual você pretende manter as instâncias da máquina virtual. 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 de escalonamento automático em Visões gerais. Para ver uma discussão detalhada de cada política, consulte:

Período de resfriamento

Ao configurar o escalonamento automático, especifique um período de resfriamento para permitir que suas instâncias concluam a inicialização antes que o autoescalador comece a coletar informações delas. As informações durante o período de inicialização de uma instância podem não ser confiáveis para decisões de escalonamento automático, portanto, talvez você queira omitir esses dados. Por padrão, o período de resfriamento é de 60 segundos.

Período de estabilização

Para fins de redução, o autoescalador calcula o tamanho de alvo recomendado do grupo com base na carga de pico nos últimos 10 minutos. Estes últimos 10 minutos são referidos como o período de estabilização.

Esse período de estabilização de 10 minutos pode parecer um atraso na redução do dimensionamento, mas, na verdade, é um recurso embutido do escalonamento automático. O atraso garante que o tamanho do grupo menor seja suficiente para oferecer suporte à carga máxima dos últimos 10 minutos.

Especificações

  • O escalonamento automático só funciona com grupos de instâncias gerenciadas. Grupos de instâncias não gerenciadas não são compatíveis.
  • O escalonamento automático não funciona com grupos de instâncias gerenciadas se a redistribuição proativa de instâncias estiver desabilitada.
  • Não use o escalonamento automático do Compute Engine com grupos de instâncias gerenciadas do Google Kubernetes Engine. Em vez disso, use o escalonamento automático de clusters.

    Se você não tiver certeza de que seu grupo faz parte de um cluster do Google Kubernetes Engine, procure o prefixo gke no nome do grupo de instâncias gerenciadas. Por exemplo, gke-test-1-3-default-pool-eadji9ah.

  • Um autoescalador pode tomar decisões de dimensionamento com base em várias métricas, mas pode lidar com apenas uma política por tipo de métrica, exceto no caso das métricas de monitoramento do Stackdriver. Um autoescalador pode lidar com até cinco políticas com base em métricas de monitoramento do Stackdriver. O autoescalador 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, o que pode fazer com que o número de instâncias no grupo fique abaixo do limite de escalonamento automático (minNumReplicas) especificado.

Antes de começar

  1. Saiba mais sobre grupos de instâncias gerenciadas

    O autoescalador é um recurso de grupos de instâncias gerenciadas. Portanto, é preciso compreender como os grupos de instâncias gerenciadas funcionam antes de usar a escalonamento automático.

  2. Consiga um URL ou nome de grupo de instâncias gerenciadas

    Para todas as solicitações de escalonamento automático, é preciso fornecer um nome de grupo de instâncias gerenciadas ou um URL de grupo de instâncias gerenciadas. Na ferramenta de linha de comando gcloud, é possível usar um nome de grupo de instâncias gerenciado, enquanto a API requer uma URL totalmente qualificada.

    Use o comando instance-groups managed list --uri ou instance-groups managed list [INSTANCE_GROUP] --uri para conseguir o URL de um grupo de instâncias gerenciadas atual. Por exemplo, o seguinte comando fornece o URL de um grupo de instâncias gerenciadas na zona us-central1-f:

    gcloud compute instance-groups managed list example-group --uri --filter="zone:(us-central1-f)"
    

    A ferramenta gcloud retorna o URL dos grupos de instâncias gerenciadas:

    https://www.googleapis.com/compute/v1/projects/myproject/zones/us-central1-f/instanceGroupManagers/example-group
    

    Se você não tiver um grupo de instâncias gerenciadas, veja como criar um grupo de instâncias gerenciadas.

Próximas etapas

Quando estiver pronto, crie um autoescalador que faça o escalonamento com base na capacidade de disponibilização do balanceamento de carga ou da CPU ou em uma métrica do Stackdriver Monitoring.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Compute Engine