MindIE MS客户端命令行工具
MindIE MS命令行工具是一个用于向MindIE MS服务端发送部署管理命令的客户端,为用户提供简单易用的服务部署工具,客户端命令如表1所示。
指令 |
类型 |
说明 |
---|---|---|
./msctl create infer_server -f 配置json文件名 |
create |
客户端服务部署。 |
./msctl delete infer_server -n {服务名称} |
delete |
卸载服务,删除服务相关的Kubernetes资源,停止对外服务。 |
工具准备
- 首先将1.c中路径下的系统启动配置文件(msctl.json)移动至$HOME/.mindie_ms/路径下,并根据实际情况参考表2修改系统启动配置文件,配置样例如下所示(格式必须和样例保持一致)。
{ "http":{ "dstPort" : 有效Port, "dstIP" : "valid ip", "tls_enable": true, "ca_cert": "/path/ca.crt", "tls_cert": "/path/tls.crt", "tls_key": "/path/tls.key", "tls_crl": "/path/crl.pem", "timeout": 60 }, "log_level": "ERROR" }
表2 系统启动配置参数 参数
类型
说明
dstPort
Int
必填。
对端端口( MindIE MS服务端),与表2中的nodePort保持一致。
dstIP
String
必填。
服务端部署物理机IP地址。默认和Kubernetes管理节点的物理机IP保持一致。
tls_enable
Bool
必填。
MindIE MS客户端是否需要开启tls安全通信。
需要和表1中server_tls_enable参数保持一致。
ca_cert
String
tls_enable为true时必填。
默认使用HTTPS通信。
ca根证书文件。需MindIE MS服务端ca证书文件相互信任。
tls_cert
String
tls_enable为true时必填。
客户端tls证书文件。用户可通过ca_cert颁发证书或者用户自备证书。
tls_key
String
tls_enable为true时必填。
客户端tls秘钥文件。用户可通过ca_cert颁发私钥或者用户自备私钥。出于安全的考虑,建议使用加密私钥,如使用,在执行命令时会提供用户输入加密口令。
tls_crl
String
校验通信对端服务端的证书吊销列表crl文件,如为空,则不进行吊销校验。
timeout
Int
必填。
MindIE MS客户端可设置的等待响应时长,取值范围[1,60]。
log_level
String
必填。
客户端日志级别。
- DEBUG
- INFO
- WARNING
- ERROR
- CRITICAL
- 将MindIE MS服务端API接口中用户自行编写的json格式消息体与1.c中可执行msctl文件放在同一目录。
- 执行以下命令导入环境变量,将所依赖的so载入LD_LIBRARY_PATH。
export LD_LIBRARY_PATH=/$home/package2:$LD_LIBRARY_PATH
/$home/package2:该路径为1.c中放的物理机路径。
客户端部署命令
使用msctl在MindIE MS客户端发送部署请求命令,如下所示。
./msctl create infer_server -f infer_server.json
infer_server.json:MindIE MS服务端API接口中用户自行编写的infer_server.json配置文件。
回显如下所示,则表示部署请求命令下发成功。
{ "message": "creating the server!", "status": "0" }
执行以下Kubernetes查询指令,查询是否部署成功。
kubectl get pod -A
如下图所示,在Kubernetes的Pod资源用户自定义的{namespace}中,存在{server_name}-deployment-0-xxx且状态为Running时,则表示部署成功。
{server_name}和{namespace}为MindIE MS服务端API接口中用户自行编写的json配置文件中的“server_name”和“namespace”参数值。
客户端卸载命令
./msctl delete infer_server -n {server_name}
回显如下所示,则表示卸载请求命令下发成功且服务删除成功。
{ "message": "succeed to clear resources", "status": "0" }
也可以使用Kubernetes命令查看该服务是否已删除或者处于非Running状态,如下图所示。
kubectl get pod -A
被删除的服务进入Terminating状态一段时间后,再次查看部署服务状态,发现该服务已从列表中消失,即可开始部署新的多机任务。

- 卸载服务任务需等待服务彻底被删除后再进行多机服务的部署。
- 系统出现异常不能通过MindIE MS客户端命令进行时,请参见使用MindIE MS部署多机任务后系统出现异常,不能通过MindIE MS客户端卸载进行处理。
异常场景返回
常见异常返回结果如表3所示。