Sobre o escalonador automático de clusters

Neste documento, descrevemos o escalonador automático de cluster, que controla automaticamente o tamanho dos pools de nós. O escalonador automático de cluster é ativado quando você especifica valores mínimos e máximos para o número de nós em um pool de nós. Especifique esses valores ao Criar um pool de nós ou Atualizar um pool de nós.

Escalonar automaticamente um pool de nós

O escalonador automático de clusters redimensiona automaticamente o número de nós em um determinado pool de nós, com base nas demandas das cargas de trabalho. Você não precisa adicionar ou remover manualmente os nós ou provisionar em excesso seus pools de nós. Em vez disso, especifique um tamanho mínimo e máximo para o pool de nós, e o restante é automático.

Se os recursos precisarem ser excluídos ou movidos durante o escalonamento automático do cluster, as cargas de trabalho poderão sofrer interrupções temporárias. Por exemplo, se a carga de trabalho consistir em um controlador com uma única réplica, o pod dessa réplica poderá ser remarcado em um nó diferente caso o nó atual seja excluído. Por isso, é preciso projetar suas cargas de trabalho para tolerar possíveis interrupções ou garantir que os pods críticos não sejam interrompidos.

Como funciona o escalonador automático de clusters

O autoescalador de clusters funciona por pool de nós. Ao usar o escalonador automático de clusters para configurar um pool de nós, especifique um tamanho mínimo e máximo para o pool de nós. É possível alterar o tamanho mínimo e máximo ao criar um pool de nós ou atualizar um pool de nós.

O escalonador automático de clusters aumenta ou diminui o tamanho do pool de nós automaticamente, com base nas solicitações de recursos dos pool de nós em vez da utilização real de recursos. O escalonador automático de cluster adicionará nós se os objetos do pod não puderem ser programados e não houver capacidade suficiente no pool de nós para atender às solicitações.

O escalonador automático de cluster também remove nós se eles forem subutilizados e todos os objetos de pod puderem ser programados em um número menor de nós. Se não for possível esvaziar o nó após 10 minutos, ele será encerrado. Esse período não é configurável.

Se um pod solicitar poucos recursos (por exemplo, se os padrões forem insuficientes), o escalonador automático de cluster não corrigirá a situação. Para garantir que o escalonador automático de clusters trabalhe com a maior precisão possível, crie solicitações de recursos adequadas para todas as cargas de trabalho. Para mais informações, veja Como gerenciar recursos para contêineres.

Critérios de operação

O escalonador automático de clusters parte dos seguintes pressupostos ao redimensionar um pool de nós:

  • Todos os objetos de pod replicados podem ser reiniciados em outro nó, o que pode causar uma breve interrupção. Se a carga de trabalho não tolerar interrupção, configure-a para ser executada em um pool de nós com o escalonamento automático desativado. Para mais informações, veja Como controlar a programação com taints de nó.
  • O escalonador automático de clusters pode substituir qualquer operação manual de gerenciamento de nós que você realize.
  • Todos os nós em um único pool têm o mesmo conjunto de rótulos.
  • O escalonador automático de clusters seleciona um grupo de nós com a CPU menos ociosa ou a memória não utilizada após efetuar o escalonamento vertical. Esse comportamento afeta quais pools de nós são escalonados verticalmente se você tiver tamanhos diferentes de nós, por exemplo, nós com grande quantidade de CPU ou de memória, no mesmo cluster.

Tamanho mínimo e máximo do pool de nós

É possível especificar os tamanhos mínimo e máximo de cada pool de nós no cluster com as sinalizações min-nodes e max-nodes. Para desativar o escalonamento automático, defina min-nodes e max-nodes como o mesmo número. O escalonador automático de clusters toma decisões de escalonamento dentro desses limites de tamanho.

Quando você define o tamanho máximo dos pools de nós, verifique se é grande o suficiente para executar todas as cargas de trabalho. Se os pools de nós em seu cluster não tiverem memória e CPU suficientes disponíveis para executar todas as cargas de trabalho, poderão ocorrer interrupções.

Usar um PodDisruptionBudget para proteger cargas de trabalho

É possível configurar o GKE no Azure para se proteger contra interrupções da carga de trabalho com um PodDisruptionBudget. Ao criar uma PodDisruptionBudget, você especifica o número mínimo de réplicas de pod que precisam estar disponíveis ou o número máximo de réplicas de pod que podem não estar disponíveis a qualquer momento. Para mais informações, consulte Como especificar um orçamento de interrupção para seu aplicativo.

A seguir