生成部署定义yaml
基于KubeInfer的部署,关键是定义部署所需的yaml文件,参考获取部署版本包中提供的gen_single_role_deploy_kubeinfer_yaml.py脚本通过执行下述命令生成基于KubeInfer部署的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。  | 
     
       NA  | 
    
| 
       --image-name  | 
     
       必选  | 
     
       推理镜像名称,即为获取推理镜像中制作的镜像。  | 
     
       NA  | 
    
| 
       --resource-npu  | 
     
       必选  | 
     
       Pod申请使用的NPU卡数,根据Snt9bx资源规划需要使用的卡数配置资源。  | 
     
       NA  | 
    
| 
       --resource-cpu  | 
     
       必选  | 
     
       Pod申请使用的CPU核数,根据CPU及内存资源规划需要使用的CPU配置资源。  | 
     
       NA  | 
    
| 
       --resource-mem  | 
     
       必选  | 
     
       Pod申请使用的内存大小,根据CPU及内存资源规划需要使用的CPU配置内存。  | 
     
       NA  | 
    
| 
       --mount-path  | 
     
       可选  | 
     
       存储配置中挂载的目录,该目录下存放权重和脚本文件。  | 
     
       /mnt/deepseek  | 
    
| 
       --script-path  | 
     
       可选  | 
     
       部署推理服务依赖的脚本文件路径。 
        须知: 
        必须是--mount-path指定的目录的子目录。  | 
     
       /mnt/deepseek/deploy  | 
    
| 
       --parameters  | 
     
       必选  | 
     
       部署推理服务的启动参数,参考表2。 
        须知: 
        值必须用双引号包裹。  | 
     
       NA  | 
    
| 
       --file-name  | 
     
       可选  | 
     
       生成的yaml文件名。  | 
     
       infer_vllm_kubeinfer.yaml  | 
    
| 
       参数  | 
     
       约束  | 
     
       参数类型  | 
     
       参数说明  | 
    
|---|---|---|---|
| 
       --model-type  | 
     
       可选  | 
     
       特性参数  | 
     
       部署DeepSeek混部,需要配置值为"deepseek",其他开源模型不配置该参数。  | 
    
| 
       --dp-deploy  | 
     
       可选  | 
     
       特性参数  | 
     
       值为1时,部署DeepSeek DP混部。  | 
    
| 
       --tmpfs-path  | 
     
       可选  | 
     
       特性参数  | 
     
       基于tmpfs配置内存缓存(可选)配置的内存缓存权重文件。 
        须知: 
        
  | 
    
| 
       --enable-fusion-spec  | 
     
       可选  | 
     
       特性参数  | 
     
       MTP特性,需要使用融合权重。开启特性值为1,否则为0。  | 
    
| 
       --vllm-log-path  | 
     
       可选  | 
     
       特性参数  | 
     
       采集vLLM框架日志,开启特性需要指定滚动日志保存的路径。不开启时,日志保存在容器内/home/ma-user/AscendCloud/logs。 日志采集功能的使用详见推理层日志采集与转储。  | 
    
| 
       --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,设置为部署所需卡数。  | 
    
| 
       --additional-config  | 
     
       可选  | 
     
       启动参数  | 
     
       对应vLLM入参--aditional-config  | 
    
| 
       其他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[@]}"