Files
edge-gitops/clusters/k3s-dgx/nim-service/qwen.yaml
2026-05-07 16:19:05 -05:00

175 lines
3.5 KiB
YAML

apiVersion: apps.nvidia.com/v1alpha1
kind: NIMCache
metadata:
name: qwen3-32b-instruct
namespace: nim-service
spec:
source:
ngc:
modelPuller: nvcr.io/nim/qwen/qwen3-32b-dgx-spark:1.1.0-variant
pullSecret: ngc-secret
authSecret: ngc-api-secret
model:
engine: "vllm"
tensorParallelism: "1"
profiles:
- c4f105d92c72ab56200884dfacde9d2128b139755c06b9c883eeb3e287b7408a
storage:
pvc:
create: true
size: "100Gi"
volumeAccessMode: ReadWriteOnce
---
apiVersion: apps.nvidia.com/v1alpha1
kind: NIMCache
metadata:
name: qwen36-27b-fp8
namespace: nim-service
spec:
source:
hf:
endpoint: "https://huggingface.co"
namespace: "Qwen"
authSecret: hf-api-secret
modelPuller: nvcr.io/nim/nvidia/llm-nim:1.12
pullSecret: ngc-secret
modelName: "Qwen3.6-27B-FP8"
storage:
pvc:
create: true
size: "50Gi"
volumeAccessMode: ReadWriteOnce
---
apiVersion: apps.nvidia.com/v1alpha1
kind: NIMService
metadata:
name: qwen36-27b-fp8
namespace: nim-service
spec:
userID: 0
groupID: 0
image:
repository: vllm/vllm-openai
tag: v0.19.1-cu130
pullPolicy: IfNotPresent
env:
- name: VLLM_CACHE_ROOT
value: /model-store/vllm-cache
command:
- python3
args:
- -m
- vllm.entrypoints.openai.api_server
- --model
- /model-store
- --host
- 0.0.0.0
- --served-model-name
- qwen36
- --gpu-memory-utilization
- "0.85"
- --max-model-len
- "256000"
- --language-model-only
- --reasoning-parser
- qwen3
- --enable-auto-tool-choice
- --tool-call-parser
- qwen3_coder
- --enable-chunked-prefill
- --max-num-batched-tokens
- "32768"
- --max-num-seqs
- "10"
- --enable-prefix-caching
- --speculative-config
- '{"method":"mtp","num_speculative_tokens":2}'
authSecret: hf-api-secret
storage:
nimCache:
name: qwen36-27b-fp8
replicas: 1
resources:
limits:
nvidia.com/gpu: 1
livenessProbe:
enabled: true
probe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 120
periodSeconds: 30
timeoutSeconds: 10
failureThreshold: 10
readinessProbe:
enabled: true
probe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 30
periodSeconds: 15
timeoutSeconds: 10
failureThreshold: 20
startupProbe:
enabled: true
probe:
httpGet:
path: /health
port: 8000
initialDelaySeconds: 10
periodSeconds: 20
timeoutSeconds: 10
failureThreshold: 60
expose:
service:
type: ClusterIP
port: 8000
---
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: llm-route
namespace: nim-service
spec:
parentRefs:
- name: envoy-gateway
namespace: default
hostnames:
- "mcp.corredorconect.com"
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: qwen36-27b-fp8
port: 8000
timeouts:
request: 600s
backendRequest: 600s
---
apiVersion: gateway.envoyproxy.io/v1alpha1
kind: SecurityPolicy
metadata:
name: llm-bearer-auth
namespace: nim-service
spec:
targetRefs:
- group: gateway.networking.k8s.io
kind: HTTPRoute
name: llm-route
apiKeyAuth:
credentialRefs:
- group: ""
kind: Secret
name: mcp-bearer-token
extractFrom:
- headers:
- authorization