nvidia-k8s-device-plugin
Used to expose NVIDIA GPU resources to Kubernetes workloads via the device plugin framework.
What is nvidia-k8s-device-plugin?
The NVIDIA Kubernetes Device Plugin image packages the NVIDIA device plugin for Kubernetes. It enables Kubernetes to schedule and manage workloads that require NVIDIA GPUs by advertising GPU resources to the kubelet.
The plugin runs as a DaemonSet on all GPU-enabled nodes, registering the available GPU devices and ensuring they can be requested via pod resource requests (for example, resources.limits.nvidia.com/gpu: 1
). Without this plugin, Kubernetes has no native way of exposing GPUs to containers.
This image is commonly used in machine learning, deep learning, and high-performance computing workloads, where GPUs are critical for accelerating training and inference. It integrates seamlessly with NVIDIA’s GPU Operator and container runtime tooling.
How to use this image
The nvidia-k8s-device-plugin image is typically deployed as a DaemonSet in Kubernetes.
Examples:
<code># Deploy the NVIDIA device plugin to a Kubernetes cluster
kubectl create -f <https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/v0.16.2/nvidia-device-plugin.yml></code>
<code># Verify DaemonSet is running
kubectl get pods -n kube-system -l name=nvidia-device-plugin</code>
<code># Launch a pod that requests a GPU
kubectl run gpu-test --image=nvidia/cuda:12.2.0-base --limits="nvidia.com/gpu=1" -- nvidia-smi</code>
After deployment, workloads can request GPU resources by specifying limits in their pod definitions.
Image variants
The NVIDIA device plugin image is generally published under nvcr.io/nvidia/k8s-device-plugin
and available in these forms:
nvidia/k8s-device-plugin:<version>
Version-pinned images (e.g., nvidia/k8s-device-plugin:v0.16.2
). Recommended for production to ensure consistent behavior.
nvidia/k8s-device-plugin:latest
Tracks the most recent stable release. Useful for testing but not ideal for production use.
nvidia/k8s-device-plugin:rc / dev
Built from release candidates or development branches. Intended for contributors or teams testing new features.