Cluster Autoscaler의 핵심 역할
Cluster Autoscaler는 Kubernetes 클러스터의 노드 개수를 자동으로 조정하는 데몬 프로세스입니다. 크게 두 가지 시나리오에서 작동합니다: (1) 클러스터에 스케줄할 수 없는(Pending) 파드가 존재하여 리소스 부족 상태일 때 노드를 추가하고, (2) 노드 활용률이 낮아 파드들을 다른 노드로 이동 가능할 때 노드를 제거합니다.
아키텍처 및 작동 원리
Cluster Autoscaler는 StaticAutoscaler를 중심으로 한 컨트롤 루프 구조로 동작합니다. 매 주기마다 클러스터의 Pending 파드를 감지하고, Kubernetes 스케줄러 로직을 내부적으로 시뮬레이션하여 어느 노드 그룹에 노드를 추가해야 할지 결정합니다. 축소 시에는 노드 제거 전 시뮬레이션을 통해 모든 파드를 다른 노드에 안전하게 재스케줄할 수 있는지 미리 검증합니다.
실무에서의 주요 고려사항
Cluster Autoscaler는 노드 그룹(Node Group)이라는 추상화 단위로 클라우드 인프라와 통신하며, AWS EC2 Auto Scaling Group, GCP MIG 등으로 구현됩니다. 동일한 노드 그룹 내 모든 노드는 라벨, 테인트, 리소스가 동일해야 하며, 여러 노드 그룹을 관리할 경우 Expander 메커니즘으로 최적의 그룹을 선택합니다. 축소는 1회에 1개 노드씩 진행되므로 대규모 축소는 시간이 소요될 수 있습니다.