Install NeMo Microservices Helm Chart#
Deploy the NeMo microservices as a platform by following the steps in this section.
Requirements#
Review Requirements for NeMo Microservices Platform for the hardware and software requirements for installing the NeMo Microservices Helm Chart.
Download and Install NeMo Microservices Helm Chart#
Download the NeMo Microservices Helm Chart:
helm fetch https://helm.ngc.nvidia.com/nvidia/nemo-microservices/charts/nemo-microservices-helm-chart-25.4.0.tgz \ --username='$oauthtoken' \ --password=$NGC_API_KEY
Review the default values in the NeMo Microservices Helm Chart reference.
To override the default values, create a custom values file. Consider the following while creating your custom values file:
Set up two basic secrets for accessing resources from the NGC catalog: a generic secret and an image pull secret. A generic secret is for accessing models from endpoints on the NGC catalog, and an image pull secret is for pulling container images from the NGC catalog. There are two options:
Option 1: This is the recommended option as the secret keeps your NGC API key private. Create secrets and specify them as existing secrets.
Create a generic secret named
ngc-api
with your NGC API key following the instructions at Create a Generic Secret. SetexistingSecret: ngc-api
to use this secret in thevalues.yaml
file.Create an image pull secret (Docker registry secret) named
nvcrimagepullsecret
following the instructions at Create an Image Pull Secret. Passnvcrimagepullsecret
toexistingImagePullSecret
andglobal.imagePullSecrets
. Theglobal.imagePullSecrets
is already set tonvcrimagepullsecret
by default.
Option 2: This option is not recommended unless you want to test in a personal development environment. Create secrets by setting up the
ngcAPIKey
andimagePullSecret
values with your NGC API key in thevalues.yaml
file without specifying values forexistingSecret
andexistingImagePullSecret
. This generates the secrets with your NGC API key. However, this option exposes your NGC API key in thevalues.yaml
file or when you runhelm get values <release>
.
NeMo Customizer requires specific storage class settings in
customizer.modelsStorage.storageClassName
andcustomizer.customizerConfig.training.pvc.storageClass
. For more information, see ReadWriteMany Persistent Volumes.NeMo Deployment Management requires a storage class setting in
deployment-management.deployments.defaultStorageClass
due to limitations in the NIM Operator microservice.If your cluster has an existing Volcano service in a dedicated namespace, disable the Volcano service installation in the NeMo Customizer subchart. For more information, see the Volcano section in NeMo Customizer Microservice Deployment Guide.
For clusters with existing Argo Workflows in a dedicated namespace, disable the default Argo Workflows installation in the
evaluator
subchart. Configure this through theevaluator
object in the NeMo Microservices Helm Chart’svalues.yaml
. Set the Argo server authentication mode toserver
. For more information, see the Argo Workflows section in NeMo Evaluator Deployment Guide.Configure the Kubernetes storage class for persistent storage for NeMo Data Store, NeMo Customizer, and NeMo Operator. If you have access to a read-write-many storage class such as a network file system (NFS), you can change the strategy for NeMo Data Store by updating
data-store.strategy.type
toRollout
.Use an external, managed PostgresSQL instance for NeMo Data Store, NeMo Evaluator, NeMo Customizer, and NeMo Evaluator.
Use an external, managed S3-compatible object storage for NeMo Data Store.
Configure the ingress object to route incoming requests appropriately. For more information, see Ingress Setup for Production Environment.
Install the chart using your
values.yaml
file:helm --namespace default install nemo \ nemo-microservices-helm-chart-25.4.0.tgz \ -f values.yaml
The installation process takes approximately 10 minutes for image downloads, container startup, and communication establishment. The time it takes might vary depending on the speed of your network connection. Pods may show pending or restarting states during this time.
Verify the pod status:
kubectl get pods
Confirm that running pods display
1/1
or2/2
in their ready state.