使用msctl部署服务

工具使用

MindIE MS deployer提供命令行工具,可供用户使用,当前提供的对外命令为:

表1 客户端命令

指令

类型

说明

./bin/msctl create infer_server -f ./conf/infer_server.json

create

客户端服务部署。

配置文件需要不大于640权限,否则启动失败。

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

delete

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

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

get

获取服务状态,包括服务是否已就绪。

./bin/msctl -h/--help

-

命令使用帮助。

客户端部署命令

使用msctl在MindIE MS客户端发送部署请求命令,如下所示。

./bin/msctl create infer_server -f ./conf/infer_server.json

infer_server.json:4中用户配置的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}RESTful接口API中用户自行编写的json配置文件中的“server_name”“namespace”参数值。

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

客户端卸载命令

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

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

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

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

kubectl get pod -A

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

客户端查询命令

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

回显如下所示,则表示查询请求命令下发成功。

{
    "data": {
        "instances_status": [
            {
                "instance_id": 0,
                "liveness": true,
                "readiness": true,
                "restore_state": "none"
            }
        ],
        "model_info": {
            "docker_label": null,
            "max_batch_total_tokens": 8192,
            "max_best_of": 1,
            "max_concurrent_requests": 200,
            "max_input_length": 2048,
            "max_stop_sequences": null,
            "max_waiting_tokens": null,
            "models": [
                {
                    "max_total_tokens": 2560,
                    "model_device_type": "npu",
                    "model_dtype": "float16",
                    "model_id": "llama_65b",
                    "model_pipeline_tag": "text-generation",
                    "model_sha": null
                }
            ],
            "sha": null,
            "validation_workers": null,
            "version": "1.0.RC3",
            "waiting_served_ratio": null
        },
        "server_name": "mindie-server",
        "server_status_msg": "created: succeed to create the server, and succeed to save server status to file"
    },
    "message": "success",
    "status": "0"
}

重要参数解释:

后续用户使用MindIE Server推理能力输入EndPoint RESTful接口使用说明指令时,只需要将{port}设置为表2中service_port参数的值,{ip}设置为Kubernetes部署管理节点IP即可。