Install with AICR
Install the Dynamo Platform on an existing Kubernetes cluster with NVIDIA AI Cluster Runtime (AICR).
NVIDIA AI Cluster Runtime (AICR) generates one version-locked recipe for the whole GPU and Dynamo stack, renders it into a deployable bundle, and validates the running cluster against the recipe. It is an alternative to the manual steps in Install Dynamo.
This guide is written against AICR v1.1.2, whose Dynamo recipes install the dynamo-platform Helm chart 1.4.2 into the dynamo-system namespace. The commands target Amazon EKS with H100 GPUs and Ubuntu nodes; change the --service, --accelerator, and --os values to match your cluster.
AICR is a separately maintained project. It configures an existing cluster and does not create one. For the full command reference, see the AICR documentation.
Check for a Dynamo Recipe
AICR covers more environments than Dynamo does. List the combinations that have a Dynamo recipe instead of assuming yours does:
Narrow the list with --service, --accelerator, and --os. Each row is a leaf recipe, with two columns that describe it:
STATUS: the structural verdict (pass,warn,fail, orunknown).passmeans the recipe resolves and its charts are pinned. It does not mean the recipe was validated on hardware.COVERAGE: the validation checks the recipe declares, in the formR:n D:n P:n C:nfor the readiness, deployment, performance, and conformance phases.
If no row matches your cluster, use the manual steps in Install Dynamo.
Prerequisites
- A Kubernetes 1.34 or later cluster, which the Dynamo recipes need for Dynamic Resource Allocation (DRA), with GPU nodes that match the recipe. For this guide, that means EKS GPU node groups running Ubuntu. The Amazon EKS guide creates an EKS Auto Mode cluster, which does not use Ubuntu nodes and does not match this recipe.
kubectland Helm access with cluster-admin permissions.- Image pull access from the GPU nodes to the registries the bundle and your Dynamo runtime images use.
- On EKS, EBS CSI driver permissions through EKS Pod Identity or IRSA. The bundle installs the driver but not its AWS credentials, and without them the Prometheus volume claim stays
Pending. See EBS CSI Driver Credentials. - A cluster without existing installs of components the recipe manages. Run
helm list -Aand remove or plan around an existing GPU Operator, cert-manager, kube-prometheus-stack, ordynamo-platformrelease, because the bundle installs its own. On EKS, if the Amazon EBS CSI driver is installed as an EKS add-on, add--set awsebscsidriver:enabled=falsetoaicr bundle. This also drops the default StorageClass that the bundle’s driver creates, so confirm thatkubectl get storageclassshows a(default)class.
Install the CLI
Or use the install script:
Verify the installation:
The output should show v1.1.2. Homebrew and the install script install the latest release, and the recipes are built into the CLI, so a newer CLI can resolve different component versions. To match this guide exactly, download the archive for your platform from the v1.1.2 release and check it against aicr_checksums.txt.
Generate the Recipe
Review the resolved components and their versions in recipe.yaml before you deploy.
Render and Deploy the Bundle
Render the recipe into a Helm bundle. Set --accelerated-node-selector to a label on your GPU node
group; without it, the recipe’s node tuning taints and reboots every node in the cluster, system nodes
included, which can stall later Helm hooks in deploy.sh:
Use a label your provisioner sets, such as node.kubernetes.io/instance-type=p5.48xlarge. Do not use
nvidia.com/gpu.present=true on a fresh cluster: GPU feature discovery, which sets that label, is
installed by the same bundle. If the GPU nodes are tainted, also pass --accelerated-node-toleration.
Verify the bundle, then run its deploy.sh, which installs each component in dependency order:
Do not edit files in the generated bundle. aicr verify fails when a file no longer matches the bundle’s checksums. To change a platform setting, pass --set to aicr bundle and regenerate the bundle.
To deploy with Argo CD, Flux, or Helmfile, see Generating Bundles in the AICR documentation.
Validate with AICR
Validate the cluster against the bundle’s recipe, which records what was deployed:
aicr validate first runs a readiness pre-flight and exits with code 2 if the cluster does not meet the recipe’s constraints. It then runs the requested phases:
deployment: the recipe’s components are installed and healthy.conformance: the cluster supports the capabilities the recipe declares, such as DRA, gang scheduling, and metrics collection.performance: the cluster meets a throughput threshold with an inference benchmark. Run it with--phase performancebefore production use.
For the phases a recipe declares, see Validating a Cluster.
Check the Dynamo Components
AICR validation does not replace a direct check of the Dynamo components. Confirm that the CRDs exist and the pods are running:
The dynamo-system namespace holds the Dynamo operator and Grove. Every pod should be Running and Ready.
Confirm that the GPU nodes advertise their GPUs:
Each GPU node should report a nonzero GPU count.
Open Network Access on EKS
The Dynamo recipes do not install NATS. The request plane uses TCP and KV events use ZMQ, so frontend and worker pods connect to each other directly. If you place frontend and worker components in different node groups, allow this traffic between their security groups:
The ai-service-metrics conformance check also needs TCP 9090 access to Prometheus from every node group that can run validation jobs, even when frontend and worker share a node group. For the complete rules and an example, see EKS Dynamo Networking Prerequisites.
Disaggregated deployments also transfer KV cache between prefill and decode workers; see EFA on AWS.
Next Steps
Your cluster is ready. Follow the Model Deployment guide to deploy a model with a DynamoGraphDeployment. Use runtime images (vLLM, SGLang, or TensorRT-LLM) that match the installed platform version, which is 1.4.2 for AICR v1.1.2. The bundle owns the platform: change platform settings by regenerating it with aicr bundle --set, and put model and serving settings in your DynamoGraphDeployment.
To upgrade a deployed stack, run aicr upgrade-check and follow Upgrading a Deployed Stack. After an upgrade that changes the platform version, update each DynamoGraphDeployment’s runtime image to match.
To uninstall, run helm uninstall for each component in the reverse order listed under Uninstall in the bundle’s README.md. See Bundle Uninstall. Helm does not delete CRDs. To remove the Dynamo CRDs, see Clean uninstall? in Install Dynamo troubleshooting.
Troubleshooting
aicr recipe fails with requires additional criteria. Run aicr recipe list --intent inference --platform dynamo and use values from a listed row. A partial query such as --os ubuntu --accelerator h100 can be ambiguous, so also set --service.
aicr validate exits with code 2 before running any phase. The readiness pre-flight failed. The output names the failed constraint.
AICR jobs stay Pending. The snapshot agent and the inner validation workloads target GPU nodes. If your GPU nodes carry non-standard labels or taints, pass --node-selector and --toleration to aicr validate. These flags do not affect the validator orchestrator Job.
The ai-service-metrics check fails or requests time out between pods. Security groups can block traffic between node groups. See Open Network Access on EKS.