apiVersion: v1 kind: PersistentVolumeClaim metadata: {name: model-weights, namespace: modeldock-lab} spec: accessModes: [ReadWriteOnce] resources: {requests: {storage: 20Gi}} --- apiVersion: apps/v1 kind: Deployment metadata: {name: qwen-gpu, namespace: modeldock-lab} spec: strategy: {type: Recreate} replicas: 1 selector: {matchLabels: {app: qwen-gpu}} template: metadata: {labels: {app: qwen-gpu}} spec: containers: - name: inference image: vllm/vllm-openai:v0.10.2 args: [--model, Qwen/Qwen2.5-1.5B-Instruct, --served-model-name, qwen-gpu, --max-model-len, "4096"] ports: [{containerPort: 8000}] resources: {requests: {cpu: "2", memory: 4Gi, nvidia.com/gpu: 1}, limits: {memory: 12Gi, nvidia.com/gpu: 1}} startupProbe: {httpGet: {path: /health, port: 8000}, periodSeconds: 10, failureThreshold: 90} readinessProbe: {httpGet: {path: /health, port: 8000}, periodSeconds: 5} volumeMounts: [{name: weights, mountPath: /root/.cache/huggingface}, {name: shm, mountPath: /dev/shm}] volumes: [{name: weights, persistentVolumeClaim: {claimName: model-weights}}, {name: shm, emptyDir: {medium: Memory, sizeLimit: 1Gi}}] --- apiVersion: v1 kind: Service metadata: {name: qwen-gpu, namespace: modeldock-lab} spec: {selector: {app: qwen-gpu}, ports: [{name: http, port: 8000, targetPort: 8000}]}