昇腾社区首页
中文
注册

MindIE MS客户端命令行工具

MindIE MS命令行工具是一个用于向MindIE MS服务端发送部署管理命令的客户端,为用户提供简单易用的服务部署工具,客户端命令如表1所示。

表1 客户端命令

指令

类型

说明

./msctl create infer_server -f 配置json文件名

create

客户端服务部署。

./msctl delete infer_server -n {服务名称}

delete

卸载服务,删除服务相关的Kubernetes资源,停止对外服务。

工具准备

  1. 首先将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
  2. MindIE MS服务端API接口中用户自行编写的json格式消息体与1.c中可执行msctl文件放在同一目录。
  3. 执行以下命令导入环境变量,将所依赖的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”参数值。

如果部署失败,请参见表1中的volumes参数,根据挂载的物理日志路径中的日志文件定位具体问题。

客户端卸载命令

使用msctl在MindIE MS客户端发送卸载请求命令,如下所示。
./msctl delete infer_server -n {server_name}

回显如下所示,则表示卸载请求命令下发成功且服务删除成功。

{
    "message": "succeed to clear resources",
    "status": "0"
}

也可以使用Kubernetes命令查看该服务是否已删除或者处于非Running状态,如下图所示。

kubectl get pod -A

被删除的服务进入Terminating状态一段时间后,再次查看部署服务状态,发现该服务已从列表中消失,即可开始部署新的多机任务。

异常场景返回

常见异常返回结果如表3所示。

表3 异常返回结果

错误场景

返回结果

重复部署同名服务

{

"message": "server with same name is already loaded",

"status": "1"

}

删除不存在的服务

Cannot find the resource /v1/servers/{your_name}