Skip to main content
Kubernetes Dynamic Resource Allocation (DRA) is a new way of sharing host level resources into pods. These resources include GPU devices, high performance networking, and other hardware that a workload may need access to. DRA reached GA in Kubernetes 1.34, and the feature gate is locked on (always enabled, cannot be disabled) starting in Kubernetes 1.35. DRA replaces device plugins for accessing resources from workloads.

Prerequisites

Ensure you have the following:

1. Deploy the NVIDIA DRA plugin via Helm

Use helm to install the DRA plugin.
First we need to disable the device plugin component of GPU operator since we will be using the DRA plugin instead.
Note: the validation steps currently mention older versions of resource claims, follow the steps below to verify that the DRA plugin is running and managing the NVIDIA GPU resources.
Refer to the dra validation documentation.
Verify ResourceSlice objects
There should be a ResourceSlice object with the gpu.nvidia.com driver.

2. Deploy test workload

Create a pod that consumes the ResourceSlice via a ResourceClaimTemplate.
Verify that the pod is running and has access to the GPU resources.
The output is expected to show the same GPU UUID from both containers. Example:
clean up

Notes

DRA is currently a beta Kubernetes feature and it is likely that it will change in the future. Make sure you consult your hardware vendor’s documentation for up-to-date configuration and deployment guides.