volcano-sh/volcano
A Cloud Native Batch System (Project under CNCF)
Volcano – AI/ML, 빅데이터, HPC를 위한 클라우드 네이티브 배치 스케줄러
무엇인가요 – Volcano는 Kubernetes 네이티브 배치 작업 스케줄러로, 기본 kube-scheduler에 고처리량, 고성능 워크로드를 위한 풍부한 기능을 확장합니다. AI/ML 트레이닝, 딥러닝, 유전체학, Spark/Flink 작업, MPI/Horovod, 그리고 기타 "빅데이터" 또는 HPC 워크로드를 Kubernetes 클러스터에서 실행하기 위해 설계되었습니다.
왜 중요한가요 – 표준 Kubernetes 스케줄링은 지연 시간에 민감한 서비스에 최적화되어 있지만, 간접 스케줄링, 리소스 패킹, 또는 토폴로지 인식 배치가 필요한 대규모 병렬 GPU 중심 작업에는 부적합합니다. Volcano는 이러한 기능을 추가하면서도 Kubernetes API 및 CRD와 완전히 호환되며, AI 트레이닝 파이프라인, 데이터 처리 작업, 과학적 시뮬레이션을 대규모로 실행할 수 있게 해줍니다.
핵심 기능
- 간접 스케줄링 (Gang Scheduling) – 분산 작업의 모든 포드가 동시에 시작되도록 보장하여 MPI, TensorFlow, PyTorch, Horovod 등에서 데드락을 방지합니다.
- 리소스 인식 배치 – GPU, CPU, 메모리, 사용자 정의 리소스를 지원하며, 토폴로지 인식 및 네트워크 인식 스케줄링을 통해 분할을 줄이고 성능을 향상시킵니다.
- 작업 라이프사이클 관리 – 내장된
Job및JobSetCRD, 자동 재시도, 백오프, 작업 완료 추적 기능을 제공합니다. - 우선순위 및 프리에임션 – 고우선순위 트레이닝 작업이 저우선순위 배치 작업을 우선적으로 실행할 수 있도록 합니다.
- 확장 가능한 플러그인 – 스케줄러, 어드미션, 컨트롤러 플러그인을 특정 프레임워크에 맞게 사용자 정의할 수 있습니다.
- 모니터링 및 UI – 선택적 Prometheus 메트릭, Grafana 대시보드, 웹 대시보드를 통해 작업을 시각적으로 확인할 수 있습니다.
생태계 통합 (선택 사항)
| 프레임워크 / 도구 | 통합 포인트 |
|---|---|
| Spark | K8s 상의 Spark용 스케줄러 백엔드, Spark Operator 지원 |
| Flink | Flink-on-K8s Operator용 커스텀 스케줄러 |
| Ray / KubeRay | Ray 클러스터용 직접 Volcano 백엔드 |
| TensorFlow / PyTorch / MXNet / PaddlePaddle / MindSpore | 전용 플러그인 및 예제 매니페스트 |
| Kubeflow Trainer / Arena | Volcano 기반 작업 정의 |
| MPI / Horovod | 분산 MPI 작업용 간접 스케줄링 |
| Argo | Argo 워크플로우용 리소스 스케줄러로 Volcano |
| Cromwell, Kthena, Grove, LeaderWorkerSet | 다양한 워크플로우 엔진용 백엔드 지원 |
일반적인 사용 사례 (프로젝트에서 강조)
- GPU 클러스터에서 대규모 AI 모델 트레이닝 (예: LLM 사전 학습, 지식 증류).
- Spark 또는 Flink를 사용한 분산 데이터 처리 파이프라인.
- 많은 CPU 코어와 고속 인터커넥트를 필요로 하는 생물정보학/유전체학 파이프라인.
- 기상학, 금융, 제조업에서 노드 수준의 밀접한 조정이 필요한 HPC 시뮬레이션.
- AI 워크로드와 지연 시간에 민감한 서비스가 공존하는 멀티테넌트 클러스터.
빠른 시작 (Kubernetes 클러스터에 설치)
- 사전 요구 사항 – CRD 지원이 있는 Kubernetes 1.12+.
- ワン라인 설치 (x86_64 및 arm64에서 작동):
이 명령어는 어드미션 컨트롤러, 컨트롤러 매니저, 스케줄러 포드를 포함한kubectl apply -f https://raw.githubusercontent.com/volcano-sh/volcano/master/installer/volcano-development.yamlvolcano-system네임스페이스를 생성합니다. - 옵션 Helm 설치 – 공식 차트를 추가하고 설치:
helm repo add volcano-sh https://volcano-sh.github.io/helm-charts helm install volcano volcano-sh/volcano -n volcano-system --create-namespace - 모니터링 추가 (대시보드 필요 시):
kubectl create -f installer/volcano-monitoring.yaml - UI 탐색 – 작업, 리소스, 이벤트를 시각적으로 확인할 수 있는 웹 UI는 Volcano Dashboard 리포지토리에서 확인하세요.
커뮤니티 및 거버넌스
- CNCF 인큐베이션 프로젝트 – 클라우드 네이티브 컴퓨팅 재단 하에 운영됩니다.
- Slack 및 메일링 리스트 – CNCF Slack의 활성
#volcano채널, Google 그룹 메일링 리스트, 중국어 사용자를 위한 WeChat 그룹. - 정기적인 커뮤니티 미팅 – 공개된 의제 및 회의록, KubeCon (2019–2026)의 발표 녹화본 (AI, 빅데이터, HPC 사용 사례 포함).
- 기여 방법 – 수백 명의 기여자. Travis, Go Report Card, OpenSSF 스코어카드 배지로 CI를 통해 건강한 코드 품질을 보장합니다.
TL;DR
Volcano는 일반적인 Kubernetes 클러스터를 AI/ML, 빅데이터, HPC 워크로드에 최적화된 프로덕션 수준의 배치 작업 엔진으로 변환합니다. 간접 스케줄링, GPU 인식 배치, 우선순위/프리에임션, 주요 AI 프레임워크와의 깊은 통합을 제공하며, Kubernetes API 및 생태계에 완전히 네이티브입니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트