O Auto Scaling ajusta dinamicamente os recursos de computação para atender à demanda da carga de trabalho, reduz custos e mantém a estabilidade do serviço. O Container Compute Service (ACS) oferece suporte a cinco componentes de auto scaling: Horizontal Pod Autoscaler (HPA), Cron Horizontal Pod Autoscaler (CronHPA), Adaptive Horizontal Pod Autoscaling (AHPA), Kubernetes Event-driven Autoscaling (KEDA) e Automatic Vertical Pod Autoscaler (AVPA). Use um único componente ou combine vários conforme o tipo da sua carga de trabalho.
Componentes de auto scaling
|
Componente |
Descrição |
Suporte a cargas de trabalho |
Restrições |
|
Componente nativo do Kubernetes para aplicações online. Dimensiona com base em métricas de recursos, como uso de CPU e memória. |
Deployments, StatefulSets |
— |
|
|
Componente open source para cargas de trabalho com padrões de recursos recorrentes e previsíveis. Compatível com HPA; execute ambos simultaneamente para lidar com dimensionamentos agendados e orientados por métricas. |
Deployments, StatefulSets |
— |
|
|
Componente open source que prevê necessidades futuras de recursos a partir de padrões históricos de uso. Ideal para cargas de trabalho com flutuações periódicas, como transmissões ao vivo, educação online e jogos. |
Deployments, StatefulSets |
Exige pelo menos 7 dias de dados históricos para gerar previsões. |
|
|
Componente open source que dimensiona com base em fontes de eventos externos. Recomendado para jobs orientados a eventos, transcodificação offline de áudio e vídeo e processamento de dados em streaming. |
Deployments, StatefulSets |
— |
|
|
Componente do Marketplace que ajusta verticalmente as especificações de recursos dos pods em vez de alterar a quantidade de réplicas. Adequado para cargas de trabalho com estado ou jobs incompatíveis com dimensionamento horizontal, como serviços de jogos e jobs offline. |
Todas as cargas de trabalho |
Suporta apenas ajuste de CPU. Indicado para alterações de carga com duração igual ou superior a 10 minutos. Inadequado para picos de carga no nível de segundos ou ajustes de memória. |
HPA
O Horizontal Pod Autoscaler (HPA) é um componente nativo do Kubernetes que dimensiona o número de réplicas de pods com base em métricas de recursos observadas, como utilização de CPU e memória. O HPA funciona melhor em aplicações online com carga variável e imprevisível.
Para começar, consulte HPA.
CronHPA
O CronHPA é um componente open source que dimensiona cargas de trabalho conforme um cronograma definido. É ideal para aplicações com padrões de recursos recorrentes e previsíveis, como um serviço web que recebe tráfego intenso todas as manhãs durante a semana.
Diferentemente do HPA, que reage às métricas atuais, o CronHPA atua proativamente com base no tempo. Os dois componentes são compatíveis: a execução conjunta do CronHPA e do HPA permite lidar tanto com dimensionamentos agendados quanto com picos inesperados orientados por métricas.
Para começar, consulte CronHPA.
AHPA
O Adaptive Horizontal Pod Autoscaling (AHPA) é um componente open source que analisa métricas históricas da carga de trabalho para prever necessidades futuras de recursos e dimensionar os pods antecipadamente. Essa abordagem proativa evita o atraso no dimensionamento comum no HPA padrão.
O AHPA é indicado para cargas de trabalho com flutuações periódicas, como transmissões ao vivo, educação online e serviços de jogos, cujos padrões de carga se repetem ao longo de dias ou semanas.
Restrição: O AHPA exige pelo menos 7 dias de dados históricos para gerar previsões e oferece suporte a Deployments e StatefulSets.
Para começar, consulte Adaptive Horizontal Pod Autoscaling (AHPA).
KEDA
O Kubernetes Event-driven Autoscaling (KEDA) dimensiona cargas de trabalho com base em fontes de eventos externos, e não em métricas de recursos. O KEDA difere fundamentalmente do HPA: enquanto o HPA é orientado por métricas, o KEDA é orientado por eventos.
Este componente é recomendado para transcodificação offline de áudio e vídeo, jobs orientados a eventos e processamento de dados em streaming. Nesses cenários, o volume de eventos recebidos representa um sinal de dimensionamento mais significativo do que a utilização de recursos.
Para começar, consulte Kubernetes Event-driven Autoscaling (KEDA).
AVPA
O Automatic Vertical Pod Autoscaler (AVPA) ajusta as especificações de recursos de CPU de pods individuais em vez de alterar o número de réplicas. É adequado para cargas de trabalho com estado ou jobs que não admitem dimensionamento horizontal, como serviços de jogos e jobs offline, além de cargas de trabalho com solicitações de recursos mal dimensionadas.
O AVPA também acelera a inicialização de aplicações ao ajustar proativamente as especificações de recursos antes do aumento da carga.
Restrições:
Suporta apenas ajuste de recursos de CPU. Não há suporte para ajuste de memória.
Indicado para alterações de carga com duração igual ou superior a 10 minutos. Inadequado para picos de carga no nível de segundos.
Para começar, consulte vertical pod autoscaling (AVPA).
Próximos passos
Para combinar o CronHPA com o HPA e obter dimensionamentos agendados e orientados por métricas, consulte CronHPA.
Para usar dimensionamento preditivo em cargas de trabalho periódicas, consulte Adaptive Horizontal Pod Autoscaling (AHPA).
Para dimensionar com base em fontes de eventos externos, consulte Kubernetes Event-driven Autoscaling (KEDA).