Install NeMo Microservices Helm Chart#
To deploy the NeMo microservices as a platform, follow the steps below.
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.7.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-apiwith your NGC API key following the instructions at Create a Generic Secret. SetexistingSecret: ngc-apito use this secret in thevalues.yamlfile.Create an image pull secret (Docker registry secret) named
nvcrimagepullsecretfollowing the instructions at Create an Image Pull Secret. PassnvcrimagepullsecrettoexistingImagePullSecretandglobal.imagePullSecrets. Theglobal.imagePullSecretsis already set tonvcrimagepullsecretby default.
Option 2: This option is not recommended unless you want to test in a personal development environment. Create secrets by setting up the
ngcAPIKeyandimagePullSecretvalues with your NGC API key in thevalues.yamlfile without specifying values forexistingSecretandexistingImagePullSecret. This generates the secrets with your NGC API key. However, this option exposes your NGC API key in thevalues.yamlfile or when you runhelm get values <release>.
NeMo Customizer requires specific storage class settings in
customizer.modelsStorage.storageClassNameandcustomizer.customizerConfig.training.pvc.storageClass. For more information, see ReadWriteMany Persistent Volumes.NeMo Deployment Management requires a storage class setting in
deployment-management.deployments.defaultStorageClassdue 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
evaluatorsubchart. Configure this through theevaluatorobject in the NeMo Microservices Helm Chart’svalues.yaml. Set the Argo server authentication mode toserver. For more information, see the Argo Workflows section in Deploy the NeMo Evaluator Microservice.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.typetoRollout.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.yamlfile:helm --namespace default install nemo \ nemo-microservices-helm-chart \ -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/1or2/2in their ready state.