llm-d: A Kubernetes-Native Inference Stack for Accelerator-Aware LLM Serving
Achieve state of the art inference performance with modern accelerators on Kubernetes
At a glance
- What is it?
- llm-d is a CNCF sandbox project that layers intelligent routing, KV-cache management, and disaggregation on top of model servers like vLLM and SGLang. It targets production Kubernetes deployments where raw model server performance is not enough.
- Who is it for?
- Adopt llm-d if you run production LLM serving on Kubernetes and need prefix-cache-aware routing, tiered KV offloading, or prefill/decode disaggregation across multiple accelerators. It is a poor fit for single-node experiments or teams without Kubernetes operational maturity.
- Can I use it commercially?
- Yes. Apache-2.0 is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Shell, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.
DEEP OPEN-SOURCE ANALYSIS
What llm-d Actually Does
llm-d is not another model server. It sits above vLLM and SGLang, which handle the low-level execution of transformer layers on accelerators. The project's own description says it provides orchestration and optimizations above those servers. That distinction matters. If you already run vLLM on Kubernetes and hit scaling or latency problems under multi-tenant traffic, llm-d is aimed at you. The target user is a platform team running production inference at scale, not a researcher spinning up a single GPU. The project is a CNCF sandbox, founded by Red Hat, Google Cloud, IBM Research, CoreWeave, and NVIDIA. That backing explains the focus on multi-cloud portability and the emphasis on reproducible benchmark workflows rather than just raw kernel tricks.
Four Themes, One Architecture
The README organizes llm-d into four core themes: intelligent routing, advanced KV-cache management, serving large models, and operational excellence. A fifth theme, batch processing, appears in the list but is not given a numbered slot. Intelligent routing is the load balancer layer. It uses prefix-cache awareness to send requests with shared prefixes to the same replica, and it can also balance based on predicted latency. That prediction is experimental, according to the release notes for v0.7, which called predicted-latency scheduling GA. KV-cache management extends the effective working set by offloading cache to CPU or disk, with a global index that tracks cache state across replicas. Serving large models relies on prefill/decode disaggregation and wide expert parallelism, which split the prefill and decode phases onto different hardware. Operational excellence covers flow control for multi-tenant workloads and SLO-aware autoscaling driven by inference signals. These themes are not independent. Routing decisions depend on cache state, and disaggregation changes how routing must work.
Getting Started: Helm Charts and Well-Lit Paths
The quickstart guide is the entry point. The documentation directs new users to the Optimized Baseline, which the v0.7 release notes say was renamed and stabilized. That baseline is a Helm chart that deploys the full stack: model server, router, and autoscaler. The guides are kustomize-first since v0.7, meaning you can also apply manifests directly. The README mentions nightly CI on OpenShift, GKE, and CoreWeave, so the charts are tested against multiple Kubernetes distributions. You will need a Kubernetes cluster with GPU nodes and a model you want to serve. The actual commands are not in the README, but the quickstart link provides them. The documentation stresses that these are benchmarked recipes, not just sample YAML. That is a strong point: you get a known-good starting configuration rather than a blank canvas.
The Performance Claims: Read the Footnotes
The README lists several performance highlights, all sourced from partner blogs or llm-d's own blog. For example, a 3x output throughput gain with prefix-cache-aware routing versus round-robin on Llama 3.1 70B with 4 AMD MI300X. A 40% reduction in TTFT and ITL with predicted-latency scheduling on NVIDIA GPUs. A 13.9x throughput improvement with hierarchical KV offloading at 250 concurrent users on 4 H100s. These are impressive numbers, but they come from controlled tests on specific hardware and model sizes. The 50k tokens/sec claim for wide expert parallelism uses a 16x16 B200 topology, which is far beyond what most teams have. The project does point to Prism, a benchmark platform, for reproducible results. That is a good sign. However, you should not assume those gains transfer to your workload. The README itself says the numbers are validated from production deployments and partner benchmarks, not from an independent body.
Where llm-d Falls Short
The most obvious limitation is complexity. This is not a tool you install and forget. It requires understanding prefix caches, disaggregation, and autoscaling signals. For a single model with low traffic, the overhead of the router and cache manager may exceed the benefit. The README does not state minimum hardware requirements, but the examples use multi-GPU nodes and fast interconnects. If your cluster uses commodity networking, wide expert parallelism will not work well. Another gap: the project depends on vLLM and SGLang, so you inherit their limitations. If your model is not supported by those servers, llm-d cannot help. The batch gateway is experimental as of v0.7, so offline workloads may not be production-ready. Finally, the documentation is extensive but spread across the website, and the README is more of a marketing page than a technical reference. You must visit the docs to learn the actual config keys.
Alternatives: Rolling Your Own vs. Managed Services
The most direct alternative is to use vLLM or SGLang directly with Kubernetes and write your own routing and autoscaling. That is what llm-d replaces. The difference is that vLLM gives you a model server with a built-in scheduler, but it does not provide cluster-level prefix-cache awareness across replicas. You would need a separate load balancer that understands KV cache state. llm-d provides that router out of the box. Another alternative is a managed inference platform like those from cloud providers, which abstract away Kubernetes entirely. Those services handle scaling and routing but lock you into one vendor and often do not expose the same level of control over disaggregation. llm-d sits in between: it gives you the control of self-hosting with some of the convenience of a managed service, but you still operate the Kubernetes cluster. The choice depends on whether you have the team to run infrastructure.
Maintenance and License Considerations
llm-d is licensed under Apache-2.0, which permits commercial use, modification, and redistribution without copyleft obligations. That is a permissive license, so you can integrate it into proprietary products. The project is active, with releases v0.8.1 in June 2026 and v0.9.0 in August 2026. The release cadence suggests regular updates, but the project is still in the 0.x range, meaning APIs and Helm charts can change between minor versions. The v0.7 release notes mention a renamed and stabilized optimized baseline, so breaking changes are possible. The nightly CI against multiple clouds is a positive sign for stability. You should budget time to track upstream changes, especially if you customize the Helm charts. The documentation is well-maintained, but the project is young and backed by a consortium, so long-term governance is still taking shape. Check the FOSSA status link if you need detailed dependency license analysis.
Editorial conclusion
Adopt llm-d if you run production LLM serving on Kubernetes and need prefix-cache-aware routing, tiered KV offloading, or prefill/decode disaggregation across multiple accelerators. It is a poor fit for single-node experiments or teams without Kubernetes operational maturity. Before committing, verify that your model server version (vLLM or SGLang) matches the tested recipes, confirm your accelerator interconnect supports the required communication patterns, and reproduce the cited benchmarks on your own hardware, as the performance claims come from partner blogs, not independent tests.
Community notes