Volcano device plugin is a Kubernetes device plugin that enables GPU resource management and sharing in clusters running Volcano scheduler.
The tool solves the problem of efficiently allocating and sharing GPU resources across multiple containers in Kubernetes. It works as a Daemonset that exposes the number of GPUs available on each node, monitors GPU health, and enables containers to request GPU resources. The plugin supports two modes of GPU allocation: GPU sharing through soft isolation at the container level using the volcano.sh/gpu-memory resource name, and GPU number allocation for workloads that need discrete GPU counts. This approach builds on the Kubernetes device plugin specification and integrates with Volcano's scheduling capabilities to enable GPU sharing that would not be possible with standard Kubernetes alone.
Teams should adopt this tool if they run Volcano scheduler and need to share GPUs across multiple workloads on the same node, or if they want fine-grained control over GPU allocation strategies. It suits clusters where maximizing GPU utilization through sharing is a priority. The plugin requires NVIDIA drivers, nvidia-docker, and Kubernetes 1.10 or later, with docker configured to use the nvidia runtime by default. It can be configured with different GPU strategies through command-line arguments, allowing operators to choose allocation policies that match their workload patterns.
The project maintains active development with regular updates to its configuration and documentation. The codebase shows ongoing refinement of GPU sharing mechanisms and strategy options. The tool includes comprehensive documentation covering prerequisites, deployment, and configuration options for different use cases.