AI/TLDR

Volcano

Kubernetes-native batch scheduler for AI, big data, and HPC workloads

GPU & Compute CloudsOpen source
Language
Go
License
Apache-2.0

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.

bashbash
kubectl apply -f https://raw.githubusercontent.com/volcano-sh/volcano/master/installer/volcano-development.yaml

Define 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.

yamlyaml
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: OnFailure

Submit and check the job

Apply the manifest and watch the job status.

bashbash
kubectl apply -f test-job.yaml
kubectl get vcjob test-job

Commands 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.

ToolStarsWhat it does
Ray★ 43.8kA distributed computing framework that scales Python and ML workloads for training, tuning, data processing, and serving.
Prefect★ 23.9kA Python-native workflow orchestration tool for scheduling, running, and monitoring data and ML pipelines.
Dagster★ 16.2kA data and ML pipeline orchestrator with a declarative asset model, built-in lineage, and observability.
Kubeflow★ 15.9kA Kubernetes toolkit that brings together pipelines, notebooks, and training operators for running ML workflows at scale.
Kedro★ 11kPython 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.6kA framework that runs AI jobs across clouds and Kubernetes, automatically finding and provisioning the cheapest available GPUs.
Metaflow★ 10.3kA Python framework from Netflix for building and running data science and ML workflows that scale from laptop to cloud.
Volcano★ 6kKubernetes-native batch scheduler for AI, big data, and HPC workloads