Volcano
IncubatingAI InfrastructureVolcano is a batch scheduling system for Kubernetes, built to handle workloads that the default kube-scheduler doesn't handle well: gang scheduling, queue management, fair-share and priority-based resource allocation, and job-level lifecycl
What it is
Volcano is a batch scheduling system for Kubernetes, built to handle workloads that the default kube-scheduler doesn't handle well: gang scheduling, queue management, fair-share and priority-based resource allocation, and job-level lifecycle management for things like distributed training jobs, MPI jobs, and Spark on Kubernetes. It plugs in as a scheduler plugin and CRD set (Job, Queue, PodGroup) rather than replacing the Kubernetes scheduler outright — it extends it for high-throughput, multi-tenant batch and AI/ML compute.
If you've hit the wall where kube-scheduler happily starts half a distributed job and leaves the rest pending forever (classic deadlock with gang-scheduled workloads), Volcano is the tool built specifically to solve that.
Who builds it and why
Volcano is a CNCF incubating project with 448 contributors and active commit history through mid-2026. It originated from Huawei's internal AI/big-data scheduling needs and was donated to CNCF; the contributor base has since broadened beyond a single vendor, which is part of why it made it past sandbox into incubating status. The motivation is straightforward: Kubernetes was designed for long-running services, not batch/HPC-style workloads, and Volcano exists to close that gap without forking Kubernetes itself.
Production readiness signal
Incubating status in CNCF means it's cleared a bar for adoption breadth, governance, and code health — not the same as "graduated," but not experimental either. 5,734 GitHub stars is modest for a project this mature, which tracks with its niche: it's infrastructure plumbing for batch/AI scheduling, not a broadly visible dev-facing tool, so star count understates actual production usage.
448 contributors and a commit as recent as 2026-07-01 indicate active maintenance, not an abandoned donation. Apache-2.0 licensing and Go implementation are standard and unremarkable — no red flags there. v1.15.0 suggests a project past its initial API churn, though you should still check the changelog for breaking changes between minor versions before upgrading in place, particularly around CRD schema changes in Job/Queue/PodGroup.
What's not publicly available: founding date and a canonical maintainer-authored description. If you need SLA-grade support commitments, that's a conversation with a vendor (several offer commercial Volcano support), not something to infer from the OSS repo.
Who should use this
- Teams running distributed ML training (Horovod, PyTorch DDP, TensorFlow) on Kubernetes who need gang scheduling so jobs don't partially start and deadlock.
- Platform teams running multi-tenant GPU/CPU clusters who need queue-based fair-share scheduling instead of first-come-first-served.
- Organizations migrating Spark, Flink, or MPI batch workloads onto Kubernetes from YARN or bare-metal HPC schedulers.
Who should NOT use this
- Teams running standard stateless microservices — Volcano adds scheduling complexity you don't need; kube-scheduler is fine.
- Small clusters with single-tenant, low-contention workloads — the queue/priority machinery is overhead without a resource contention problem to solve.
- Teams wanting a fully managed, zero-ops solution — Volcano is a scheduler you operate yourself; if you want someone else to run the queueing logic, look at a managed batch/AI platform instead.
- Shops already deep in Kubeflow's own scheduling or Slurm-on-bare-metal with no plan to containerize — adding Volcano on top of an already-working non-K8s HPC stack is unnecessary migration risk.
Alternatives
- Apache YuniKorn — CNCF batch scheduler with similar gang-scheduling and queue goals, stronger roots in big-data (Spark/Flink) scheduling patterns.
- Kueue — Kubernetes SIG-backed job queueing system, lighter-weight, increasingly the default choice if you want something closer to upstream Kubernetes conventions.
- Slurm (non-Kubernetes) — still the default in traditional HPC shops; relevant if you haven't committed to Kubernetes for batch/AI workloads at all.
Pricing
Fully open source, Apache-2.0. No licensing cost. Commercial support is available from third-party vendors, but that's outside the project itself — budget for your own operational overhead (cluster ops, upgrades, on-call) regardless.