# Qwen3.8-27B with MTP speculative decoding served by llama.cpp. # The primary and draft GGUFs are downloaded by llama-server into the shared # persistent llama.cpp cache on the NUCBox Radeon 8060S. --- apiVersion: apps/v1 kind: Deployment metadata: name: llamacpp-qwen38-27b namespace: llamacpp labels: app: llamacpp model: qwen3.8-27b spec: replicas: 1 strategy: type: Recreate selector: matchLabels: app: llamacpp model: qwen3.8-27b template: metadata: labels: app: llamacpp model: qwen3.8-27b spec: nodeSelector: kubernetes.io/arch: amd64 hardware: high-memory containers: - name: llama-server image: ghcr.io/ggml-org/llama.cpp:server-vulkan imagePullPolicy: IfNotPresent args: - -hf - ggml-org/Qwen3.8-27B-GGUF:Q4_K_M - -hfd - ggml-org/Qwen3.8-27B-GGUF:Q4_0 - --spec-default - --spec-type - draft-mtp - --ctx-size - "196608" - --cache-type-k - q8_0 - --cache-type-v - q8_0 - --reasoning-preserve - --fit - "off" - --agent - --chat-template-kwargs - '{"reasoning_effort":"medium"}' - --alias - qwen3.8-27b - --host - 0.0.0.0 - --port - "8080" - --jinja ports: - name: http containerPort: 8080 resources: requests: cpu: "1000m" memory: 2Gi limits: cpu: "4000m" memory: 24Gi readinessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 30 periodSeconds: 10 failureThreshold: 6 livenessProbe: httpGet: path: /health port: 8080 initialDelaySeconds: 180 periodSeconds: 30 failureThreshold: 5 securityContext: privileged: true volumeMounts: - name: models mountPath: /root/.cache/llama.cpp - name: dri mountPath: /dev/dri volumes: - name: models persistentVolumeClaim: claimName: llamacpp-models - name: dri hostPath: path: /dev/dri type: Directory --- apiVersion: v1 kind: Service metadata: name: llamacpp-qwen38-27b namespace: llamacpp labels: app: llamacpp model: qwen3.8-27b spec: type: ClusterIP selector: app: llamacpp model: qwen3.8-27b ports: - name: http port: 80 targetPort: 8080