以当前所在路径为/home/{用户名称}/package为例进行以下操作。
cp mindie-service/latest/conf/msctl.json ~/.mindie_ms/
vi ~/.mindie_ms/msctl.json
msctl.json文件信息如下所示:
{ "http":{ "dstPort" : 9789, "dstIP" : "127.0.0.1", "ca_cert": "./security/ca/ca.pem", "tls_cert": "./security/certs/cert.pem", "tls_key": "./security/keys/cert.key.pem", "tls_crl": "", "timeout": 60 }, "log_level": "INFO" }
参数 |
类型 |
说明 |
---|---|---|
dstPort |
Int |
必填。 对端端口( MindIE MS服务端),与ms_server.json中的port保持一致。 取值范围:[1024,65535],默认值9789。 |
dstIP |
String |
必填。 部署服务端IP地址,Deployment部署场景使用MindIE MS Server的Pod IP进行访问 。 可通过以下命令查询Pod IP: kubectl get pods -n mindie -o wide |
ca_cert |
String |
必填。 默认使用HTTPS通信。 ca根证书文件。需MindIE MS服务端ca证书文件相互信任。 |
tls_cert |
String |
必填。 客户端tls证书文件。用户请参考下面步骤2准备证书。 |
tls_key |
String |
必填。 客户端tls私钥文件。出于安全的考虑,建议使用加密私钥,如使用,在执行命令时会提供用户输入加密口令。 |
tls_crl |
String |
必填。 校验通信对端服务端的证书吊销列表crl文件,如为空,则不进行吊销校验。 |
timeout |
Int |
必填。 MindIE MS客户端可设置的等待响应时长,取值范围[1,60]。 |
log_level |
String |
必填。 客户端日志级别。
|
cd /mindie-service/latest/conf vi infer_server.json
{ "server_name": "mindie-server", "replicas": 1, "service_port": 31005, "cross_node_num":2, "service_type": "NodePort", "server_type":"mindie_single_node", "scheduler": "default", "init_delay": 180, "detect_server_inner_error": true, "liveness_timeout": 10, "liveness_failure_threshold": 1, "readiness_timeout": 10, "readiness_failure_threshold": 1, "resource_requests": { "memory": 500000, "cpu_core" : 32000, "npu_type": "Ascend910", "npu_chip_num": 8 }, "mindie_server_config": { "mies_install_path": "/usr/local/Ascend/mindie/latest/mindie-service", "infer_port" : 1025, "management_port":1026, "enable_tls":true }, "npu_fault_reschedule": true "termination_grace_period_seconds": 30, "max_unavailable": "50%", "max_surge": "50%" }
参数 |
类型 |
说明 |
---|---|---|
server_name |
String |
必填。 任务服务名称。在MindIE MS管理范围内具备唯一性的ID,当前只支持部署一个服务。 |
replicas |
Int |
必填。 部署的实例副本数量,其中实例指的是最小可提供推理服务的单元。
|
service_port |
Int |
必填。 部署服务对外可被用户访问的端口,NodePort取值范围[30000, 32767]。 访问MindIE推理请求时需要使用该接口。 |
cross_node_num |
Int |
分布式多机场景必填,单机场景不支持该参数。 一个实例跨机部署的节点个数,当前只支持取值为2或4。 |
service_type |
String |
必填。 创建Kubernetes的Service资源类型,当前只支持NodePort类型。 NodePort:表示从该参数获取Service的资源类型。 |
server_type |
String |
必填。 服务部署的形态,支持mindie_cross_node为多机部署和mindie_single_node单机部署。 |
scheduler |
String |
必填。 可选调度器类型,分布式多机场景仅支持default类型,单机场景支持default和volcano类型;如需启用NPU故障重调度功能,需要选择“volcano”调度器。
|
init_delay |
Int |
必填。 允许推理实例启动的时间。
取值范围为[10, 1800], 单位为秒。 |
detect_server_inner_error |
Bool |
必填。 是否检测Server内部推理状态。启用后readiness和liveness探针会检测推理功能是否正常,发现异常将重启Pod。 说明:
高并发场景下可能导致探针超时Pod被重启,用户需谨慎使用,设置合理的探针超时时间和重试次数。 |
liveness_timeout |
Int |
必填。 存活探针超时时间设置,取值范围[1, 600],单位秒。 注意在高并发场景下,liveness探针可能超时,此时认为MindIE Server状态异常,并对MindIE Server Pod进行重启。建议用户根据业务并发度配置合理的值,可以使用MindIE Benchmark工具设置并发量发送请求进行模拟测试,确保Pod在并发度条件下没有发生重启。 参考示例:LLaMA2-7B在 |
liveness_failure_threshold |
Int |
必填。存活探针最大允许的失败次数,取值范围[1, 10]。 参考示例:LLaMA2-7B在 |
readiness_timeout |
Int |
必填。就绪探针超时时间设置,取值范围[1, 600],单位秒。 就绪探针超时时间配置不足且当请求并发量大时,可能导致就绪探针超时,超时后Service状态变成“未就绪”,无法正常发送推理请求。 |
readiness_failure_threshold |
Int |
必填。就绪探针最大允许的失败次数,建议配置为1。 取值范围[1, 10]。 |
memory |
Int |
必填。 服务所需最少内存资源大小,单位为M。 默认值256000,取值范围[1000, 256000]。 |
cpu_core |
Int |
必填。 服务所需最少CPU资源大小,取值范围[1000, 256000],单位为M(1000M等于1核心)。 |
npu_type |
String |
必填。 服务所需NPU卡类型。
|
npu_chip_num |
Int |
必填。 单个节点所需NPU卡的数量。规格限制[1, 8]; 单机场景下,是一个实例占用的卡数; 分布式多机场景下,是一个实例在每个节点上占用的卡数,会分配匹配的卡资源并写入ranktable。且只支持全卡推理,当前仅支持配置为8卡的设备。 |
mindie_server_config |
Object |
必填。
|
infer_port |
Int |
必填。推理服务的推理端口。取值范围[1024, 65535] |
management_port |
Int |
必填。推理服务的管理端口。取值范围[1024, 65535] |
enable_tls |
Bool |
必填。是否开启https。 |
mies_install_path |
String |
必填。MindIE Service在镜像内的安装路径。 |
npu_fault_reschedule |
Bool |
NPU故障重调度(主动识别NPU设备故障并重调度Pod到正常NPU设备)配置,是否以优雅方式进行重调度。前提安装volcano组件,该参数仅对单机场景生效。
|
termination_grace_period_seconds |
Int |
Pod优雅退出时间,单机场景必填,分布式多机场景不支持。 设置Pod优雅退出最大的容忍时间,超过该时间K8s会强制杀掉服务。滚动更新过程,若设置时间不足,可能导致剩余请求未处理完中断。 参考配置:以LLaMA2-7B模型实例数2为例,在Atlas 300I Duo 推理卡+Atlas 800 推理服务器(型号:3000)单卡设备使用gsm8k数据集并发度为1000的请求,需要配置Pod优雅退出时间为800秒,保证Pod退出过程业务不中断。 取值范围[0, 3600];单位为秒。 在服务启动初始,未就绪时,此时服务无法正常处理优雅退出信号,删除服务将无法触发优雅退出,需等待程序自动退出或达到优雅退出的最大容忍时间。 |
max_unavailable |
String |
滚动更新配置,单机场景必填,分布式多机场景不支持。 更新所需的可以处于不可用状态的最大 Pod 数量,指的是replicas * max_unavailable向下取整。 max_unavailable格式必须是“{int数字}%”,取值范围0%~100%。 |
max_surge |
String |
滚动更新配置,单机场景必填,分布式多机场景不支持。 更新所需的可以超出期望副本数的最大Pod数量,指replicas * max_surge向上取整。 max_surge格式必须是“{int数字}%,取值范围0%~100%。 |
cd ./mindie-service/latest
mkdir -m 700 ./security mkdir -m 700 ./security/certs mkdir -m 700 ./security/keys mkdir -m 700 ./security/ca mkdir -p msclientuser_chian cat /home/{用户名称}/cas/msclientuser/cert.pem /home/{用户名称}/cas/mindiems/cert.pem > ./msclientuser_chian/cert.pem #/home//{用户名称}cas/msclientuser/cert.pem为:MindIE MS客户端msctl与MindIE MS服务端通信的证书;/home/{用户名称}/cas/mindiems/cert.pem为:中间CA证书文件路径 chmod 400 ./msclientuser_chian/cert.pem cp ./msclientuser_chian/cert.pem ./security/certs cp /etc/kubernetes/pki/ca.crt ./security/ca/ca.pem #/etc/kubernetes/pki/ca.crt为:Kubernetes根CA证书文件路径 chmod 600 ./security/ca/ca.pem cp /home/{用户名称}/cas/msclientuser/cert.key.pem ./security/keys #/home/{用户名称}/cas/msclientuser/cert.key.pem为:MindIE MS客户端msctl与MindIE MS服务端通信的私钥文件路径 rm -rf ./msclientuser_chian
export LD_LIBRARY_PATH=/path/to/mindie-service/latest/lib:$LD_LIBRARY_PATH