176 lines
3.5 KiB
YAML
176 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:
|
|
sharedMemorySizeLimit: 64Gi
|
|
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
|