
당근 SRE팀이 PodAffinity와 Kyverno를 활용해 고정 노드 그룹에서 탈출하며 성능을 2배 높인 실전 기록
중단하기 어려운 Job 워크로드의 제약을 극복하고 EKS 노드 그룹에 오토스케일링을 도입한 과정을 상세히 다룹니다. 단순한 설정 도입을 넘어 운영 중 마주한 kubelet 과부하, EBS 병목 등 하부 인프라의 한계를 엔지니어링으로 돌파한 사례를 공유합니다.
EKS 환경에서 Argo Workflow, Airflow 등 대규모 Job 워크로드를 운영하며 비용 효율화와 성능 최적화를 동시에 달성하고자 하는 SRE 및 DevOps 엔지니어에게 추천합니다.
시작과 끝이 명확하지만 중단 시 재실행 부담이 큰 Job 워크로드의 특성상, 고정된 크기의 노드 그룹을 운영하며 자원 낭비와 처리 지연 문제를 겪고 있었습니다.
PodAffinity를 이용한 Bin-packing 전략으로 노드 집적도를 높이고, Kyverno로 강제 종료 방지 설정을 자동화했으며, kubelet 설정 최적화 및 EBS 성능 증설을 통해 병목을 해결했습니다.
평균 Pod 대기 시간이 49% 감소하고 Argo Workflow 실행 시간이 47% 단축되었으며, 수동 운영 부담을 제거함과 동시에 자원 활용의 유연성을 확보했습니다.
Trade-off
노드의 빈번한 생성과 삭제로 인해 컨테이너 이미지 캐싱 효율이 저하되어, 결과적으로 평균 이미지 풀(Image Pull) 시간이 이전 대비 약 2~3배 정도 증가했습니다.
컴퓨팅 자원을 최대한 밀도 있게 사용하기 위해 Pod를 가능한 한 적은 수의 노드에 집중시켜 배치하는 스케줄링 전략입니다.
쿠버네티스 리소스를 생성하거나 변경할 때 정책에 따라 데이터를 검증하거나 수정하는 정책 엔진입니다.
워크로드의 요구사항에 맞춰 최적의 노드를 신속하게 프로비저닝하고 제거하는 쿠버네티스 전용 오토스케일러입니다.




