TensorRT-LLM Deployment Templates

Ready-to-apply DynamoGraphDeployment manifests for serving TensorRT-LLM with Dynamo on Kubernetes.

View as Markdown

Copy-paste DynamoGraphDeployment (nvidia.com/v1beta1) manifests for the TensorRT-LLM backend, grouped by topology. Each manifest is embedded from examples/backends/trtllm/deploy/ — open an entry, use the copy button, then set your image tag and hf-token-secret before applying.

Apply any template with:

$kubectl apply -f agg.yaml

Some templates bundle a ConfigMap (engine configuration) or a PersistentVolumeClaim alongside the deployment. Apply the whole file — every document in it is part of the example.

Aggregated

agg.yaml
1# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2# SPDX-License-Identifier: Apache-2.0
3
4apiVersion: nvidia.com/v1beta1
5kind: DynamoGraphDeployment
6metadata:
7 name: trtllm-agg
8spec:
9 components:
10 - name: Frontend
11 podTemplate:
12 spec:
13 containers:
14 - image: my-registry/tensorrtllm-runtime:my-tag
15 name: main
16 replicas: 1
17 type: frontend
18 - name: TRTLLMWorker
19 podTemplate:
20 spec:
21 containers:
22 - args:
23 - --model-path
24 - Qwen/Qwen3-0.6B
25 - --served-model-name
26 - Qwen/Qwen3-0.6B
27 - --extra-engine-args
28 - ./examples/backends/trtllm/engine_configs/qwen3/agg.yaml
29 command:
30 - python3
31 - -m
32 - dynamo.trtllm
33 envFrom:
34 - secretRef:
35 name: hf-token-secret
36 image: my-registry/tensorrtllm-runtime:my-tag
37 name: main
38 resources:
39 limits:
40 nvidia.com/gpu: "1"
41 requests:
42 # Increase this value for larger models.
43 ephemeral-storage: 2Gi
44 workingDir: /workspace/
45 replicas: 1
46 type: worker
agg_router.yaml
1# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2# SPDX-License-Identifier: Apache-2.0
3
4apiVersion: nvidia.com/v1beta1
5kind: DynamoGraphDeployment
6metadata:
7 name: trtllm-agg-router
8spec:
9 components:
10 - name: Frontend
11 podTemplate:
12 spec:
13 containers:
14 - env:
15 - name: DYN_ROUTER_MODE
16 value: kv
17 image: my-registry/tensorrtllm-runtime:my-tag
18 name: main
19 replicas: 1
20 type: frontend
21 - name: TRTLLMWorker
22 podTemplate:
23 spec:
24 containers:
25 - args:
26 - --model-path
27 - Qwen/Qwen3-0.6B
28 - --served-model-name
29 - Qwen/Qwen3-0.6B
30 - --extra-engine-args
31 - ./examples/backends/trtllm/engine_configs/qwen3/agg.yaml
32 - --publish-events-and-metrics
33 command:
34 - python3
35 - -m
36 - dynamo.trtllm
37 envFrom:
38 - secretRef:
39 name: hf-token-secret
40 image: my-registry/tensorrtllm-runtime:my-tag
41 name: main
42 resources:
43 limits:
44 nvidia.com/gpu: "1"
45 requests:
46 # Increase this value for larger models.
47 ephemeral-storage: 2Gi
48 workingDir: /workspace/
49 replicas: 2
50 type: worker
agg-with-config.yaml
1# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2# SPDX-License-Identifier: Apache-2.0
3# configmap that contains the custom trtllm configuration
4apiVersion: v1
5kind: ConfigMap
6metadata:
7 name: nvidia-config
8data:
9 agg.yaml: |
10 tensor_parallel_size: 1
11 moe_expert_parallel_size: 1
12 enable_attention_dp: false
13 max_num_tokens: 8192
14 max_batch_size: 16
15 trust_remote_code: true
16 backend: pytorch
17 enable_chunked_prefill: true
18 disable_overlap_scheduler: true
19 kv_cache_config:
20 free_gpu_memory_fraction: 0.95
21 cuda_graph_config:
22 max_batch_size: 16
23---
24apiVersion: nvidia.com/v1beta1
25kind: DynamoGraphDeployment
26metadata:
27 name: trtllm-agg
28spec:
29 components:
30 - name: Frontend
31 podTemplate:
32 spec:
33 containers:
34 - image: my-registry/tensorrtllm-runtime:my-tag
35 name: main
36 replicas: 1
37 type: frontend
38 - name: TRTLLMWorker
39 podTemplate:
40 spec:
41 containers:
42 - args:
43 - --model-path
44 - Qwen/Qwen3-0.6B
45 - --served-model-name
46 - Qwen/Qwen3-0.6B
47 - --extra-engine-args
48 - /workspace/examples/backends/trtllm/engine_configs/qwen3/agg.yaml
49 command:
50 - python3
51 - -m
52 - dynamo.trtllm
53 envFrom:
54 - secretRef:
55 name: hf-token-secret
56 image: my-registry/tensorrtllm-runtime:my-tag
57 name: main
58 resources:
59 limits:
60 nvidia.com/gpu: "1"
61 # Mount the ConfigMap key as the engine args file without masking /workspace.
62 volumeMounts:
63 - mountPath: /workspace/examples/backends/trtllm/engine_configs/qwen3/agg.yaml
64 name: nvidia-config
65 readOnly: true
66 subPath: agg.yaml
67 workingDir: /workspace/examples/backends/trtllm
68 # Declare the ConfigMap as a pod volume.
69 volumes:
70 - configMap:
71 name: nvidia-config
72 name: nvidia-config
73 replicas: 1
74 type: worker

