<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/build-a-validated-kubernetes-runtime-for-nvidia-dynamo-zyruq5lac" -->

---
title: Build a Validated Kubernetes Runtime for NVIDIA Dynamo
description: NVIDIA AI Cluster Runtime (AICR) packages NVIDIA Dynamo and its supporting Kubernetes infrastructure into validated, versioned recipes for deploying AI...
canonical: https://daily.dev/posts/build-a-validated-kubernetes-runtime-for-nvidia-dynamo-zyruq5lac
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Build a Validated Kubernetes Runtime for NVIDIA Dynamo | daily.dev
og:description: NVIDIA AI Cluster Runtime (AICR) packages NVIDIA Dynamo and its supporting Kubernetes infrastructure into validated, versioned recipes for deploying AI...
og:url: https://daily.dev/posts/build-a-validated-kubernetes-runtime-for-nvidia-dynamo-zyruq5lac
og:image: https://api.daily.dev/og/posts/ZyrUq5LaC.png
og:image:alt: Build a Validated Kubernetes Runtime for NVIDIA Dynamo
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Build a Validated Kubernetes Runtime for NVIDIA Dynamo

**[NVIDIA Developer](https://daily.dev/sources/nvidiadev)** · 13 min read · 0 upvotes · 0 comments

## Summary

NVIDIA AI Cluster Runtime (AICR) packages NVIDIA Dynamo and its supporting Kubernetes infrastructure into validated, versioned recipes for deploying AI inference clusters. Each recipe pins component versions like GPU Operator, KAI Scheduler, Grove, and Dynamo Platform 1.4.2, and runs validation checks after the runtime is installed. Dynamo supports two routing paths on Kubernetes: a Dynamo Frontend router, or a Gateway API Inference Extension (GAIE) path using the Dynamo Endpoint Picker (EPP). With Dynamo 1.4, services discover each other via Kubernetes resources, so AICR no longer installs NATS by default. Starting with Dynamo 1.5, a native Rust EPP will replace the current Go/CGO bridge, reducing per-request overhead. The workflow spans snapshotting the cluster, generating a recipe, rendering a Helm or GitOps bundle, deploying with Helmfile, and validating the live runtime with 'aicr validate'.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://developer.nvidia.com/blog/build-a-validated-kubernetes-runtime-for-nvidia-dynamo>

## Questions this post answers

### What are the two routing paths for NVIDIA Dynamo on Kubernetes?

Dynamo supports a Dynamo Frontend router path and a Gateway API Inference Extension (GAIE) path. In the Frontend path, the Dynamo Frontend tokenizes requests, scores workers by prefix overlap and load, and dispatches directly using DYN_ROUTER_MODE=kv. In the GAIE path, a Gateway resolves an HTTPRoute to an InferencePool, and the Dynamo Endpoint Picker (EPP) selects the worker using the KV router, forwarding through a Frontend sidecar in direct mode.

_Evaluating routing architectures for GPU inference clusters is easier with the comparisons engineers share on daily.dev._

### Does NVIDIA Dynamo still require NATS for service discovery on Kubernetes?

No. With Dynamo 1.4, frontends, workers, optional GAIE/EPP components, and other Dynamo services discover each other through native Kubernetes resources instead. Because of this, AICR's default deployment path no longer installs NATS, and the dynamo-platform Helm chart no longer installs it by default, though NATS remains available as an opt-in for deployments that still need it.

_Teams tracking infrastructure dependency changes like this follow release notes curated on daily.dev._

### What will change in the Dynamo Endpoint Picker (EPP) starting with Dynamo 1.5?

Starting with Dynamo 1.5, a native Rust EPP replaces the current Go/CGO bridge used in Dynamo 1.4. It implements GAIE's Lightweight Endpoint Picker (ext_proc) interface directly, runs the full Dynamo router in-process, and uses DYN_* environment variables instead of the eppConfig plugin and scheduling profiles, which reduces per-request EPP overhead while leaving the surrounding Kubernetes topology unchanged.

_Developers planning upgrades around architecture shifts like this stay ahead of breaking changes on daily.dev._

## Similar posts on daily.dev

- [AICR v1.0: Open, stable, and verifiable GPU cluster configuration](https://daily.dev/posts/aicr-v1-0-open-stable-and-verifiable-gpu-cluster-configuration-hnvoqqb49) · NVIDIA Developer · 0 upvotes · 0 comments
- [Validate Kubernetes for GPU Infrastructure with Layered, Reproducible Recipes](https://daily.dev/posts/validate-kubernetes-for-gpu-infrastructure-with-layered-reproducible-recipes-p4foehhfv) · NVIDIA Developer · 1 upvotes · 0 comments
- [Meet the New Standard for High-Performance, Low-Cost Inference: NVIDIA Dynamo 1.0 is now available to DigitalOcean Customers](https://daily.dev/posts/meet-the-new-standard-for-high-performance-low-cost-inference-nvidia-dynamo-1-0-is-now-available-t-fgqv2cjzg) · DigitalOcean · 1 upvotes · 0 comments
- [Building an AI factory on Kubernetes](https://daily.dev/posts/building-an-ai-factory-on-kubernetes-m4brxz3ty) · CNCF · 1 upvotes · 0 comments

---

Tags: [#kubernetes](https://daily.dev/tags/kubernetes), [#vllm](https://daily.dev/tags/vllm)

[View this post on daily.dev](https://daily.dev/posts/build-a-validated-kubernetes-runtime-for-nvidia-dynamo-zyruq5lac)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Build a Validated Kubernetes Runtime for NVIDIA Dynamo","url":"https://daily.dev/posts/build-a-validated-kubernetes-runtime-for-nvidia-dynamo-zyruq5lac","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/build-a-validated-kubernetes-runtime-for-nvidia-dynamo-zyruq5lac"},"datePublished":"2026-10-30T21:41:26.050Z","dateModified":"2026-10-30T21:43:02.757Z","description":"NVIDIA AI Cluster Runtime (AICR) packages NVIDIA Dynamo and its supporting Kubernetes infrastructure into validated, versioned recipes for deploying AI...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/5c4055974e2a998a8606fd883bb116f0?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/5c4055974e2a998a8606fd883bb116f0?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"NVIDIA Developer","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"NVIDIA Developer","logo":"https://media.daily.dev/image/upload/t_logo,f_auto/v1/logos/86e45aab42ba48ce83103d01b1119910","url":"https://daily.dev/sources/nvidiadev"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/build-a-validated-kubernetes-runtime-for-nvidia-dynamo-zyruq5lac","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"kubernetes,vllm","timeRequired":"PT13M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"NVIDIA Developer","item":"https://daily.dev/sources/nvidiadev"},{"@type":"ListItem","position":3,"name":"Build a Validated Kubernetes Runtime for NVIDIA Dynamo"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/build-a-validated-kubernetes-runtime-for-nvidia-dynamo-zyruq5lac#faq","mainEntity":[{"@type":"Question","name":"What are the two routing paths for NVIDIA Dynamo on Kubernetes?","acceptedAnswer":{"@type":"Answer","text":"Dynamo supports a Dynamo Frontend router path and a Gateway API Inference Extension (GAIE) path. In the Frontend path, the Dynamo Frontend tokenizes requests, scores workers by prefix overlap and load, and dispatches directly using DYN_ROUTER_MODE=kv. In the GAIE path, a Gateway resolves an HTTPRoute to an InferencePool, and the Dynamo Endpoint Picker (EPP) selects the worker using the KV router, forwarding through a Frontend sidecar in direct mode. Evaluating routing architectures for GPU inference clusters is easier with the comparisons engineers share on daily.dev."}},{"@type":"Question","name":"Does NVIDIA Dynamo still require NATS for service discovery on Kubernetes?","acceptedAnswer":{"@type":"Answer","text":"No. With Dynamo 1.4, frontends, workers, optional GAIE/EPP components, and other Dynamo services discover each other through native Kubernetes resources instead. Because of this, AICR's default deployment path no longer installs NATS, and the dynamo-platform Helm chart no longer installs it by default, though NATS remains available as an opt-in for deployments that still need it. Teams tracking infrastructure dependency changes like this follow release notes curated on daily.dev."}},{"@type":"Question","name":"What will change in the Dynamo Endpoint Picker (EPP) starting with Dynamo 1.5?","acceptedAnswer":{"@type":"Answer","text":"Starting with Dynamo 1.5, a native Rust EPP replaces the current Go/CGO bridge used in Dynamo 1.4. It implements GAIE's Lightweight Endpoint Picker (ext_proc) interface directly, runs the full Dynamo router in-process, and uses DYN_* environment variables instead of the eppConfig plugin and scheduling profiles, which reduces per-request EPP overhead while leaving the surrounding Kubernetes topology unchanged. Developers planning upgrades around architecture shifts like this stay ahead of breaking changes on daily.dev."}}]}
```

