apiVersion: apps/v1
kind: Deployment
metadata:
name: qwen-qwen3-8b-decode
namespace: router-dev
labels:
inference-backend: "true"
openfuyao.com/model: qwen-qwen3-8b
spec:
replicas: 1
selector:
matchLabels:
inference-backend: "true"
openfuyao.com/model: qwen-qwen3-8b
openfuyao.com/engine: vllm
openfuyao.com/pdRole: decode
openfuyao.com/pdGroupID: "qwen3-8b-pd-01"
openfuyao.com/tpSize: "1"
template:
metadata:
labels:
inference-backend: "true"
openfuyao.com/model: qwen-qwen3-8b
openfuyao.com/engine: vllm
openfuyao.com/pdRole: decode
openfuyao.com/pdGroupID: "qwen3-8b-pd-01"
openfuyao.com/tpSize: "1"
spec:
nodeName: node
containers:
- name: decode-engine
image: vllm-mooncake-ascend:v0.10.0rc1-dev
env:
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: HF_HUB_OFFLINE
value: "1"
command: ["/bin/bash", "-c"]
args:
- |
# PHYSICAL_DEVICES stands for the physical devices assigned to the container
export PHYSICAL_DEVICES=$(ls /dev/davinci* 2>/dev/null | grep -o '[0-9]\+' | sort -n | paste -sd',' -)
JSON_CONTENT="{\"local_hostname\": \"$POD_IP\", \"device_name\": \"\",\"protocol\":\"ascend\"}"
echo "$JSON_CONTENT" > /app/mooncake.json
MOONCAKE_CONFIG_PATH=/app/mooncake.json VLLM_USE_V1=1 python3 -m vllm.entrypoints.openai.api_server \
--model Qwen/Qwen3-8B \
--no-enable-prefix-caching \
--port 8200 \
--tensor-parallel-size 1 \
--max-model-len 10000 \
--max-num-batched-tokens 2000 \
--data-parallel-size 1 \
--data-parallel-address localhost \
--data-parallel-rpc-port 9100 \
--gpu-memory-utilization 0.8 \
--kv-transfer-config '{"kv_connector":"MooncakeConnectorV1","kv_role":"kv_consumer","kv_buffer_device":"npu","kv_connector_module_path":"vllm_ascend.distributed.mooncake_connector","kv_parallel_size": 1,"kv_port": "20002","engine_id": "'$POD_NAME'","kv_rank": 1,"kv_connector_extra_config":{"prefill":{"tp_size":1,"dp_size":1},"decode":{"tp_size":1,"dp_size":1}}}'
resources:
requests:
huawei.com/Ascend910: "1"
limits:
huawei.com/Ascend910: "1"
ports:
- containerPort: 8200
name: decode-port
volumeMounts:
- name: shm
mountPath: /dev/shm
- name: dcmi
mountPath: /usr/local/dcmi
- name: npusmi
mountPath: /usr/local/bin/npu-smi
- name: lib64
mountPath: /usr/local/Ascend/driver/lib64
- name: version
mountPath: /usr/local/Ascend/driver/version.info
- name: installinfo
mountPath: /etc/ascend_install.info
- name: rootcache
mountPath: /root/.cache
- name: hccntool
mountPath: /usr/bin/hccn_tool
- name: hccnconf
mountPath: /etc/hccn.conf
volumes:
- name: shm
emptyDir:
medium: Memory
sizeLimit: "24Gi"
- name: dcmi
hostPath:
path: /usr/local/dcmi
- name: npusmi
hostPath:
path: /usr/local/bin/npu-smi
type: File
- name: lib64
hostPath:
path: /usr/local/Ascend/driver/lib64
- name: version
hostPath:
path: /usr/local/Ascend/driver/version.info
type: File
- name: installinfo
hostPath:
path: /etc/ascend_install.info
type: File
- name: rootcache
hostPath:
path: /home/llm_cache
- name: hccntool
hostPath:
path: /usr/bin/hccn_tool
- name: hccnconf
hostPath:
path: /etc/hccn.conf