Volcano
- CNCF Sandbox 프로젝트로, 다양한 스케줄링 정책과 큐 기반 배치 기능 제공.
- 상세 링크 : 쿠버네티스에서 AI/HPC 배치를 효율적으로! - Volcano (CNCF AI Project)
Apache YuniKorn https://yunikorn.apache.org/
-
리소스 기반 잡 큐를 세밀하게 컨트롤하는 기능 제공
-
Apache YuniKorn**은 Kubernetes 및 YARN 클러스터 환경을 위한 리소스 스케줄러(Resource Scheduler) 프로젝트로, 클라우드 네이티브 애플리케이션의 효율적인 리소스 공유 및 예약 관리를 목적으로 한다.
CNCF 인큐베이팅 프로젝트이며, Apache 재단 소속이다. -
주요 특징
- 멀티테넌시 지원
서로 다른 사용자 그룹/워크로드 간에 리소스를 공정하게 분배하고 우선순위를 지정함. - 플러그인 구조
다양한 스케줄링 정책을 쉽게 추가할 수 있는 모듈형 아키텍처. - 워크로드 최적화
Batch, ML, Streaming, Interactive 등의 다양한 워크로드 특성에 맞춘 스케줄링 전략 지원. - Resource Fairness & Queuing
Capacity Scheduler 기반 큐 트리 구조를 사용하여 리소스 공정성 유지. - Kubernetes 네이티브 통합
K8s 스케줄러를 대체하거나 보완할 수 있으며, 스케줄링 인터셉터로 작동 가능. - Gang Scheduling
다수의 작업이 동시에 스케줄되어야 할 경우(예: MPI Job)에 유용.
- 멀티테넌시 지원
-
구성 요소
- Scheduler Core: 리소스 요청을 받아 정책 기반으로 처리
- Shim Layer: Kubernetes 또는 YARN 등과의 통합 계층
- Web UI / REST API: 스케줄링 상태 및 큐 관리 시각화 및 제어
-
사용 예시
- Kubernetes 클러스터에서 Spark, Flink, TensorFlow 등 Batch/AI 워크로드 운영 시
- 다양한 사용자 및 팀 간에 클러스터 리소스를 효율적으로 공유하고자 할 때
- 자체적인 큐 기반 리소스 정책을 적용하고자 할 때
-
주요 사용자 사례
- Alibaba Cloud, Cloudera, Apple 등에서 사용 또는 기여 중
- Alibaba Cloud, Cloudera, Apple 등에서 사용 또는 기여 중
Kueue https://kueue.sigs.k8s.io/
-
Kubernetes SIG에서 개발 중인 경량 배치 스케줄러, Job 큐 기반 설계 기능 등 Kubernetes 위에서 동작하는 클라우드 네이티브 배치 작업 큐 툴
-
주요 기능
-
작업 큐 관리
우선순위 기반 Queueing:StrictFIFO,BestEffortFIFO같은 다양한 전략을 통해 작업을 효율적으로 대기 및 실행합니다. -
고급 리소스 관리
Quota & Fair Sharing: 다중 테넌트 지원을 위해 쿼터 기반 자원 할당과 공정 공유를 설정할 수 있습니다..
ResourceFlavors: 다양한 노드 유형(x86/ARM, GPU 종류, spot/on-demand 등)에 대응하는 flavor 정의로 리소스를 세분화하고, 유연하게 사용할 수 있습니다.
Flavor Fungibility: 특정 flavor가 부족할 경우, 대체 가능한 다른 flavor의 자원을 자동으로 사용할 수 있습니다.
Preemption & Cohorts: 우선순위나 정책에 따라 작업 선점이 가능하며, 코호트 단위 자원 공유 및 제어가 지원됩니다. -
폭넓은 통합성
Kubernetes 에코시스템과 협업:
kube-scheduler,cluster-autoscaler,kube-controller-manager등 기존 컴포넌트를 덮어쓰지 않고 complement 합니다.
지원 워크로드 유형: BatchJob, Kubeflow, RayJob, JobSet, 일반 Pod/PodGroup 등 다양하게 호환됩니다. -
운영 및 모니터링
Prometheus 메트릭: 기본 제공 메트릭으로 큐 상태나 작업 지연 등을 실시간 모니터링 가능 .
큐 가시성 API:QueueVisibility,VisibilityOnDemand같은 feature-gate를 통해 대기 중인 작업 상태를 확인 가능. -
멀티 클러스터 지원 (MultiKueue)
중앙 관리 클러스터에서 여러 워커 클러스터로 Workload를 전파하고 실행 클러스터 하나가 작업을 수행하는 구조를 제공합니다. 또한 각 클러스터에 쿼터 기반 Workload 디스패치가 가능 . -
설치 및 커맨드라인 도구
Kubernetes 1.23+ 환경에서 간단히 Helm 또는kubectl apply로 설치 가능.
kubectl-kueue (kueuectl): ResourceFlavor, LocalQueue, ClusterQueue, Workload 등을 생성/조회/삭제하는 CLI 도구 제공.
-


