Kueue란?

Kueue는 한마디로 배치 작업 스케줄링 도구다.

또한, Kubernetes에서 배치 워크로드(batch workloads)와 머신러닝 작업을 위한 큐잉 시스템이다. Google에서 개발한 오픈소스 프로젝트로, Kubernetes 네이티브 방식으로 작업 스케줄링과 리소스 관리를 제공한다.

주요 기능

큐 기반 스케줄링: 작업들을 큐에 넣어 순서대로 처리하며, 리소스가 부족할 때는 대기열에서 관리한다.

리소스 할당량 관리: ClusterQueue와 LocalQueue를 통해 네임스페이스별, 팀별로 리소스 사용량을 제한하고 관리할 수 있다.

멀티 테넌시 지원: 여러 팀이나 사용자가 동일한 클러스터를 공유하면서도 공정한 리소스 분배를 보장한다.

우선순위 기반 스케줄링: WorkloadPriorityClass를 통해 작업의 우선순위를 설정하여 중요한 작업을 먼저 실행할 수 있다.

핵심 개념

MLOps에서의 활용

GPU 클러스터에서 여러 ML 훈련 작업을 효율적으로 스케줄링하고, 팀별로 리소스 할당량을 관리하며, 실험 작업의 우선순위를 조정하는 데 매우 유용하다. 특히 비싼 GPU 리소스를 여러 데이터 사이언티스트와 ML 엔지니어가 공유해야 하는 환경에서 필수적인 도구다.

Volcano나 다른 배치 스케줄러와 비교했을 때, Kueue는 더 간단한 설정과 Kubernetes 네이티브 통합을 제공하는 것이 장점이다.

Redis vs Kueue 비교

Redis (Celery와 함께)