生成部署定义yaml
基于KubeInfer的部署,关键是定义部署所需的yaml文件,当前提供了相关脚本来帮助您生成基于KubeInfer部署的yaml文件,通过执行下述命令生成部署所需的yaml文件。
python3 gen_single_role_deploy_kubeinfer_yaml.py [--replicas=xx] [--role-size=xx] [--image-name=xx] [--resource-npu] [--resource-cpu] [--resource-mem] [--mount-path=xx] [--script-path=xx] [--parameters="xxx"] [--file-name=xx]

- 针对该实例默认创建NodePort类型的K8s service,对外nodePort默认为30090。如果您要在同一个K8s集群中部署多个kubeinfer实例,注意非单kubeinfer多instance,则要确保这个nodePort为不同的值。
- 故障恢复机制默认为instance级重调度,默认配置KubeInfer自动感知恢复机制和K8s的三大探针。
- 容器默认配置了优雅退出时间,默认为120s。如果您的业务有需求需要修改这个时间,需要修改yaml中每个role定义里的优雅退出时间配置,详见基于KubeInfer的部署yaml文件说明。
- 获取权重文件规划的存储路径默认为”/mnt/deepseek”,会以相同路径挂载至Pod。如果您的路径不一致需要修改yaml文件中每个role定义里的挂载路径信息,详见基于KubeInfer的部署yaml文件说明,参考如下:
containers: - ... volumeMounts: - mountPath: /mnt/deepseek/ # 容器中权重挂载目录 name: deepseek ... volumes: ... - hostPath: path: /mnt/deepseek/ # 模型权重在外部存储上的路径 type: Directory name: deepseek
- NPU CANN plog默认挂载至主机上”/var/log/ascend_plog”目录,详细说明见推理层日志采集与转储。
- 默认配置升级策略为”一上一下”的滚动升级策略,如果您的业务有需要需要修改这个策略,需要修改yaml中定义,详见基于KubeInfer的部署yaml文件说明。
- yaml中默认调用了版本包中的启动脚本,该脚本支持可传入的参数参考表2,除此之外,用户还可以追加标准的vLLM启动参数。示例:如果用户部署Qwen3系列想开启Function call功能,可以新增以下启动参数:
--enable-auto-tool-choice --tool-call-parser=hermes --chat-template=tool_chat_template_hermes.v1.jinja
参数 |
约束 |
描述 |
默认值 |
---|---|---|---|
--replicas |
可选 |
KubeInfer实例instance数,对应K8s概念中的副本数。 |
1 |
--role-size |
可选 |
KubeInfer实例中每个实例的Pod个数。 |
1 |
--custom-labels |
可选 |
KubeInfer部署支持自定义标签,格式为json。 |
- |
--image-name |
必选 |
推理镜像名称,即为获取推理镜像中制作的镜像。 |
- |
--resource-npu |
必选 |
Pod申请使用的NPU卡数,根据Snt9bx资源规划需要使用的卡数配置资源。 |
- |
--resource-cpu |
必选 |
Pod申请使用的CPU核数。 |
- |
--resource-mem |
必选 |
Pod申请使用的内存大小。 |
- |
--mount-path |
可选 |
存储配置中挂载的目录,该目录下存放权重和脚本文件。 |
/mnt/deepseek |
--script-path |
可选 |
部署推理服务依赖的脚本文件路径。
须知:
必须是--mount-path指定的目录的子目录。 |
/mnt/deepseek/deploy |
--parameters |
必选 |
部署推理服务的启动参数,参考表2。
须知:
值必须用双引号包裹。 |
- |
--file-name |
可选 |
生成的yaml文件名。 |
infer_vllm_kubeinfer.yaml |
参数 |
约束 |
参数类型 |
参数说明 |
---|---|---|---|
--tmpfs-path |
可选 |
特性参数 |
基于tmpfs配置内存缓存(可选)配置的内存缓存权重文件。
须知:
|
--extra-env-vars |
可选 |
特性参数 |
额外要设置的环境变量。
须知:
|
--model |
必选 |
启动参数 |
对应vLLM入参--model,模型权重所在路径,路径中不能包含英文符号"."。
须知:
要求该目录必须是--mount-path指定的目录的子目录。 |
--served-model-name |
可选 |
启动参数 |
对应vLLM入参--served-model-name。 |
--max-num-seqs |
可选 |
启动参数 |
对应vLLM入参--max-num-seqs。 |
--max-model-len |
可选 |
启动参数 |
对应vLLM入参--max-model-len。开启APC时,最大序列长度为32K。 |
--gpu-memory-utilization |
可选 |
启动参数 |
对应vLLM入参--gpu-memory-utilization。开启APC时,需要设置为0.85。 |
--tensor-parallel-size |
必选 |
启动参数 |
对应vLLM入参--tensor-parallel-size,设置为部署所需卡数。 |
其他vLLM支持的参数,用法同vLLM |
说明:
不同特性参数使用详见推理关键特性使用。 |
说明:脚本中vLLM启动命令如下
python -m vllm.entrypoints.openai.api_server \ --host=0.0.0.0 \ --port=9000 \ --model=${MODEL} \ --served-model-name=${SERVED_MODEL_NAME} \ --max-model-len=${MAX_MODEL_LEN} \ --max-num-batched-tokens=${MAX_MODEL_LEN} \ --max-num-seqs=${MAX_NUM_SEQS} \ --tensor-parallel-size=${TENSOR_PARALLEL_SIZE} \ --gpu-memory-utilization=${GPU_MEMORY_UTILIZATION} \ --block-size=128 \ --dtype=auto \ --trust-remote-code \ --disable-log-requests "${EXTRA_ARGS[@]}"