O Advanced Horizontal Pod Autoscaler (AHPA) é um recurso de dimensionamento automático preditivo do Container Service for Kubernetes (ACK). Ele analisa dados históricos de métricas para prever a demanda de carga de trabalho e provisionar pods antes de picos de tráfego, eliminando o atraso reativo inerente ao dimensionamento automático padrão do Kubernetes.
Contexto
As abordagens padrão de dimensionamento automático do Kubernetes apresentam compensações:
|
Método |
Limitação |
|
Contagem fixa de pods |
Pods ociosos desperdiçam recursos fora dos horários de pico |
|
Horizontal Pod Autoscaler (HPA) |
O dimensionamento ocorre apenas após o uso de recursos ultrapassar um limiar; assim, os pods ficam indisponíveis até que a demanda já tenha aumentado |
|
CronHPA |
Exige definir manualmente a quantidade de pods para cada intervalo de tempo — são necessárias 1.440 programações distintas para cobrir um dia inteiro com granularidade de minutos — e requer atualizações sempre que os padrões de tráfego mudam |
O AHPA supera essas limitações ao aprender com dados históricos. Em vez de reagir à demanda somente após sua ocorrência, o AHPA identifica flutuações na carga de trabalho com base nos valores históricos de métricas específicas e no tempo necessário para um pod atingir o estado Ready. Isso permite pré-provisionar a quantidade exata de pods por minuto para as próximas 24 horas, garantindo capacidade disponível quando o tráfego chegar.
Funcionamento
Métricas compatíveis
O AHPA dimensiona cargas de trabalho com base em CPU, GPU, memória, consultas por segundo (QPS), tempo de resposta (RT) e métricas externas.
Mecanismos de previsão
O AHPA utiliza dois mecanismos de previsão complementares:
Previsão proativa: analisa dados históricos de métricas para detectar padrões periódicos e prever demandas futuras. Ideal para cargas de trabalho com ciclos de tráfego regulares e recorrentes.
Previsão passiva: monitora métricas em tempo real e ajusta a capacidade dinamicamente conforme as condições mudam.
Juntos, esses mecanismos alcançam precisão superior a 95% na identificação de flutuações de carga de trabalho.
Degradação de service
Para cenários em que as cargas de trabalho apresentem comportamento inesperado, o AHPA permite definir limites mínimos e máximos de pods para períodos específicos, com granularidade de minutos, funcionando como piso e teto de segurança.
Alvos de dimensionamento
O AHPA integra-se a três mecanismos de dimensionamento:
|
Alvo de dimensionamento |
Como o AHPA o utiliza |
|
Knative |
Resolve a latência de cold start em cenários serverless ao dimensionar com base em concorrência, QPS ou RT |
|
HPA |
Encapsula o HPA padrão com lógica preditiva, simplificando a configuração de políticas e removendo o atraso reativo |
|
Deployment |
Dimensiona Deployments diretamente, sem exigir o HPA como intermediário |
Principais capacidades
|
Capacidade |
Detalhe |
|
Velocidade de previsão |
Prevê flutuações de carga de trabalho em milissegundos |
|
Velocidade de dimensionamento |
Provisiona pods em segundos |
|
Precisão |
Identifica flutuações de carga de trabalho com mais de 95% de precisão |
|
Granularidade temporal |
Suporta limites de contagem de pods com precisão de minutos |
Casos de uso
Cargas de trabalho periódicas: aplicações com ciclos de tráfego previsíveis, como transmissões ao vivo, educação online e plataformas de jogos.
Gerenciamento de tráfego em rajada: deployments que combinam uma contagem fixa de pods de linha de base com dimensionamento automático para absorver picos de tráfego inesperados em cenários de negócios regulares.
Integração com planejamento de capacidade: sistemas que necessitam de recomendações de provisionamento de pods. O AHPA expõe uma API padrão do Kubernetes para recuperar resultados das previsões e integrá-los aos seus próprios sistemas.