2.4.2. HPA는 어떻게 작동합니까?
HPA(수평 Pod 자동 스케일러)는 Pod 자동 확장 개념을 확장합니다. HPA를 사용하면 부하 분산 노드 그룹을 생성하고 관리할 수 있습니다. 지정된 CPU 또는 메모리 임계값을 초과하면 HPA에서 Pod 수를 자동으로 늘리거나 줄입니다.
그림 2.1. HPA의 상위 수준 워크플로
HPA는 Kubernetes 자동 스케일링 API 그룹의 API 리소스입니다. 자동 스케일러는 동기화 기간 동안 기본값인 15초와 함께 컨트롤 루프로 작동합니다. 이 기간 동안 컨트롤러 관리자는 HPA의 YAML 파일에 정의된 CPU, 메모리 사용률 또는 둘 다에 대해 쿼리합니다. 컨트롤러 관리자는 HPA에서 대상으로 하는 각 Pod에 대해 CPU 또는 메모리와 같은 Pod별 Pod에 대한 리소스 지표 API에서 사용률 지표를 가져옵니다.
사용률 값 target이 설정되면 컨트롤러에서 사용률 값을 각 Pod의 컨테이너에서 동등한 리소스 요청의 백분율로 계산합니다. 그런 다음 컨트롤러는 모든 대상 Pod에서 평균 사용률을 사용하고 원하는 복제본 수를 확장하는 데 사용되는 비율을 생성합니다. HPA는 지표 서버에서 제공하는 metrics.k8s.io 에서 메트릭을 가져오도록 구성됩니다. 지표 평가의 동적 특성으로 인해 복제본 그룹의 스케일링 중에 복제본 수가 변동될 수 있습니다.
HPA를 구현하려면 모든 대상 Pod에 컨테이너에 리소스 요청이 설정되어 있어야 합니다.