Overview
Volcano is a Kubernetes-native batch scheduling system that extends the standard kube-scheduler. It adds features built for batch and elastic workloads, so jobs that need many pods to start together (gang scheduling) and to share a cluster fairly (queue management) run the way training and HPC frameworks expect.
It targets teams running AI, machine learning, and deep learning, plus bioinformatics and other big-data jobs on Kubernetes. Volcano integrates with common frameworks such as Spark, Flink, Ray, TensorFlow, PyTorch, Kubeflow, MPI, Horovod, MindSpore, and PaddlePaddle, so you keep your existing job definitions and let Volcano handle the scheduling.
In the compute-orchestration space, Volcano sits between your workloads and the cluster, deciding when and where grouped jobs run. It is an incubating project of the Cloud Native Computing Foundation (CNCF) and builds on the earlier kube-batch scheduler.
What it does
- Gang scheduling: a multi-pod job only starts once its minimum number of members can run, avoiding partial deployments that deadlock distributed training
- Queue management for sharing a cluster across teams and workloads with priorities
- Built as a Kubernetes-native scheduler that extends and enhances the standard kube-scheduler
- Integrations with AI/big-data/HPC frameworks including Spark, Flink, Ray, TensorFlow, PyTorch, Kubeflow, MPI, Horovod, MindSpore, and PaddlePaddle
- VolcanoJob (vcjob) CRD with task definitions, lifecycle management, specific queue, and priority
- CNCF incubating project with broad adoption across cloud, finance, manufacturing, and medical sectors
Getting started
Install Volcano into an existing Kubernetes cluster, then submit a batch job using the Volcano Job (vcjob) custom resource.
Install Volcano
Apply the Volcano installer manifest to your cluster. This deploys the scheduler, controllers, and admission components.
kubectl apply -f https://raw.githubusercontent.com/volcano-sh/volcano/master/installer/volcano-development.yamlDefine a Volcano Job
Create a vcjob manifest. minAvailable sets how many pods must be schedulable before the job runs (gang scheduling), and queue selects the scheduling queue.
apiVersion: batch.volcano.sh/v1alpha1
kind: Job
metadata:
name: test-job
spec:
minAvailable: 3
queue: default
tasks:
- replicas: 6
name: "default-nginx"
template:
metadata:
name: web
spec:
containers:
- image: nginx
name: nginx
resources:
requests:
cpu: "1"
restartPolicy: OnFailureSubmit and check the job
Apply the manifest and watch the job status.
kubectl apply -f test-job.yaml
kubectl get vcjob test-jobCommands and code are distilled from the project's own documentation — always check the official repo for the latest.
When to use it
- Run distributed deep-learning training (TensorFlow, PyTorch, MPI/Horovod) that needs all workers to start together via gang scheduling
- Share a GPU/CPU cluster across multiple teams using queues with priorities and fair-share policies
- Schedule big-data jobs such as Spark or Flink on Kubernetes with batch-aware scheduling
- Manage HPC and bioinformatics/genomics batch workloads on a Kubernetes cluster
How Volcano compares
Volcano alongside other open-source gpu & compute clouds tools AI/TLDR tracks, ranked by GitHub stars.
| Tool | Stars | What it does |
|---|---|---|
| Ray | ★ 43.8k | A distributed computing framework that scales Python and ML workloads for training, tuning, data processing, and serving. |
| Prefect | ★ 23.9k | A Python-native workflow orchestration tool for scheduling, running, and monitoring data and ML pipelines. |
| Dagster | ★ 16.2k | A data and ML pipeline orchestrator with a declarative asset model, built-in lineage, and observability. |
| Kubeflow | ★ 15.9k | A Kubernetes toolkit that brings together pipelines, notebooks, and training operators for running ML workflows at scale. |
| Kedro | ★ 11k | Python framework for production-ready data engineering and data science pipelines, hosted by the LF AI & Data Foundation: a project template, a Data Catalog of connectors, and a dependency-resolving pipeline abstraction. |
| SkyPilot | ★ 10.6k | A framework that runs AI jobs across clouds and Kubernetes, automatically finding and provisioning the cheapest available GPUs. |
| Metaflow | ★ 10.3k | A Python framework from Netflix for building and running data science and ML workflows that scale from laptop to cloud. |
| Volcano | ★ 6k | Kubernetes-native batch scheduler for AI, big data, and HPC workloads |