Disaggregated

disagg.yaml
1# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2# SPDX-License-Identifier: Apache-2.0
3
4apiVersion: nvidia.com/v1beta1
5kind: DynamoGraphDeployment
6metadata:
7 name: trtllm-disagg
8spec:
9 components:
10 - name: Frontend
11 podTemplate:
12 spec:
13 containers:
14 - image: my-registry/tensorrtllm-runtime:my-tag
15 name: main
16 replicas: 1
17 type: frontend
18 - name: decode
19 podTemplate:
20 spec:
21 containers:
22 - args:
23 - --model-path
24 - Qwen/Qwen3-0.6B
25 - --served-model-name
26 - Qwen/Qwen3-0.6B
27 - --extra-engine-args
28 - ./examples/backends/trtllm/engine_configs/qwen3/decode.yaml
29 - --disaggregation-mode
30 - decode
31 command:
32 - python3
33 - -m
34 - dynamo.trtllm
35 envFrom:
36 - secretRef:
37 name: hf-token-secret
38 image: my-registry/tensorrtllm-runtime:my-tag
39 name: main
40 resources:
41 limits:
42 nvidia.com/gpu: "1"
43 workingDir: /workspace/
44 replicas: 1
45 type: decode
46 - name: prefill
47 podTemplate:
48 spec:
49 containers:
50 - args:
51 - --model-path
52 - Qwen/Qwen3-0.6B
53 - --served-model-name
54 - Qwen/Qwen3-0.6B
55 - --extra-engine-args
56 - ./examples/backends/trtllm/engine_configs/qwen3/prefill.yaml
57 - --disaggregation-mode
58 - prefill
59 command:
60 - python3
61 - -m
62 - dynamo.trtllm
63 envFrom:
64 - secretRef:
65 name: hf-token-secret
66 image: my-registry/tensorrtllm-runtime:my-tag
67 name: main
68 resources:
69 limits:
70 nvidia.com/gpu: "1"
71 workingDir: /workspace/
72 replicas: 1
73 type: prefill
disagg_router.yaml
1# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2# SPDX-License-Identifier: Apache-2.0
3
4apiVersion: nvidia.com/v1beta1
5kind: DynamoGraphDeployment
6metadata:
7 name: trtllm-v1-disagg-router
8spec:
9 components:
10 - name: Frontend
11 podTemplate:
12 spec:
13 containers:
14 - env:
15 - name: DYN_ROUTER_MODE
16 value: kv
17 image: my-registry/tensorrtllm-runtime:my-tag
18 name: main
19 replicas: 1
20 type: frontend
21 - name: decode
22 podTemplate:
23 spec:
24 containers:
25 - args:
26 - --model-path
27 - Qwen/Qwen3-0.6B
28 - --served-model-name
29 - Qwen/Qwen3-0.6B
30 - --extra-engine-args
31 - ./examples/backends/trtllm/engine_configs/qwen3/decode.yaml
32 - --disaggregation-mode
33 - decode
34 command:
35 - python3
36 - -m
37 - dynamo.trtllm
38 envFrom:
39 - secretRef:
40 name: hf-token-secret
41 image: my-registry/tensorrtllm-runtime:my-tag
42 name: main
43 resources:
44 limits:
45 nvidia.com/gpu: "1"
46 workingDir: /workspace/
47 replicas: 2
48 type: decode
49 - name: prefill
50 podTemplate:
51 spec:
52 containers:
53 - args:
54 - --model-path
55 - Qwen/Qwen3-0.6B
56 - --served-model-name
57 - Qwen/Qwen3-0.6B
58 - --extra-engine-args
59 - ./examples/backends/trtllm/engine_configs/qwen3/prefill.yaml
60 - --disaggregation-mode
61 - prefill
62 - --publish-events-and-metrics
63 command:
64 - python3
65 - -m
66 - dynamo.trtllm
67 envFrom:
68 - secretRef:
69 name: hf-token-secret
70 image: my-registry/tensorrtllm-runtime:my-tag
71 name: main
72 resources:
73 limits:
74 nvidia.com/gpu: "1"
75 workingDir: /workspace/
76 replicas: 2
77 type: prefill
disagg_planner.yaml
1# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2# SPDX-License-Identifier: Apache-2.0
3
4apiVersion: nvidia.com/v1beta1
5kind: DynamoGraphDeployment
6metadata:
7 name: trtllm-disagg-planner
8spec:
9 components:
10 - name: Frontend
11 podTemplate:
12 spec:
13 containers:
14 - args:
15 - -m
16 - dynamo.frontend
17 - --http-port
18 - "8000"
19 - --kv-cache-block-size
20 - "128"
21 - --router-mode
22 - kv
23 - --router-kv-overlap-score-credit
24 - "0.0"
25 - --router-temperature
26 - "0.0"
27 - --no-kv-events
28 command:
29 - python3
30 image: my-registry/tensorrtllm-runtime:my-tag
31 name: main
32 workingDir: /workspace/examples/backends/trtllm
33 replicas: 1
34 type: frontend
35 - name: Planner
36 podTemplate:
37 spec:
38 containers:
39 - args:
40 - -m
41 - dynamo.planner
42 - --config
43 - '{"environment": "kubernetes", "backend": "trtllm", "optimization_target": "sla",
44 "enable_throughput_scaling": true, "enable_load_scaling": true, "pre_deployment_sweeping_mode":
45 "none", "throughput_adjustment_interval_seconds": 60, "load_adjustment_interval_seconds": 5}'
46 command:
47 - python3
48 envFrom:
49 - secretRef:
50 name: hf-token-secret
51 # Planner image selection:
52 # Dynamo >= 1.1.0: use the dedicated planner image
53 # <registry>/dynamo-planner:<version>
54 # (backend runtime images no longer ship planner runtime deps
55 # such as kubernetes_asyncio, pmdarima, prophet, aiconfigurator).
56 # Dynamo < 1.1.0: use the backend runtime image
57 # <registry>/tensorrtllm-runtime:<version>.
58 image: my-registry/dynamo-planner:my-tag
59 name: main
60 ports:
61 - containerPort: 9085
62 name: metrics
63 replicas: 1
64 type: planner
65 - name: decode
66 podTemplate:
67 spec:
68 containers:
69 - args:
70 - -m
71 - dynamo.trtllm
72 - --model-path
73 - Qwen/Qwen3-0.6B
74 - --served-model-name
75 - Qwen/Qwen3-0.6B
76 - --extra-engine-args
77 - ./examples/backends/trtllm/engine_configs/qwen3/decode.yaml
78 - --disaggregation-mode
79 - decode
80 command:
81 - python3
82 envFrom:
83 - secretRef:
84 name: hf-token-secret
85 image: my-registry/tensorrtllm-runtime:my-tag
86 livenessProbe:
87 failureThreshold: 1
88 httpGet:
89 path: /live
90 port: 9090
91 periodSeconds: 5
92 timeoutSeconds: 30
93 name: main
94 readinessProbe:
95 failureThreshold: 60
96 httpGet:
97 path: /health
98 port: 9090
99 periodSeconds: 10
100 timeoutSeconds: 30
101 resources:
102 limits:
103 nvidia.com/gpu: "1"
104 workingDir: /workspace/
105 terminationGracePeriodSeconds: 600
106 replicas: 1
107 type: decode
108 - name: prefill
109 podTemplate:
110 spec:
111 containers:
112 - args:
113 - -m
114 - dynamo.trtllm
115 - --model-path
116 - Qwen/Qwen3-0.6B
117 - --served-model-name
118 - Qwen/Qwen3-0.6B
119 - --extra-engine-args
120 - ./examples/backends/trtllm/engine_configs/qwen3/prefill.yaml
121 - --disaggregation-mode
122 - prefill
123 command:
124 - python3
125 envFrom:
126 - secretRef:
127 name: hf-token-secret
128 image: my-registry/tensorrtllm-runtime:my-tag
129 name: main
130 resources:
131 limits:
132 nvidia.com/gpu: "1"
133 workingDir: /workspace/
134 terminationGracePeriodSeconds: 600
135 replicas: 1
136 type: prefill
disagg-multinode.yaml
1# SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
2# SPDX-License-Identifier: Apache-2.0
3apiVersion: v1
4kind: ConfigMap
5metadata:
6 name: nvidia-config
7data:
8 prefill.yaml: |
9 # SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
10 # SPDX-License-Identifier: Apache-2.0
11 #
12 # Licensed under the Apache License, Version 2.0 (the "License");
13 # you may not use this file except in compliance with the License.
14 # You may obtain a copy of the License at
15 #
16 # http://www.apache.org/licenses/LICENSE-2.0
17 #
18 # Unless required by applicable law or agreed to in writing, software
19 # distributed under the License is distributed on an "AS IS" BASIS,
20 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
21 # See the License for the specific language governing permissions and
22 # limitations under the License.
23 tensor_parallel_size: 8
24 moe_expert_parallel_size: 1
25 enable_attention_dp: false
26 max_num_tokens: 8192
27 trust_remote_code: true
28 backend: pytorch
29 enable_chunked_prefill: true
30 # Overlap scheduler not currently supported in prefill only workers.
31 disable_overlap_scheduler: true
32 kv_cache_config:
33 free_gpu_memory_fraction: 0.80
34 cache_transceiver_config:
35 backend: DEFAULT
36
37 decode.yaml: |
38 # SPDX-FileCopyrightText: Copyright (c) 2025-2026 NVIDIA CORPORATION & AFFILIATES. All rights reserved.
39 # SPDX-License-Identifier: Apache-2.0
40 #
41 # Licensed under the Apache License, Version 2.0 (the "License");
42 # you may not use this file except in compliance with the License.
43 # You may obtain a copy of the License at
44 #
45 # http://www.apache.org/licenses/LICENSE-2.0
46 #
47 # Unless required by applicable law or agreed to in writing, software
48 # distributed under the License is distributed on an "AS IS" BASIS,
49 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
50 # See the License for the specific language governing permissions and
51 # limitations under the License.
52 tensor_parallel_size: 8
53 moe_expert_parallel_size: 1
54 enable_attention_dp: false
55 max_num_tokens: 8192
56 trust_remote_code: true
57 backend: pytorch
58 enable_chunked_prefill: true
59 disable_overlap_scheduler: false
60 kv_cache_config:
61 free_gpu_memory_fraction: 0.80
62 cache_transceiver_config:
63 backend: DEFAULT
64---
65
66apiVersion: v1
67kind: PersistentVolumeClaim
68metadata:
69 name: models
70spec:
71 accessModes:
72 - ReadWriteMany
73 resources:
74 requests:
75 storage: 100Gi
76---
77apiVersion: nvidia.com/v1beta1
78kind: DynamoGraphDeployment
79metadata:
80 name: trtllm-disagg-tp8
81spec:
82 backendFramework: trtllm
83 components:
84 - name: Frontend
85 podTemplate:
86 spec:
87 containers:
88 - args:
89 - --http-port
90 - "8000"
91 command:
92 - python3
93 - -m
94 - dynamo.frontend
95 image: my-registry/tensorrtllm-runtime:my-tag
96 name: main
97 volumeMounts:
98 - mountPath: /models
99 name: models
100 workingDir: /workspace/examples/backends/trtllm
101 volumes:
102 - name: models
103 persistentVolumeClaim:
104 claimName: models
105 replicas: 1
106 type: frontend
107 - multinode:
108 nodeCount: 2
109 name: decode
110 podTemplate:
111 spec:
112 containers:
113 - args:
114 - --model-path
115 - Qwen/Qwen3-0.6B
116 - --served-model-name
117 - Qwen/Qwen3-0.6B
118 - --extra-engine-args
119 - /workspace/engine_configs/decode.yaml
120 - --disaggregation-mode
121 - decode
122 command:
123 - python3
124 - -m
125 - dynamo.trtllm
126 envFrom:
127 - secretRef:
128 name: hf-token-secret
129 image: my-registry/tensorrtllm-runtime:my-tag
130 name: main
131 resources:
132 limits:
133 nvidia.com/gpu: "4"
134 volumeMounts:
135 - mountPath: /models
136 name: models
137 - mountPath: /workspace/engine_configs
138 name: nvidia-config
139 readOnly: true
140 workingDir: /workspace/
141 volumes:
142 - name: models
143 persistentVolumeClaim:
144 claimName: models
145 - configMap:
146 name: nvidia-config
147 name: nvidia-config
148 replicas: 1
149 type: decode
150 - multinode:
151 nodeCount: 2
152 name: prefill
153 podTemplate:
154 spec:
155 containers:
156 - args:
157 - --model-path
158 - Qwen/Qwen3-0.6B
159 - --served-model-name
160 - Qwen/Qwen3-0.6B
161 - --extra-engine-args
162 - /workspace/engine_configs/prefill.yaml
163 - --disaggregation-mode
164 - prefill
165 command:
166 - python3
167 - -m
168 - dynamo.trtllm
169 envFrom:
170 - secretRef:
171 name: hf-token-secret
172 image: my-registry/tensorrtllm-runtime:my-tag
173 name: main
174 resources:
175 limits:
176 nvidia.com/gpu: "4"
177 volumeMounts:
178 - mountPath: /models
179 name: models
180 - mountPath: /workspace/engine_configs
181 name: nvidia-config
182 readOnly: true
183 workingDir: /workspace/
184 volumes:
185 - name: models
186 persistentVolumeClaim:
187 claimName: models
188 - configMap:
189 name: nvidia-config
190 name: nvidia-config
191 replicas: 1
192 type: prefill
193 env:
194 - name: OMPI_ALLOW_RUN_AS_ROOT
195 value: "1"
196 - name: OMPI_ALLOW_RUN_AS_ROOT_CONFIRM
197 value: "1"
198 - name: HF_HOME
199 value: /models

Source

All templates live in examples/backends/trtllm/deploy/. For local launch commands, see TensorRT-LLM Local Deployment Examples.