Skip to content

NVIDIA GPU Operator

NVIDIA GPU Operator

Category: Hardware Type: Cluster Service Tags: gpu · nvidia · time-slicing · vm-passthrough · operator Editable: Yes


Overview

The NVIDIA GPU Operator automates the management of NVIDIA GPU resources in a Kubernetes cluster. It installs and configures all necessary software components — GPU drivers, container runtime (nvidia-container-toolkit), device plugin, and monitoring exporters — so that GPU-accelerated workloads can be scheduled on GPU nodes without manual configuration. It also configures time-slicing, which allows multiple containers to share a single GPU.


How It Works

Cluster Service — Installed once per cluster by an administrator. Once active, GPU nodes are automatically configured and GPU resources become schedulable for any workload in the cluster — no per-project setup needed.


Prerequisites

  • At least one cluster node with an NVIDIA GPU (Pascal architecture or newer recommended)
  • Nodes must be running a supported Linux kernel
  • For k3s clusters: the plugin must be configured with k3s: true (see configuration below)
  • For open kernel modules: the open_kernel_modules flag should match your driver installation type

Installation

  1. Open Terra and navigate to the Plugin Marketplace
  2. Search for "NVIDIA GPU Operator"
  3. Click Install
  4. Fill in the configuration fields below
  5. Click Confirm to deploy

Configuration

Install-Time Fields

Field Details
version select · Required
GPU Operator version to install (v25.10.1 or v25.3.4)
install_crds boolean · Optional · Default: false
Install the GPU Operator CRDs. Set to true on first install; false for subsequent installs to avoid CRD conflicts.
open_kernel_modules boolean · Optional · Default: false
Use open kernel modules for the NVIDIA driver (required for open-source kernel module installations)
k3s boolean · Optional · Default: true
Configure for k3s clusters (sets containerd socket path to /run/k3s/containerd/containerd.sock)
slice_count int · Required · Default: 4
Number of time-slices per GPU. Each GPU is divided into this many virtual GPU slices.
helm_repo string · Required · Default: https://helm.ngc.nvidia.com/nvidia
Helm repository URL for the GPU Operator chart

Notes

  • This plugin is editable — you can update slice count, version, and flags after install via Terra
  • install_crds should be true on the first installation only. If you are reinstalling or running multiple GPU Operator instances, set it to false to avoid CRD conflicts
  • slice_count controls GPU time-slicing — a value of 4 means each physical GPU appears as 4 schedulable GPU resources. Higher values allow more concurrent workloads per GPU at the cost of per-workload performance
  • After installation, GPU nodes will be labelled nvidia.com/gpu.present: "true" and workloads can request GPUs with resources.limits["nvidia.com/gpu"]

plugins/nvidia-gpu-operator/terra.yaml
resource_id: nvidia-gpu-operator
name: NVIDIA GPU Operator
icon: https://www.nvidia.com/content/nvidiaGDC/us/en_US/about-nvidia/legal-info/logo-brand-usage/_jcr_content/root/responsivegrid/nv_container_392921705/nv_container/nv_image.coreimg.100.410.png/1703060329053/nvidia-logo-vert.png
description: |
  Enable GPU acceleration for compute workloads on NVIDIA GPUs. https://docs.nvidia.com/datacenter/cloud-native/gpu-operator/latest/gpu-sharing.html
category: Hardware
tags:
  - gpu
  - nvidia
  - time-slicing
  - vm-passthrough
  - operator
  - cluster-level
editable: true
fields:
  - name: install_crds
    description: |
      Install the NVIDIA GPU Operator's Custom Resource Definitions (CRDs). 
      If this is the first or only install of the NVIDIA GPU Operator in 
      the cluster, you should set this to true to install the necessary CRDs. 
      If you have already installed the NVIDIA GPU Operator with CRD installation 
      enabled, you can set this to false for subsequent installations to avoid 
      trying to reinstall the CRDs.
    required: false
    default: false
    type: boolean
  - name: open_kernel_modules
    description: |
      Whether to use open kernel modules for the NVIDIA driver. This is required 
      if you want to use the open kernel modules for the NVIDIA driver. Not needed 
      if you are using the device plugin to manage the driver installation.
    required: false
    default: false
    type: boolean
  - name: k3s
    description: |
      When installing in a k3s cluster, the NVIDIA GPU Operator needs to be configured 
      to point to the correct containerd socket. The path is: /run/k3s/containerd/containerd.sock. 
      Setting this to true will configure the NVIDIA GPU Operator to use this socket path for 
      containerd, which is necessary for it to function properly in a k3s environment.
    required: false
    default: true
    type: boolean
  - name: slice_count
    description: |
      Number of time-slices to create for each GPU. This is required for time-slicing 
      configuration and determines how many slices each GPU will be divided into. The 
      default is 4, which means that each GPU will be divided into 4 time-slices. You 
      can adjust this number based on your workload requirements and the capabilities 
      of your GPUs.
    required: true
    default: 4
    type: int
  - name: version
    description: Version of the GPU Operator to install.
    required: true
    type: select
    options:
      - v25.10.1
      - v25.3.4
  - name: helm_repo
    description: Helm repository URL for the NVIDIA GPU Operator chart.
    required: true
    default: "https://helm.ngc.nvidia.com/nvidia"