whatisgithub

What is k8s-device-plugin?

nvidia/k8s-device-plugin — explained in plain English

Analysis updated 2026-07-03

3,751GoAudience · ops devopsComplexity · 4/5Setup · hard

In one sentence

NVIDIA's Kubernetes device plugin makes GPUs visible to a container cluster so that machine learning jobs, video processing, and other GPU workloads can request and use graphics cards as a standard cluster resource.

Mindmap

mindmap
  root((k8s-device-plugin))
    What it does
      Exposes GPUs to Kubernetes
      Enables GPU scheduling
      Resource allocation
    Sharing Modes
      Time-slicing
      MPS multi-process
    Deployment
      Single kubectl command
      Helm chart production
      Config file options
    Prerequisites
      NVIDIA drivers
      Container Toolkit
      Kubernetes cluster
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Install the plugin on a Kubernetes cluster so machine learning training jobs can request NVIDIA GPUs as a standard resource alongside CPU and memory.

USE CASE 2

Enable time-slicing on a single GPU so multiple small inference workloads share the card, lowering hardware costs when no single job needs the full device.

USE CASE 3

Deploy the plugin with a Helm chart in production to manage GPU allocation through versioned, reproducible configuration.

USE CASE 4

Add GPU support to an existing Kubernetes cluster running video transcoding or model inference workloads by installing the plugin alongside the NVIDIA Container Toolkit.

What is it built with?

GoKubernetesHelmDocker

How does it compare?

nvidia/k8s-device-pluginitchyny/gojqoffchainlabs/prysm
Stars3,7513,7543,755
LanguageGoGoGo
Setup difficultyhardeasyhard
Complexity4/52/54/5
Audienceops devopsdeveloperops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires NVIDIA drivers and the NVIDIA Container Toolkit installed on every GPU node before the plugin can detect the hardware.

No specific license terms were mentioned in the explanation.

So what is it?

This project is a plugin that allows Kubernetes to recognize and use NVIDIA graphics cards (GPUs) installed in a server cluster. Kubernetes is a system that manages many containers (packaged software units) running across multiple machines. Without this plugin, Kubernetes has no way of knowing that GPUs exist or of assigning them to workloads that need them. Once the plugin is installed, software running inside the cluster can request GPU access the same way it requests memory or CPU time. This matters for machine learning training jobs, video processing, and other tasks that run much faster on a GPU than on a standard processor. The plugin can be deployed with a single command for basic testing, or through a tool called Helm for production use, which gives more control over configuration. It supports sharing a single GPU among multiple workloads through time-slicing or a technology called MPS, which can reduce hardware costs when no single job needs the full GPU. Configuration can be provided as command-line flags, environment variables, or a configuration file. The README covers prerequisites in detail, including the need to install NVIDIA drivers and the NVIDIA Container Toolkit before the plugin will work. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
I have a Kubernetes cluster with NVIDIA GPUs and I have already installed the drivers and Container Toolkit. Walk me through deploying the device plugin with Helm and verifying that GPUs appear as allocatable resources.
Prompt 2
Show me a Kubernetes pod manifest that requests one NVIDIA GPU for a PyTorch training job after the device plugin is installed.
Prompt 3
How do I configure the NVIDIA k8s-device-plugin to enable time-slicing so four pods can each use a quarter of a single GPU?
Prompt 4
My Kubernetes cluster has nodes with different NVIDIA GPU models. How does the device plugin report and handle mixed GPU types in the same cluster?

Frequently asked questions

What is k8s-device-plugin?

NVIDIA's Kubernetes device plugin makes GPUs visible to a container cluster so that machine learning jobs, video processing, and other GPU workloads can request and use graphics cards as a standard cluster resource.

What language is k8s-device-plugin written in?

Mainly Go. The stack also includes Go, Kubernetes, Helm.

What license does k8s-device-plugin use?

No specific license terms were mentioned in the explanation.

How hard is k8s-device-plugin to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is k8s-device-plugin for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.