Our Journey to Autoscaling EKS Node Groups for Job Workloads
두줄요약
Job 워크로드는 중단에 취약해 EKS 노드그룹 오토스케일링이 어려웠습니다. 이를 해결하기 위해 PodAffinity로 bin-packing을 유도하고, 애노테이션으로 축소 중 종료를 막았습니다.
구조와 흐름
- EKS 환경에서 Job 워크로드는 중단에 취약해 노드 축소 시 작업이 끊기기 쉬운 문제 정리
- Job 전용 노드그룹 분리로 서버 워크로드와의 간섭은 줄였지만, 고정 노드 수로 인한 비용과 처리 지연 문제가 남은 상황
- 오토스케일링 적용을 위해 Bin-packing과 비강제 종료 방지라는 두 축으로 접근
선택 이유
- 별도 스케줄러 대신 PodAffinity를 사용해 Job 파드를 한 노드에 모으는 방식 선택
- Kyverno로 Argo Workflow 기반 Job 파드에 라벨과 PodAffinity를 일괄 주입해 운영 부담 완화
- Cluster Autoscaler와 Karpenter의 비축출 애노테이션을 활용해 축소 중 강제 종료 방지




