From be820c6b92e7d06ba80d5e6db68e0d5b9558e28f Mon Sep 17 00:00:00 2001 From: Snarf Date: Sun, 8 Nov 2026 14:56:54 -0500 Subject: [PATCH] feat: add Kubernetes manifests for AI stack deployment including Qdrant, vLLM, and Triton --- manifests/spacedock/ai-stack/ai-stack.yaml | 110 +++++++++++++++++++++ 1 file changed, 110 insertions(+) diff --git a/manifests/spacedock/ai-stack/ai-stack.yaml b/manifests/spacedock/ai-stack/ai-stack.yaml index 36281a2..d9a073d 100644 --- a/manifests/spacedock/ai-stack/ai-stack.yaml +++ b/manifests/spacedock/ai-stack/ai-stack.yaml @@ -205,6 +205,116 @@ spec: nodePort: 30800 --- # ============================================================================== +# 2B. vLLM GEMMA 4 12B INFERENCE ENGINE (snaisvr44hrvstr02 Tesla T4 GPU) +# ============================================================================== +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: vllm-gemma4-models-pvc + namespace: ai-stack +spec: + accessModes: + - ReadWriteOnce + storageClassName: longhorn + resources: + requests: + storage: 200Gi +--- +apiVersion: apps/v1 +kind: Deployment +metadata: + name: vllm-gemma4 + namespace: ai-stack + labels: + app: vllm-gemma4 +spec: + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app: vllm-gemma4 + template: + metadata: + labels: + app: vllm-gemma4 + spec: + nodeSelector: + kubernetes.io/hostname: snaisvr44hrvstr02 + containers: + - name: vllm + image: vllm/vllm-openai:v0.32.0-cu129 + imagePullPolicy: IfNotPresent + command: ["/bin/bash", "-c"] + args: + - | + rm -rf /usr/local/lib/python3.12/dist-packages/torchcodec* + exec vllm serve google/gemma-4-12B-it-qat-w4a16-ct \ + --served-model-name Gemma-4-12B-it \ + --dtype half \ + --max-model-len 8192 \ + --gpu-memory-utilization 0.92 \ + --enforce-eager \ + --enable-auto-tool-choice \ + --tool-call-parser gemma4 \ + --reasoning-parser gemma4 \ + --host 0.0.0.0 \ + --port 8000 + env: + - name: HF_HOME + value: "/root/.cache/huggingface" + - name: VLLM_WORKER_MULTIPROC_METHOD + value: "spawn" + ports: + - name: http-openai + containerPort: 8000 + resources: + requests: + cpu: "8" + memory: "24Gi" + nvidia.com/gpu: "1" + limits: + cpu: "24" + memory: "48Gi" + nvidia.com/gpu: "1" + readinessProbe: + httpGet: + path: /health + port: 8000 + initialDelaySeconds: 30 + periodSeconds: 10 + volumeMounts: + - name: vllm-gemma4-models + mountPath: /root/.cache/huggingface + - name: dshm + mountPath: /dev/shm + volumes: + - name: vllm-gemma4-models + persistentVolumeClaim: + claimName: vllm-gemma4-models-pvc + - name: dshm + emptyDir: + medium: Memory + sizeLimit: 16Gi +--- +apiVersion: v1 +kind: Service +metadata: + name: vllm-gemma4 + namespace: ai-stack + labels: + app: vllm-gemma4 +spec: + type: NodePort + selector: + app: vllm-gemma4 + ports: + - name: http-openai + port: 8000 + targetPort: 8000 + nodePort: 30804 +--- +# ============================================================================== # 3. NVIDIA TRITON INFERENCE SERVER (Decision Engine & Multi-Model ML Serving) # ============================================================================== apiVersion: v1