O Advanced Horizontal Pod Autoscaler (AHPA) é um componente do ACK que adiciona dimensionamento preditivo às cargas de trabalho do Kubernetes. O Horizontal Pod Autoscaler (HPA) padrão reage às métricas após os picos — o AHPA elimina esse atraso ao combinar a predição proativa baseada em machine learning com a predição passiva em tempo real, garantindo que os pods estejam prontos antes da chegada do tráfego.
Instale o AHPA controller e ative o recurso de dimensionamento preditivo.
Como funciona
O AHPA execute dois caminhos de dimensionamento complementares em paralelo:
Predição proativa: o AHPA analisa dados históricos de métricas usando algoritmos de machine learning da DAMO Academy e prevê a demanda de pods com até 24 horas de antecedência. Os pods são pré-provisionados antes da chegada de um aumento de tráfego previsto. Este caminho é eficaz para aplicações com padrões de tráfego periódicos, como picos diários, ciclos semanais e ritmos semelhantes.
Predição passiva: quando as métricas em tempo real se desviam da linha de base prevista — por exemplo, durante um pico de tráfego inesperado — o AHPA ajusta a contagem de pods imediatamente com base nos dados atuais. Este caminho atua como uma rede de segurança para alterações de carga imprevisíveis.
Com a degradação de service, defina contagens máximas e mínimas de pods dentro de uma ou mais janelas de tempo específicas.
A figura a seguir mostra a arquitetura do AHPA.
A arquitetura compreende os seguintes módulos:
|
Módulo |
Função |
|
Algoritmos de ML da DAMO Academy |
Analisam métricas históricas para prever a demanda futura de pods com até 24 horas de antecedência |
|
Preditor proativo |
Agenda o pré-dimensionamento com base na previsão de ML |
|
Preditor passivo |
Monitora métricas em tempo real e aciona o dimensionamento imediato quando os desvios excedem a linha de base prevista |
|
Executor de dimensionamento |
Aplica as decisões de dimensionamento ao Knative, HPA ou Deployments |
|
Camada de degradação de service |
Aplica as contagens mínimas e máximas de pods configuradas dentro de janelas de tempo específicas |
Métricas suportadas
O AHPA suporta os seguintes tipos de métrica: cpu, memória, QPS (consultas por segundo), RT (tempo de resposta) e métricas externas.
Métodos de dimensionamento
O AHPA aplica decisões de dimensionamento por meio de três tipos de destino:
|
Destino |
Mais indicado para |
|
Knative |
Cargas de trabalho serverless; resolve problemas de cold start; dimensiona com base em simultaneidade, QPS ou RT |
|
HPA |
Cargas de trabalho padrão do Kubernetes; configuração de política mais simples; também lida com cold start |
|
Deployment |
Dimensionamento direto do Deployment sem um recurso HPA intermediário |
Para clusters ACK Serverless, ative o auto scaling sem nós com o AHPA — o cluster dimensiona no nível do pod sem gerenciar a capacidade do nó.
Princípios de design
O AHPA é construído com base em três princípios:
Estável: aciona o dimensionamento apenas quando a aplicação está em estado estável.
Livre de O&M: não requer controladores adicionais no lado do cliente. A sintaxe de configuração do AHPA é mais simples que a do HPA.
Orientado a serverless: o foco está nos pods, e não na utilização de recursos do nó, tornando o AHPA uma escolha natural para ambientes serverless e de instâncias de contêiner elásticas.
Notas de uso
Para detalhes de configuração, pré-requisitos e exemplos de YAML, consulte AHPA overview.
Notas de versão
Abril de 2024
|
Versão |
Data de lançamento |
Descrição |
Impacto |
|
v2.6.0-aliyun.1 |
2024-04-16 |
Otimização do link de coleta de métricas que usa o metrics-server. |
Atualize em horários de baixo movimento. |
Março de 2024
|
Versão |
Data de lançamento |
Descrição |
Impacto |
|
v2.5.6-aliyun.1 |
2024-03-20 |
Correção de um panic causado pelo processamento de métricas personalizadas. |
Atualize em horários de baixo movimento. |
Dezembro de 2023
|
Versão |
Data de lançamento |
Descrição |
Impacto |
|
v2.5.0-aliyun.1 |
2023-12-25 |
Adição de suporte para configurações personalizadas de PromQL e Elastic Workload. Melhoria na saída do |
Atualize em horários de baixo movimento. |
Outubro de 2023
|
Versão |
Data de lançamento |
Descrição |
Impacto |
|
v2.4.0-aliyun.1 |
2023-10-16 |
Adição de suporte para múltiplas métricas na predição passiva. Melhoria na saída do |
Atualize em horários de baixo movimento. |
Julho de 2023
|
Versão |
Data de lançamento |
Descrição |
Impacto |
|
v2.3.0-aliyun.1 |
2023-07-12 |
Adição de suporte para métricas personalizadas. Melhoria na saída do |
Atualize em horários de baixo movimento. |
Junho de 2023
|
Versão |
Data de lançamento |
Descrição |
Impacto |
|
v2.2.0-aliyun.1 |
2023-06-19 |
Adição de suporte à métrica de simultaneidade para dimensionamento preditivo. Otimização da lógica de processamento passivo do Knative. Melhoria na latência para consultas de métricas de cpu e memória em tempo real. |
Atualize em horários de baixo movimento. |
Abril de 2023
|
Versão |
Data de lançamento |
Descrição |
Impacto |
|
v2.1.0-aliyun.1 |
2023-04-26 |
Adição de suporte ao painel do Prometheus. Adição de suporte para intervalos de tempo personalizáveis para métricas históricas. |
Atualize em horários de baixo movimento. |
Julho de 2022
|
Versão |
Data de lançamento |
Descrição |
Impacto |
|
v1.0.0-aliyun.1 |
2022-07-13 |
Lançamento inicial. Suporte a métricas de cpu, memória, RT e QPS para dimensionamento preditivo. Suporte a dimensionamento por meio de Deployments, HPA e Knative. |
Sem impacto nas cargas de trabalho. |