넷플릭스, Kueue 도입으로 배치 컴퓨팅 효율 극대화
넷플릭스는 자체 관리형 배치 솔루션 CMB의 한계로 인해 쿠버네티스 네이티브(Kubernetes-Native) 전환을 추진함
Kueue 도입으로 기존 CMB의 복잡한 큐잉 및 스케줄링 로직을 대체하여 배치 워크로드(Batch Workload) 관리 효율화를 달성함
수백만 건의 배치 작업을 Kueue로 이전하며 제로 리프트(Zero Lift) 마이그레이션을 성공적으로 완료하고 자원 활용률(Resource Utilization) 증대를 이룸
Kueue의 선점(Preemption) 및 공정 공유(Fair Sharing) 기능을 통해 예약된 자원의 유휴 용량을 활용하고 중요 워크로드의 응답 시간을 단축함
CMB에서 Kueue로의 마이그레이션 동기
넷플릭스는 기존 자체 개발 배치 솔루션인 CMB(Compute Managed Batch)가 쿠버네티스(Kubernetes) 생태계 발전과 함께 기능적으로 뒤처지고, 새로운 기능(예: 선점 스케줄링) 개발에 어려움을 겪고 있었음.
레거시 시스템의 기술 부채(Technical Debt) 누적으로 인해 확장성 및 유지보수성에 한계 봉착
쿠버네티스 네이티브(Kubernetes-Native) 아키텍처 지향으로 전환하여 생태계 활용 및 개발 효율성 증대 목표
Kueue는 기존 CMB의 핵심 기능(공정 공유, 계층적 테넌트, 용량 관리)을 지원하면서도 쿠버네티스 스케줄러와의 통합 용이성을 제공하여 마이그레이션 결정의 주요 요인이 됨.
Kueue 도입을 통한 아키텍처 개선점
Kueue는 쿠버네티스 기본 API(v1.Pod, batch/v1.Job)를 활용하여 기존 Titus 스케줄링 프로파일과의 통합을 용이하게 함.
선점(Preemption) 기능 내장: CMB에서 구현하기 어려웠던 선점 기능을 Kueue가 기본 지원하여 중요 워크로드의 우선순위 보장 및 자원 활용률(Resource Utilization) 극대화 가능
계층적 쿼터 관리(Hierarchical Quota Management): 테넌트 계층 구조를 Kueue의 ClusterQueue 및 LocalQueue로 매핑하여 복잡한 용량 관리 및 공정 공유(Fair Sharing) 구현
All-or-Nothing 스케줄링: 작업에 필요한 모든 리소스가 확보될 때까지 스케줄링을 보류하여 작업 실패율(Job Failure Rate) 감소 및 안정성 향상.
수백만 건 배치 작업의 제로 리프트(Zero Lift) 마이그레이션 전략
넷플릭스는 CMB 사용자 경험을 유지하기 위해 API 호환성(API Parity)을 최우선으로 고려하며 마이그레이션을 진행함.
투명한 전환(Transparent Migration): 사용자에게는 기존 CMB 인터페이스를 그대로 제공하고, 내부적으로 Kueue로 전환하여 고객 경험(Customer Experience) 저해 최소화
단계적 전환 및 롤백 용이성: UI에서 버튼 클릭만으로 Kueue 활성화/비활성화가 가능하도록 설계하여 운영 부담 감소 및 안정적인 전환(Stable Transition) 프로세스 구축
복잡한 사용 사례 우선 마이그레이션: 가장 크고 복잡한 고객의 작업을 먼저 이전하여 기술적 난제 조기 해결 및 성공 경험 축적.
Kueue의 공정 공유(Fair Sharing) 및 선점(Preemption) 기능 활용
Kueue 도입 후, 예약된 용량(Reserved Capacity)이 유휴 상태일 때 다른 테넌트에게 동적으로 할당하는 유휴 자원 활용(Idle Resource Utilization)이 가능해짐.
선점 기반 공정 공유(Preemption-based Fair Sharing): 예약된 자원이 사용되지 않을 경우, 해당 자원을 다른 테넌트에게 임시로 대여하고 필요시 회수하여 자원 효율성(Resource Efficiency) 증대
우선순위 기반 선점(Priority-based Preemption): 낮은 우선순위의 워크로드를 중단시키고 높은 우선순위의 워크로드를 먼저 실행시켜 비즈니스 중요 워크로드의 처리 시간(Turnaround Time) 단축
이러한 기능들은 전반적인 자원 활용률(Average Resource Utilization)을 크게 증가시키는 데 기여함.
고부하 환경에서의 Kueue 성능 튜닝
넷플릭스는 자체 테스트 환경에서 Kueue를 기본 설정값보다 훨씬 높은 QPS, Burst, GroupKindConcurrency로 운영하며 성능을 검증함.
대규모 워크로드 시뮬레이션: 실제 운영 환경과 유사한 부하 테스트를 통해 잠재적 성능 병목(Performance Bottleneck) 사전 식별 및 최적화 방안 모색
동시성 제어(Concurrency Control): Kueue의 동시성 관련 설정을 조정하여 수백만 건의 배치 작업이 동시에 처리될 때 발생할 수 있는 시스템 불안정성(System Instability) 방지
이러한 사전 튜닝 과정을 통해 프로덕션 환경에서 안정적인 성능을 확보할 수 있었음.