Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
92 changes: 92 additions & 0 deletions gpu-operator/cdi.rst
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,98 @@ Disable the NRI Plugin by modifying the cluster policy:
After disabling the NRI Plugin, the ``nvidia`` runtime class will be created.


.. _nri-cdi-devices:

******************************************
Requesting CDI Devices with the NRI Plugin
******************************************

When the NRI Plugin is enabled, a pod can request that the NRI Plugin inject specific CDI devices into one of its containers.
Add an annotation of the following form to the pod specification:

.. code-block:: yaml

metadata:
annotations:
nvidia.cdi.k8s.io/container.<container-name>: "<cdi-device>"

Replace ``<container-name>`` with the name of the container in the pod that the device is injected into, and replace ``<cdi-device>`` with the CDI device to request.
The NRI Plugin supports two kinds of CDI devices: non-management devices and management devices.

Requesting a Non-Management CDI Device
**************************************

A non-management CDI device injects a single GPU, identified by its GPU UUID, into a container.
Pods can request a non-management CDI device from **any** namespace.

Retrieve the GPU UUID from the ``/var/run/cdi/k8s.device-plugin.nvidia.com-gpu.json`` file on the GPU node.

Request the device with an annotation of the form ``k8s.device-plugin.nvidia.com/gpu=<GPU-UUID>``.
The following pod specification requests a specific GPU for the ``ubuntu`` container:

.. code-block:: yaml

apiVersion: v1
kind: Pod
metadata:
name: ubuntu
labels:
app: ubuntu
annotations:
nvidia.cdi.k8s.io/container.ubuntu: "k8s.device-plugin.nvidia.com/gpu=GPU-1d7f7c5b-b2f6-148d-ff9a-d8bc4941885c"
spec:
containers:
- image: ubuntu
name: ubuntu
command:
- "sleep"
- "604800"
imagePullPolicy: IfNotPresent
restartPolicy: Always

Requesting a Management CDI Device
**********************************

A management CDI device provides management-level access to all GPUs on the node, bypassing GPU allocation through the Device Plugin or DRA Driver for GPUs.
This is the access that a GPU Management Container requires.
Request a management device with the ``management.nvidia.com/gpu=all`` annotation value.

By default, only pods in the namespace where the GPU Operator is installed, which is the namespace where the NVIDIA Container Toolkit runs, are permitted to request management CDI devices.
To permit pods in other namespaces to request management CDI devices, add those namespaces to the ``NRI_MANAGEMENT_CDI_DEVICE_NAMESPACES`` environment variable on the NVIDIA Container Toolkit.
The value is a comma-separated list of namespaces.

Set the environment variable through the ``toolkit.env`` Helm value at installation time, or by modifying the cluster policy on an existing installation:

.. code-block:: console

$ kubectl patch clusterpolicies.nvidia.com/cluster-policy --type='json' \
-p='[{"op": "replace", "path": "/spec/toolkit/env", "value": [{"name": "NRI_MANAGEMENT_CDI_DEVICE_NAMESPACES", "value": "test-namespace"}]}]'

The following pod specification, in ``test-namespace``, requests a management CDI device for the ``ctr`` container.
For this pod to start, ``test-namespace`` must be included in the ``NRI_MANAGEMENT_CDI_DEVICE_NAMESPACES`` environment variable.

.. code-block:: yaml

apiVersion: v1
kind: Pod
metadata:
name: cdi-nri-test
namespace: test-namespace
labels:
app: cdi-nri-test
annotations:
nvidia.cdi.k8s.io/container.ctr: "management.nvidia.com/gpu=all"
spec:
containers:
- name: ctr
image: ubuntu
imagePullPolicy: IfNotPresent
command:
- bash
- -c
- sleep infinity


************
Known Issues
************
Expand Down
120 changes: 25 additions & 95 deletions gpu-operator/life-cycle-policy.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,13 +53,13 @@ The product life cycle and versioning are subject to change in the future.
* - GPU Operator Version
- Status

* - 26.3.x
* - 26.6.x
- Supported

* - 25.10.x
* - 26.3.x
- Deprecated

* - 25.3.x and lower
* - 25.10.x and lower
- End of Support


Expand Down Expand Up @@ -88,132 +88,62 @@ Refer to :ref:`Upgrading the NVIDIA GPU Operator` for more information.
:header-rows: 2

* - :rspan:`1` Component
- :cspan:`3` GPU Operator Version

