Service Configuration Question #019e3a4f
Qual mecanismo pode ser usado para ajustar automaticamente a quantidade de recursos para uma aplicação?
Horizontal Pod Autoscaler (HPA)
Kubernetes Event-driven Autoscaling (KEDA)
Cluster Autoscaler
Vertical Pod Autoscaler (VPA)
Official Explanation / Community Explanations
O Horizontal Pod Autoscaler (HPA) é o mecanismo correto para ajustar automaticamente a quantidade de recursos (especificamente o número de réplicas de pods) para uma aplicação no Kubernetes. O HPA escala o número de pods em um replication controller, deployment ou replica set com base na utilização observada de CPU (ou outras métricas personalizadas). Ele funciona consultando periodicamente o metrics server para obter o uso de recursos e ajustando a contagem de réplicas para atingir a utilização alvo definida na configuração do HPA.
Como Funciona
O HPA é implementado como um recurso da API do Kubernetes e um controller. O controller manager executa um loop que verifica as métricas (por exemplo, CPU, memória ou métricas personalizadas) em relação ao valor alvo. Se a utilização atual se desviar do alvo, o controller ajusta o número de réplicas de acordo. A fórmula usada é desiredReplicas = ceil[currentReplicas * (currentMetricValue / desiredMetricValue)]. O HPA requer que o Metrics Server esteja implantado no cluster.
Por que o Valor Correto está Certo
O Horizontal Pod Autoscaler (HPA) aborda diretamente a questão ao escalar automaticamente o número de réplicas de pods com base no uso de recursos. É o mecanismo padrão do Kubernetes para escalonamento horizontal, garantindo que as aplicações tenham recursos suficientes para lidar com a carga, evitando o provisionamento excessivo.
Por que os Valores Incorretos estão Errados
- Kubernetes Event-driven Autoscaling (KEDA) é uma extensão que permite o escalonamento automático com base em eventos de fontes externas (por exemplo, tamanho da fila de mensagens, métricas personalizadas). Embora também possa ajustar recursos, não é o mecanismo nativo principal; é um complemento que funciona junto com o HPA. A pergunta pede um mecanismo que pode ser usado, e o HPA é a solução nativa e integrada.
- Cluster Autoscaler ajusta o número de nós no cluster, não os recursos para uma aplicação. Ele escala a camada de infraestrutura, não os próprios pods da aplicação.
- Vertical Pod Autoscaler (VPA) ajusta as solicitações e limites de recursos (CPU/memória) de pods existentes, não o número de réplicas. Ele altera a alocação de recursos por pod, enquanto a pergunta trata do ajuste da quantidade de recursos para uma aplicação, que normalmente se refere ao escalonamento horizontal (número de réplicas).