O Auto Scaling ajusta dinamicamente os recursos de computação com base na carga de trabalho e nas políticas definidas. Os cenários típicos incluem serviços online elásticos, treinamento em larga escala e deep learning com GPU ou GPU compartilhada. Este tópico descreve as soluções de dimensionamento compatíveis com o Container Service for Kubernetes (ACK).
Duas dimensões de dimensionamento:
Horizontal versus vertical: O dimensionamento horizontal ajusta a quantidade de réplicas de pods. O dimensionamento vertical altera a CPU e a memória por pod sem modificar o número de réplicas.
Reativo versus preditivo: O dimensionamento reativo responde às métricas atuais. Já o preditivo utiliza dados históricos para escalar antes da demanda prevista.
As quatro soluções:
|
Solução |
Funcionamento |
Métricas de dimensionamento |
Caso de uso |
Recursos compatíveis |
Documentação |
|
HPA (Horizontal Pod Autoscaler) |
Dimensionador horizontal padrão do Kubernetes. Aumenta as réplicas quando a demanda sobe e reduz quando ela cai. |
Uso de CPU e memória; métricas personalizadas |
Serviços com picos de tráfego imprevisíveis — e-commerce, educação online e serviços financeiros |
Deployments e StatefulSets (qualquer recurso que implemente a interface |
|
|
CronHPA (Cron Horizontal Pod Autoscaler) |
Dimensiona pods conforme um cronograma. Oferece suporte a fusos horários, datas específicas e datas de exclusão, como feriados. Funciona em conjunto com o HPA. |
Baseado em cronograma |
Aplicações com picos previsíveis ou tarefas vinculadas a horários específicos |
Deployments e StatefulSets |
|
|
VPA (Vertical Pod Autoscaler) |
Ajusta adequadamente as solicitações e limites de CPU e memória dos pods sem alterar a contagem de réplicas. |
Recomenda e ajusta solicitações e limites de CPU e memória por pod |
Aplicações stateful ou monolíticas que exigem recursos estáveis; também útil para recuperação de anomalias em pods |
Deployments, DaemonSets e StatefulSets |
|
|
AHPA (Advanced Horizontal Pod Autoscaler) |
Estende o HPA com dimensionamento preditivo. Prevê a demanda a partir de métricas históricas e dimensiona os pods antes da chegada do tráfego. |
Uso de CPU, memória e GPU; consultas por segundo (QPS); tempo de resposta (RT); métricas personalizadas |
Aplicações com padrões periódicos de tráfego — streaming ao vivo, educação online e jogos |
Deployments e Knative Services |