* - v26.3.0
- v26.3.1
- v26.3.2
- v26.3.3

* - NVIDIA GPU Driver |ki|_
- | `595.71.05 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-595-71-05/index.html>`_
| `595.58.03 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-595-58-03/index.html>`_
| `590.48.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-590-48-01/index.html>`_
| `580.173.02 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-173-02/index.html>`_ (**R**)
| `580.167.08 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-167-08/index.html>`_
| `580.159.04 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-159-04/index.html>`_
| `580.159.03 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-159-03/index.html>`_
| `580.126.20 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-126-20/index.html>`_ (**D**)
| `570.211.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-570-211-01/index.html>`_
| `535.309.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-535-309-01/index.html>`_
| `535.288.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-535-288-01/index.html>`_
- | `595.71.05 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-595-71-05/index.html>`_
| `595.58.03 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-595-58-03/index.html>`_
| `590.48.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-590-48-01/index.html>`_
| `580.173.02 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-173-02/index.html>`_ (**R**)
| `580.167.08 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-167-08/index.html>`_
| `580.159.04 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-159-04/index.html>`_
| `580.159.03 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-159-03/index.html>`_
| `580.126.20 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-126-20/index.html>`_ (**D**)
| `570.211.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-570-211-01/index.html>`_
| `535.309.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-535-309-01/index.html>`_
| `535.288.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-535-288-01/index.html>`_
- | `595.71.05 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-595-71-05/index.html>`_
| `595.58.03 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-595-58-03/index.html>`_
| `590.48.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-590-48-01/index.html>`_
| `580.173.02 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-173-02/index.html>`_ (**R**)
| `580.167.08 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-167-08/index.html>`_
| `580.159.04 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-159-04/index.html>`_
| `580.159.03 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-159-03/index.html>`_
| `580.126.20 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-126-20/index.html>`_ (**D**)
| `570.211.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-570-211-01/index.html>`_
| `535.309.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-535-309-01/index.html>`_
| `535.288.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-535-288-01/index.html>`_
- GPU Operator Version

* - v26.7.0

* - NVIDIA GPU Driver
- | `610.57.04 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-610-57-04/index.html>`_
| `595.91.07 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-595-91-07/index.html>`_
| `595.71.05 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-595-71-05/index.html>`_
| `595.58.03 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-595-58-03/index.html>`_
| `590.48.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-590-48-01/index.html>`_
| `580.178.04 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-173-02/index.html>`_ (**R**)
| `595.91.07 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-595-91-07/index.html>`_ (**R**, **D**)
| `580.173.02 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-173-02/index.html>`_
| `580.167.08 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-167-08/index.html>`_
| `580.159.04 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-159-04/index.html>`_
| `580.159.03 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-159-03/index.html>`_
| `580.126.20 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-580-126-20/index.html>`_ (**D**)
| `570.211.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-570-211-01/index.html>`_
| `535.309.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-535-309-01/index.html>`_
| `535.288.01 <https://docs.nvidia.com/datacenter/tesla/tesla-release-notes-535-288-01/index.html>`_

* - NVIDIA Driver Manager for Kubernetes
- :cspan:`1` `v0.10.0 <https://ngc.nvidia.com/catalog/containers/nvidia:cloud-native:k8s-driver-manager>`__
- :cspan:`1` `v0.11.0 <https://ngc.nvidia.com/catalog/containers/nvidia:cloud-native:k8s-driver-manager>`__
- `v0.12.0 <https://ngc.nvidia.com/catalog/containers/nvidia:cloud-native:k8s-driver-manager>`__

* - NVIDIA Container Toolkit
- :cspan:`1` `1.19.0 <https://github.com/NVIDIA/nvidia-container-toolkit/releases>`__
- :cspan:`1` `1.19.1 <https://github.com/NVIDIA/nvidia-container-toolkit/releases>`__
- `1.20.0 <https://github.com/NVIDIA/nvidia-container-toolkit/releases>`__

* - NVIDIA Kubernetes Device Plugin
- :cspan:`1` `0.19.0 <https://github.com/NVIDIA/k8s-device-plugin/releases>`__
- `0.19.2 <https://github.com/NVIDIA/k8s-device-plugin/releases>`__
- `0.19.3 <https://github.com/NVIDIA/k8s-device-plugin/releases>`__
* - NVIDIA Device Plugin for Kubernetes
- `0.20.0 <https://github.com/NVIDIA/k8s-device-plugin/releases>`__

