GPUCluster Custom Resource Reference#
The GPUCluster custom resource definition (CRD) configures the Dynamic Resource Allocation (DRA) GPU resource
management model that the NVIDIA GPU Operator manages.
A single GPUCluster instance in the cluster describes the desired state of the DRA operands—the
DRA Driver for NVIDIA GPUs, DCGM, and DCGM Exporter—including
which container images to use and how each component is configured.
The GPU Operator watches the GPUCluster object and reconciles the managed DaemonSets and Deployments to match the
desired state.
Unlike ClusterPolicy, GPUCluster does not manage the NVIDIA GPU driver or the
NVIDIA Kubernetes Device Plugin.
The GPU driver must be pre-installed on the host or managed by an NVIDIADriver custom resource, and GPUs are
surfaced to workloads through DRA rather than through extended resources.
For a conceptual overview of the DRA stack, installation steps, and deployment scenarios, refer to
Deploying the GPU Operator with DRA Support.
Note
Deploying and managing the DRA Driver for NVIDIA GPUs through the GPUCluster custom resource is in Technology
Preview. The GPUCluster API is served under nvidia.com/v1alpha1 and is subject to change in future releases.
GPUCluster is supported only for greenfield (new) deployments.
Migrating an existing ClusterPolicy deployment to GPUCluster in place is not supported.
Do not use ClusterPolicy and GPUCluster as GPU resource management models in the same cluster.
Singleton Behavior#
GPUCluster is a singleton resource: the GPU Operator reconciles only one instance in the cluster.
The GPU Operator Helm chart creates a default instance named gpu-cluster when DRA support is enabled
(gpuCluster.enabled=true).
The first GPUCluster object that the controller observes becomes the active instance (“first-wins”).
Any additional GPUCluster objects are not reconciled and are marked with the ignored state in their status.
To change the configuration, edit the active instance rather than creating a second one.
GPUCluster Resource Structure#
GPUCluster is a cluster-scoped resource in the nvidia.com/v1alpha1 API group.
Its short name is gc.
apiVersion: nvidia.com/v1alpha1
kind: GPUCluster
metadata:
name: gpu-cluster
spec:
draDriver: {}
dcgm: {}
dcgmExporter: {}
hostPaths: {}
daemonsets: {}
Top-Level Spec Fields
Field |
Description |
Required |
|---|---|---|
|
Configuration for the DRA Driver for NVIDIA GPUs, including the GPU allocation ( |
Yes |
|
Configuration for the standalone NVIDIA DCGM hostengine. Disabled by default. When disabled, DCGM Exporter uses
its embedded |
No |
|
Configuration for the NVIDIA DCGM Exporter (GPU telemetry). Enabled by default. |
No |
|
Custom host filesystem paths used by the deployed components. |
No |
|
Common settings applied to all DaemonSets managed by the |
No |
spec.draDriver#
Configures the DRA Driver for NVIDIA GPUs.
There is no top-level enabled toggle: the GPU allocation (gpus) capability is always deployed, and the
ComputeDomains capability has its own enabled field.
Field |
Description |
Default |
|---|---|---|
|
Container registry and path for the DRA driver image. |
|
|
DRA driver image name (without tag). |
|
|
DRA driver image tag or version string. |
Defined by the Operator release. Refer to the GPU Operator Component Matrix. |
|
Kubernetes image pull policy.
Accepted values: |
|
|
List of Kubernetes Secret names that contain credentials for pulling the DRA driver image from a private registry. |
None |
|
Map of DRA driver feature gate names to booleans. Rendered as the |
None |
|
Configuration for the |
N/A |
|
Configuration for the ComputeDomains (Multi-Node NVLink) capability. See spec.draDriver.computeDomains. |
N/A |
spec.draDriver.gpus#
Configures the gpu.nvidia.com capability, which maps onto the gpus container of the kubelet-plugin DaemonSet.
This capability is always deployed.
Field |
Description |
Default |
|---|---|---|
|
Configuration for the |
N/A |
spec.draDriver.computeDomains#
Configures the ComputeDomains capability, an abstraction for secure Multi-Node NVLink (MNNVL) on NVIDIA GB200 and similar systems.
The kubeletPlugin maps onto the compute-domains container of the kubelet-plugin DaemonSet, and the
controller is a separate Deployment.
Field |
Description |
Default |
|---|---|---|
|
Whether the ComputeDomains capability is deployed. When enabled, the DRA driver deploys the
|
|
|
Overrides for the compute-domain controller Deployment. Accepts |
N/A |
|
Configuration for the |
N/A |
kubelet-plugin fields#
The gpus.kubeletPlugin and computeDomains.kubeletPlugin blocks map onto the two containers of a single
kubelet-plugin DaemonSet and accept the following fields.
Scheduling is opinionated and is not configurable.
Field |
Description |
Default |
|---|---|---|
|
List of environment variables ( |
None |
|
CPU and memory resource requests and limits for the container. Follows the standard Kubernetes
|
None |
|
Port for a gRPC health service checked by a liveness probe. Set to a negative value to disable the service and the probe. |
Component default |
The computeDomains.controller Deployment accepts env and resources with the same meanings.
spec.dcgm#
Configures the standalone NVIDIA DCGM hostengine.
This component is disabled by default; when it is disabled, DCGM Exporter uses its embedded nv-hostengine.
The dcgm section uses the same fields as the dcgm section of ClusterPolicy.
Refer to spec.dcgm in the ClusterPolicy Custom Resource Reference for the full
list of fields.
spec.dcgmExporter#
Configures the NVIDIA DCGM Exporter for GPU telemetry. This component is enabled by default.
The dcgmExporter section uses the same fields as the dcgmExporter section of ClusterPolicy.
Refer to spec.dcgmExporter in the ClusterPolicy Custom Resource Reference for the
full list of fields.
spec.hostPaths#
Configures custom host filesystem paths used by the deployed components, such as the root filesystem, the driver install directory, and the kubelet root directory.
The hostPaths section uses the same fields as the hostPaths section of ClusterPolicy.
Refer to spec.hostPaths in the ClusterPolicy Custom Resource Reference for the
full list of fields.
spec.daemonsets#
Applies common settings—such as labels, annotations, priority class, tolerations, and update strategy—to all
DaemonSets that the GPUCluster controller manages.
The daemonsets section uses the same fields as the daemonsets section of ClusterPolicy.
Refer to spec.daemonsets in the ClusterPolicy Custom Resource Reference for the
full list of fields.
Status#
The GPU Operator reports the observed state of the active GPUCluster instance in its status field.
The status.state value is shown in the Status column of kubectl get gpucluster.
State |
Description |
|---|---|
|
All enabled operands are deployed and healthy. |
|
One or more operands are not yet deployed or are not healthy. |
|
The |
|
A duplicate |
The status field also reports the namespace in which the operator and operands are installed and a list of
conditions that represent the current state of the resource.