K8s HPA maxReplicas
정의 (Definition)
maxReplicas는 Horizontal Pod Autoscaler(HPA)가 설정할 수 있는 레플리카 수의 상한 이며, 목표 메트릭이 요구하는 레플리카가 더 크더라도 최종 결과는 이 값을 초과하지 않습니다.
문제가 되는 배경 (Problem Context)
메트릭 오류/노이즈/급격한 스파이크가 발생하면 HPA가 과도하게 확장하려고 시도할 수 있습니다. 이때 상한이 없으면 파드·노드가 연쇄적으로 늘면서 비용과 장애 반경이 커집니다.
핵심 메커니즘 (How it Works)
HPA는 목표 메트릭으로 “원하는 레플리카”를 계산한 뒤, minReplicas와 maxReplicas 범위로 클램프(clamp) 합니다.
불변 조건과 보장 범위 (Invariants & Guarantees)
- 보장: HPA가 제어하는 대상에 한해, 목표 레플리카는
maxReplicas를 넘지 않습니다. - 비보장:
maxReplicas를 늘렸다고 해서 실제로 그만큼 스케줄링/기동이 보장되지는 않습니다(노드 용량·쿼터·PDB·이미지 풀 등).
비유 (Analogy)
maxReplicas는 자동 증설에 대한 예산 상한선 입니다. 필요가 커도 결제 한도 이상은 지출되지 않습니다.
실무적 함의 (Operational Implications)
- 비용/장애 반경 통제 장치 로 취급합니다.
- 노드 오토스케일러를 사용한다면,
maxReplicas와 노드 확장 한도가 모순되지 않도록 맞춥니다.
주의사항 / 오해 (Pitfalls & Misconceptions)
- 너무 낮게 설정 하면 실제 부하가 증가했을 때 확장이 막혀 지연/에러가 증가할 수 있습니다.
maxReplicas만 올려두고 리소스 요청량(request)·쿼터·노드 풀 용량 을 조정하지 않으면 Pending만 늘어날 수 있습니다.
References
- Kubernetes Docs: Horizontal Pod Autoscaling
- Related Note: K8s HPA minReplicas
- Related Note: K8s HPA behavior