* - DCGM Exporter
- :cspan:`1` `v4.5.1-4.8.0 <https://github.com/NVIDIA/dcgm-exporter/releases>`__
- :cspan:`1` `v4.5.3-4.8.2 <https://github.com/NVIDIA/dcgm-exporter/releases>`__
- `v4.6.0-4.8.3 <https://github.com/NVIDIA/dcgm-exporter/releases>`__

* - Node Feature Discovery
- :cspan:`3` `v0.18.3 <https://github.com/kubernetes-sigs/node-feature-discovery/releases/>`__
- `v0.19.0 <https://github.com/kubernetes-sigs/node-feature-discovery/releases/>`__

* - | NVIDIA GPU Feature Discovery
| for Kubernetes
- :cspan:`1` `0.19.0 <https://github.com/NVIDIA/k8s-device-plugin/releases>`__
- `0.19.2 <https://github.com/NVIDIA/k8s-device-plugin/releases>`__
- `0.19.3 <https://github.com/NVIDIA/k8s-device-plugin/releases>`__
- `0.20.0 <https://github.com/NVIDIA/k8s-device-plugin/releases>`__

* - NVIDIA MIG Manager for Kubernetes
- :cspan:`1` `0.14.0 <https://github.com/NVIDIA/mig-parted/blob/main/CHANGELOG.md>`__
- :cspan:`1` `0.14.2 <https://github.com/NVIDIA/mig-parted/blob/main/CHANGELOG.md>`__
- `0.15.0 <https://github.com/NVIDIA/mig-parted/blob/main/CHANGELOG.md>`__

* - DCGM
- :cspan:`3` `4.5.2-1 <https://docs.nvidia.com/datacenter/dcgm/latest/release-notes/changelog.html>`__
- `4.6.0-1 <https://docs.nvidia.com/datacenter/dcgm/latest/release-notes/changelog.html>`__

* - Validator for NVIDIA GPU Operator
- v26.3.0
- v26.3.1
- v26.3.2
- v26.3.3
- ${version}

* - NVIDIA KubeVirt GPU Device Plugin
- :cspan:`3` `v1.5.0 <https://github.com/NVIDIA/kubevirt-gpu-device-plugin>`__
- `v1.5.0 <https://github.com/NVIDIA/kubevirt-gpu-device-plugin>`__

* - NVIDIA vGPU Device Manager
- :cspan:`3` `v0.4.2 <https://github.com/NVIDIA/vgpu-device-manager>`__
- `v0.4.2 <https://github.com/NVIDIA/vgpu-device-manager>`__

* - NVIDIA GDS Driver |gds|_
- :cspan:`3` `2.27.3 <https://github.com/NVIDIA/gds-nvidia-fs/releases>`__
- `2.29.4 <https://github.com/NVIDIA/gds-nvidia-fs/releases>`__

* - | NVIDIA Confidential Computing
| Manager for Kubernetes
- `v0.3.0 <https://github.com/NVIDIA/k8s-cc-manager/releases>`__
- :cspan:`2` `v0.4.0 <https://github.com/NVIDIA/k8s-cc-manager/releases>`__
- `v0.4.3 <https://github.com/NVIDIA/k8s-cc-manager/releases>`__

* - NVIDIA GDRCopy Driver
- `v2.5.1 <https://github.com/NVIDIA/gdrcopy/releases>`__
- :cspan:`2` `v2.5.2 <https://github.com/NVIDIA/gdrcopy/releases>`__
- `v2.6 <https://github.com/NVIDIA/gdrcopy/releases>`__

* - NVIDIA Kata Sandbox Device Plugin
- `v0.0.2 <https://github.com/NVIDIA/sandbox-device-plugin/releases>`__
- :cspan:`2` `v0.0.3 <https://github.com/NVIDIA/sandbox-device-plugin/releases>`__

.. _known-issue:

:sup:`1`
Known Issue: For drivers 570.124.06, 570.133.20, 570.148.08, and 570.158.01,
GPU workloads cannot be scheduled on nodes that have a mix of MIG slices and full GPUs.
This manifests as GPU pods getting stuck indefinitely in the ``Pending`` state.
NVIDIA recommends that you upgrade the driver to version 580.65.06 or later to resolve this issue.
For more detailed information, see GitHub issue https://github.com/NVIDIA/gpu-operator/issues/1361.

- `v0.0.5 <https://github.com/NVIDIA/sandbox-device-plugin/releases>`__

.. _gds-open-kernel:

Expand Down
Loading