Service Configuration
medium

Service Configuration Question #019e3a4f

Question Statement
Service Configuration
#kubernetes
#horizontal-pod-autoscaler
#autoscaling
#hpa
Medium

Como funciona o escalonamento automático de pods horizontal (Horizontal Pod Autoscaling) no Kubernetes?

A

O controlador Horizontal Pod Autoscaler adiciona mais CPU ou memória aos pods quando a carga está acima do limite configurado e reduz CPU ou memória quando a carga está abaixo.

B

O controlador Horizontal Pod Autoscaler adiciona mais pods quando a carga está acima do limite configurado, mas não reduz o número de pods quando a carga está abaixo.

C

O controlador Horizontal Pod Autoscaler adiciona mais pods ao DaemonSet especificado quando a carga está acima do limite configurado e reduz o número de pods quando a carga está abaixo.

D

O controlador Horizontal Pod Autoscaler adiciona mais pods quando a carga está acima do limite configurado e reduz o número de pods quando a carga está abaixo.

Correct

Official Explanation / Community Explanations

O Horizontal Pod Autoscaler (HPA) escala automaticamente o número de pods em um replication controller, deployment, replica set ou stateful set com base na utilização observada de CPU (ou, com métricas personalizadas, com base em outras métricas fornecidas pela aplicação). O controlador HPA ajusta periodicamente a contagem desejada de réplicas para corresponder ao valor da métrica observada ao alvo especificado pelo usuário.

Como Funciona
O HPA é implementado como um recurso da API do Kubernetes e um controlador. O controlador consulta o servidor de métricas (ou API de métricas personalizadas) para o uso atual de recursos dos pods, calcula o número desejado de réplicas usando a fórmula:

desiredReplicas = ceil[currentReplicas * (currentMetricValue / desiredMetricValue)]

Em seguida, atualiza o subrecurso de escala da carga de trabalho alvo (por exemplo, Deployment) para a nova contagem de réplicas. O escalonamento é realizado em um loop com um período de sincronização configurável (padrão 15 segundos). O HPA pode escalar tanto para cima quanto para baixo, com janelas de estabilização configuráveis para evitar oscilações.

Por que a resposta correta está certa
A resposta correta afirma que o HPA adiciona mais pods quando a carga está acima do limite e reduz o número de pods quando a carga está abaixo. Isso descreve com precisão o comportamento principal: o HPA ajusta a contagem de réplicas em ambas as direções com base nas métricas observadas em relação ao alvo.

Por que as respostas incorretas estão erradas

  • A opção que afirma que o HPA adiciona mais CPU ou memória aos pods está incorreta porque o HPA escala o número de pods, não os recursos alocados aos pods existentes. As solicitações/limites de recursos são definidos na criação do pod e não podem ser alterados pelo HPA.
  • A opção que afirma que o HPA adiciona mais pods, mas não os reduz, está incorreta porque o HPA foi projetado para escalar tanto para baixo quanto para cima, a menos que explicitamente configurado com uma contagem mínima de réplicas ou políticas de escalonamento que impeçam a redução.
  • A opção que especifica que o HPA adiciona mais pods a um DaemonSet está incorreta porque DaemonSets não são escaláveis pelo HPA; o HPA funciona com recursos escaláveis como Deployments, ReplicaSets e StatefulSets. DaemonSets executam um pod por nó e não se destinam ao escalonamento horizontal baseado em carga.