Install operators for NVIDIA GPUs
The NVIDIA GPU operators are essential for enabling high-performance AI workloads, especially when deploying on OpenShift with NVIDIA GPUs.
About this task
This section outlines the steps for installing the following operators:
- NVIDIA GPU Operator
- Red Hat OpenShift AI Operator
NVIDIA GPU Operator
The NVIDIA GPU operator manages the full lifecycle of NVIDIA software components required
to run GPU-accelerated workloads.
For detailed installation instructions, see the Installing the NVIDIA GPU Operator section in the NVIDIA documentation.
- In the OpenShift Web Console, navigate to Operators > Operator Hub.
- Make sure that you have selected All Projects.
- Search for NVIDIA GPU Operator.
- Select the NVIDIA GPU Operator tile.
- Select v25.3 from the Channel drop-down list.
- Select 25.3.1 from the Version drop-down list.
- Click Install.
- On the next page, click Install again.Note: Configuration changes are not required on the Install Operator page.
- Verify that the NVIDIA GPU Operator was installed successfully.
- Navigate to Operators > Installed Operators.
- Ensure that you have selected All projects.
- Verify that the NVIDIA GPU Operator appears and that it has a status of Succeeded.
- Create a Cluster Policy for the NVIDIA GPU Operator.
- Select NVIDIA GPU Operator.
- Select the Cluster Policy tab.
- Click Create Cluster Policy.
Note: The default configurations are sufficient, but you can customize the ClusterPolicy if your organization requires it. - Click Create.Note: This may take 10-20 minutes to finish creating. Wait until the status of the newly deployed ClusterPolicy
gpu-cluster-policyfor the GPU operator changes toState:ready.
Red Hat OpenShift AI Operator
Several IBM® Software Hub services require Red Hat OpenShift AI. If you plan to install
services that use inference foundation models, you must install Red Hat OpenShift AI to start and
serve those models. For more information, see Installing Red Hat OpenShift AI.
The following steps are applicable if you are using the x86 architecture.
- Run the following command to create the
redhat-ods-operatorproject:oc new-project redhat-ods-operatorNote: You should receive the output similar tonamespace/redhat-ods-operatorcreated. - Add the following content to the
rhods-operator.yamlfile:apiVersion: operators.coreos.com/v1 kind: OperatorGroup metadata: name: rhods-operator namespace: redhat-ods-operator - Run the following command to apply the
yaml:
oc apply -f rhods-operator.yamlYou should receive the output similar to
operatorgroup.operators.coreos.com/rhods-operatorcreated. - Add the following content to the
rhods-operator-subscription.yamlfile.apiVersion: operators.coreos.com/v1alpha1 kind: Subscription metadata: name: rhods-operator namespace: redhat-ods-operator spec: name: rhods-operator channel: stable-2.22 source: redhat-operators sourceNamespace: openshift-marketplace config: env: - name: "DISABLE_DSC_CONFIG" - Run the following command to apply the
yaml:
oc apply -f rhods-operator-subscription.yamlYou should receive output similar to
.subscription.operators.coreos.com/rhods-operator created - Add the following content to the
default-dscifile.apiVersion: dscinitialization.opendatahub.io/v1 kind: DSCInitialization metadata: name: default-dsci spec: applicationsNamespace: redhat-ods-applications monitoring: managementState: Managed namespace: redhat-ods-monitoring serviceMesh: managementState: Removed trustedCABundle: managementState: Managed customCABundle: "" - Run the following command to apply the
yaml:
oc apply -f default-dsci.yaml - Check the status of the
rhods-operator-#####.
Your output should look similar to:oc get pods -n redhat-ods-operatorNAME READY STATUS RESTARTS AGE rhods-operator-56c85d44c9-vtk74 1/1 Running 0 3h57m - Ensure that
default-dscihas a PHASE of Ready by entering the following command:oc get dscinitializationYour output should look similar to:NAME AGE PHASE default-dsci 4d18h Ready - Add the following content to the
default-dsc.yamlfile:apiVersion: datasciencecluster.opendatahub.io/v1 kind: DataScienceCluster metadata: name: default-dsc spec: components: codeflare: managementState: Removed dashboard: managementState: Removed datasciencepipelines: managementState: Removed kserve: managementState: Managed defaultDeploymentMode: RawDeployment serving: managementState: Removed name: knative-serving kueue: managementState: Removed modelmeshserving: managementState: Removed ray: managementState: Removed trainingoperator: managementState: Managed trustyai: managementState: Removed workbenches: managementState: Removed - Run the following command to apply the yaml:
oc apply -f default-dsc.yaml - Run the following command to check the status of the DataScienceCluster
object:
Wait for the object to be ready.oc get datasciencecluster default-dsc -o jsonpath='"{.status.phase}" {"\n"}' - Confirm that the status of the following pods in the
redhat-ods-applicationsproject are running:kserve-controller-manager-* podkubeflow-training-operator-* pododh-model-controller-* pod
oc get pods -n redhat-ods-applicationsYour output should look similar to:NAME READY STATUS RESTARTS AGE kserve-controller-manager-55f985c695-5zqfg 1/1 Running 1 (24h ago) 28h kubeflow-training-operator-7fb8cbbd5d-4blrh 1/1 Running 0 28h odh-model-controller-6bff7b8b8b-ghwqj 1/1 Running 0 28h - Edit the
inferenceservice-configconfiguration map in theredhat-ods-applicationproject.- In the Openshift Web Console, navigate to Workloads > Configmaps.
- From the Project list, select redhat-ods-application.
- Click the
inferenceservice-configresource. - Click the YAML tab.
- In the metadata.annotations section of the file, add
opendatahub.io/managed: 'false'.metadata: annotations: internal.config.kubernetes.io/previousKinds: ConfigMap internal.config.kubernetes.io/previousNames: inferenceservice-config internal.config.kubernetes.io/previousNamespaces: opendatahub opendatahub.io/managed: 'false' # This line was added - Find the following entry in the YAML file:
"domainTemplate": "{{ .Name }}-{{ .Namespace }}.{{ .IngressDomain }}", - Update the value of the domainTemplate field to
"example.com".
"domainTemplate": "example.com",
- Click Save.