Upgrade
This section explains how to upgrade NVIDIA Run:ai cluster version.
System and Network Requirements
Before upgrading the NVIDIA Run:ai cluster, validate that the latest system requirements and network requirements are met, as they can change from time to time.
Note
It is highly recommended to upgrade the Kubernetes version together with the NVIDIA Run:ai cluster version, to ensure compatibility with latest supported version of your Kubernetes distribution.
Helm
The latest releases of the NVIDIA Run:ai cluster require Helm 3.14 or above.
Note
Helm 4 defaults to server-side apply when installing a new chart release, which can conflict with resources managed by the NVIDIA Run:ai operator. Append --server-side=false to your helm upgrade command. NVIDIA Run:ai clusters originally installed with Helm 3.x are unaffected.
Upgrade
Follow the instructions to upgrade using Helm. The Helm commands to upgrade the NVIDIA Run:ai cluster version may differ between versions. The steps below describe how to get the instructions from the NVIDIA Run:ai UI.
Getting Installation Instructions
Follow the setup and installation instructions below to get the installation instructions to upgrade the NVIDIA Run:ai cluster.
Setup
In the NVIDIA Run:ai UI, go to Resources -> Clusters
Select the cluster you want to upgrade
Click INSTALLATION INSTRUCTIONS
Optional: Select the NVIDIA Run:ai cluster version (latest, by default)
Click CONTINUE
Installation Instructions
In the next section, the NVIDIA Run:ai cluster installation steps will be presented.
The NVIDIA Run:ai platform displays the Helm installation command in the cluster wizard. Follow the instructions for your artifact source.
Modify the UI-generated command as follows:
Replace
helm repo addto pull from NGC instead of JFrog as shown below.Add
--username='$oauthtoken'and--password=<NGC_API_KEY>to thehelm repo addcommand, and replace<NGC_API_KEY>with your NGC API key.If you are using a local certificate authority, add
--set global.customCA.enabled=trueto the Helm command as described in the Local certificate authority section.The recommended ingress controller is HAProxy. If you are using a different ingress controller, update the ingress class to match the ingress controller.
Click DONE
Once installation is complete, validate the cluster is Connected and listed with the new cluster version. Once you have done this, the cluster is upgraded to the latest version. If the cluster does not appear as expected, see the cluster troubleshooting scenarios.
Run the Helm commands exactly as shown in the UI.
If you are using a local certificate authority, add
--set global.customCA.enabled=trueto the Helm command as described in the Local certificate authority section.The recommended ingress controller is HAProxy. If you are using a different ingress controller, update the ingress class to match the ingress controller.
Click DONE
Once installation is complete, validate the cluster is Connected and listed with the new cluster version. Once you have done this, the cluster is upgraded to the latest version. If the cluster does not appear as expected, see the cluster troubleshooting scenarios.
Migrate from NGINX to HAProxy Kubernetes Ingress Controller
Note
This section applies to Kubernetes only. OpenShift includes a pre-installed ingress controller by default and does not require this migration.
Starting with v2.24, NVIDIA Run:ai recommends using HAProxy Kubernetes Ingress Controller as the ingress controller. This change aligns with the announced retirement of the upstream NGINX Ingress Controller project.
Clusters upgraded from earlier versions typically already have NGINX installed. After upgrading to v2.24, follow the steps below to migrate ingress traffic from NGINX Ingress Controller to HAProxy Kubernetes Ingress Controller.
Migration Resources
You can utilize additional resources to streamline your migration. Visit the HAProxy Migration Center to access a dedicated migration assistant tool and a technical webinar on moving from NGINX to HAProxy.
Check the Service Type of the Existing Ingress Controller
Before installing the HAProxy Kubernetes Ingress Controller, identify which ingress controller is currently in use. If your cluster already has an ingress controller installed, verify how it is exposed to avoid port address conflicts.
If the existing ingress controller uses NodePort, note the HTTP/HTTPS NodePort values to ensure HAProxy is configured with non-overlapping ports.
If the existing ingress controller uses LoadBalancer, no additional action is required.
When running more than one ingress controller in the same cluster, port conflicts are relevant only for NodePort-based setups. LoadBalancer-based controllers automatically receive separate external IP addresses.
Note
If your setup differs from the examples above, adjust the configuration accordingly. When using external LoadBalancer on top of Ingress with service type NodePort, you may need to update external resources to route traffic to HAProxy’s configured NodePort values.
Install and Configure HAProxy Kubernetes Ingress Controller
Ingress controllers can be installed and configured in different ways depending on your Kubernetes distribution and how you expose services (for example, NodePort vs. LoadBalancer).
The sections below provide environment-specific Helm installation examples. Select the option that matches your deployment environment.
Note
OpenShift and RKE2 include a pre-installed ingress controller by default.
Vanilla Kubernetes
If your cluster already has an ingress controller installed (for example, NGINX) and it is exposed via NodePort, configure HAProxy to use different NodePort values so both controllers can run simultaneously.
Ensure the selected NodePort values do not overlap with ports already used by the existing ingress controller.
Managed Kubernetes (EKS, GKE, AKS)
When using a LoadBalancer, each ingress controller automatically receives its own external IP address from the cloud provider. This allows multiple ingress controllers to run in the same cluster without additional configuration.
Oracle Kubernetes Engine (OKE)
When using a LoadBalancer, each ingress controller automatically receives its own external IP address from the cloud provider. This allows multiple ingress controllers to run in the same cluster without additional configuration.
Verify HAProxy Ingress
After installing the HAProxy Kubernetes Ingress Controller, verify that HAProxy ingresses are reachable before switching NVIDIA Run:ai components to use it. You can do this by deploying a simple hello-world application.
To run the test, identify the IP address that should reach the cluster’s nodes in your environment.
Create a local
haproxy-test.ymlfile:Run the following command:
Once the application is deployed, access the cluster’s IP address in a browser. If the page displays “hello from haproxy-ingress”, HAProxy is functioning correctly and you can proceed with upgrading NVIDIA Run:ai.
Upgrade the Cluster
Setup
In the NVIDIA Run:ai UI, go to Resources -> Clusters
Select the cluster you want to upgrade
Click INSTALLATION INSTRUCTIONS
Click CONTINUE
Installation Instructions
Follow the installation instructions. Run the Helm commands provided on your Kubernetes cluster.
If not present, add the following flag to the helm install command:
Click DONE
Once installation is complete, validate the cluster is Connected and listed with the new cluster version (see the cluster troubleshooting scenarios). Once you have done this, the cluster is upgraded and the workloads in this cluster will now use HAProxy instead of NGINX.
Troubleshooting
If you encounter an issue with the cluster upgrade, use the troubleshooting scenarios below.
Installation Fails
If the NVIDIA Run:ai cluster installation failed, check the installation logs to identify the issue. Run the following script to print the installation logs:
Cluster Status
If the NVIDIA Run:ai cluster upgrade completes, but the cluster status does not show as Connected, refer to the cluster troubleshooting scenarios.
Last updated