The NVIDIA device plugin for Kubernetes is a Kubernetes device plugin that enables GPU resource management within Kubernetes clusters.
The plugin solves the problem of exposing and managing NVIDIA GPUs as schedulable resources in Kubernetes. It runs as a Daemonset on each node to automatically expose the number of GPUs available, track GPU health, and enable GPU-enabled containers to be scheduled and run within the cluster. The plugin implements the official Kubernetes device plugin API, allowing the scheduler to treat GPUs as first-class resources that can be requested and allocated to workloads.
Teams running GPU workloads on Kubernetes should adopt this tool. It suits any cluster where nodes have NVIDIA GPUs and workloads need reliable access to those devices. The plugin supports multiple GPU sharing strategies, including CUDA time-slicing and CUDA MPS, for scenarios where multiple containers need to access the same GPU. It can be deployed via Helm charts and integrates with GPU Feature Discovery for automatic node labeling based on GPU capabilities. The tool also supports advanced features like CDI integration and per-node configuration management through ConfigMaps and node labels.
The project maintains active development with regular updates addressing bug fixes and feature enhancements. The maintainers actively engage with community issues and contributions, indicating ongoing commitment to the tool's stability and evolution. Documentation is comprehensive, covering deployment scenarios from basic setup through advanced configurations, and the project provides clear guidance on prerequisites and integration with the broader Kubernetes GPU ecosystem.