创建容器应用
命令功能
创建容器应用,消息参数为容器应用的配置信息,被创建的容器应用会保存在MEF Center的数据库中,只有被创建的容器应用才能进行容器应用部署卸载等操作。MEF Center收到容器应用创建消息后,对消息中各个字段的有效性进行校验,校验通过之后,将容器应用参数保存到数据库中,并在消息中返回唯一容器应用ID。
命令格式
操作类型:POST
URL:https://{ip}:{port}/edgemanager/v1/app
请求头:
Content-Type: application/json
请求消息体:
{
"appName": AppName,
"containers": [
{
"name": ContainerName,
"cpuRequest": CpuRequest,
"cpuLimit": CpuLimit,
"memRequest": MemoryRequest,
"memLimit": MemoryLimit,
"npu": Npu,
"image": ImageName,
"imageVersion": ImageVersion,
"env": [
{
"name": EnvVarName,
"value": EnvVarValue
}
],
"userID": UserId,
"groupID": GroupId,
"command": [
Command
],
"args" : [
Argument
],
"containerPort" : [
{
"name" : PortName,
"proto" : PortProto,
"containerPort" : ContainerPort,
"hostIP" : HostIP,
"hostPort" : HostPort
}
],
"hostPathVolumes":[
{
"name": name1,
"hostPath": HostPath,
"mountPath": mountPath
}
]
}
],
"description": Description
}
请求参数
参数 |
是否必选 |
参数说明 |
取值要求 |
|---|---|---|---|
appName |
必选 |
容器应用名称 |
字符串,支持1~32个字符,小写字母、数字和(-),开头和结尾只能是字母或数字。 |
description |
必选 |
容器应用描述信息 |
字符串,支持0~512个字符;不支持除空格外的其他空白字符。 |
containers |
必选 |
容器应用配置数组 |
对象数组,单个容器应用支持的容器配置数量为1~10。 |
参数 |
是否必选 |
说明 |
取值要求 |
|---|---|---|---|
name |
必选 |
容器名称。 |
字符串,取值长度为1~32个字符;支持小写字母、数字和其他字符(-),开头和结尾只能是字母或者数字;应用内容器名称不能重复。 |
cpuRequest |
必选 |
容器申请的CPU核个数。 |
数字,取值范围为0.01~1000,精确到小数点后两位。 |
cpuLimit |
可选 |
容器最多使用的CPU核个数。 |
数字,取值范围为0.01~1000,精确到小数点后两位,且取值大于或等于cpuRequest。 |
memRequest |
必选 |
容器申请的内存大小。 |
数字,取值范围为4~1024000,只能取整数,单位为MB。 |
memLimit |
可选 |
容器最多使用的内存大小。 |
数字,取值范围为4~1024000,只能取整数,单位为MB,且取值大于或等于memRequest。 |
npu |
可选 |
容器申请使用的NPU核个数。 |
数字,取值范围为0~32,只能取整数。 |
image |
必选 |
使用的镜像名称,使用第三方镜像仓时,全称需要包含镜像仓服务器IP或域名、端口、项目和镜像名。例如fd.fusiondirector.huawei.com:443/library/ubuntu;如果用户不指定镜像的主机名称和端口,容器应用会使用Docker公共仓库。 |
字符串,取值长度为1~256个字符;支持小写字母、大写字母、数字和其他字符(:-._/)。 |
imageVersion |
必选 |
镜像版本。 |
字符串,取值长度1~32个字符,小写字母、大写字母、数字和其他字符(-._)。 |
env |
可选 |
容器内配置的环境变量。 |
EnvVar对象数组,最大支持256组key~value。 |
userID |
可选 |
容器运行指定的用户ID。 不配置此项参数时,会以镜像制作的用户运行,如果镜像制作时的用户不为数字ID或者数字ID为0时,容器应用会在部署后运行失败。当运行推理容器时,需要使用驱动设备,因此不能配置用户ID。 |
数字,取值范围为1~65535,不能配置为0,即不支持容器以root用户运行。 部署推理容器时,指定用户ID为HwHiAiUser的用户ID(通常为1000)。 |
groupID |
可选 |
容器运行指定的组ID。 不配置此项参数时,会以镜像制作的用户组运行,如果镜像制作时的用户不为数字组ID或者数字组ID为0时,容器应用会在部署后运行失败。当运行推理容器时,需要使用驱动设备,因此不能配置组ID。 |
数字,取值范围为1~65535,不能配置为0,即容器不支持以root组用户运行。 部署推理容器时,指定组ID为HwHiAiUser的组ID(通常为1000)。 |
command |
可选 |
容器启动时的执行命令。 |
字符串数组,命令列表最多只支持16个,每个命令长度为1~256个字符,支持小写字母、大小字母、数字、空格和其他字符(-/._),结尾只能是大小写字母或数字。 |
args |
可选 |
容器启动时执行的命令参数。 |
字符串数组,参数列表最多只支持16个,每个命令长度为1~256个字符,支持小写字母、大小字母、数字、空格和其他字符(-/._=),结尾只能是大小写字母或数字。 |
containerPort |
可选 |
容器配置的主机端口和容器内端口映射。 |
ContainerPort对象数组,最大支持16组端口。 |
hostPathVolumes |
可选 |
容器主机路径挂载配置。 创建推理容器应用时需配置挂载路径,否则可能导致运行失败。 |
HostPathVolumes对象数组,最大支持256组。 |
参数 |
是否必选 |
说明 |
取值要求 |
|---|---|---|---|
name |
必选 |
环境变量名 |
字符串,取值为长度2~32个字符,支持大小写字母、数字和其他字符(-._);只能以大小写字母开头,以大小写字母和数字结尾。 |
value |
必选 |
环境变量值 |
字符串,取值长度为1~512个字符,支持大小写字母、数字其他字符(-._/:)和空格。 |
参数 |
是否必选 |
说明 |
取值要求 |
|---|---|---|---|
name |
必选 |
端口映射名称 |
字符串,取值长度为1~32个字符,支持小字母、数字、中划线(-);只能以小写字母、数字开头和结尾。 |
proto |
必选 |
端口映射指定的网络传输层协议 |
字符串,取值为TCP、UDP。 |
containerPort |
必选 |
容器内端口 |
数字,取值范围为1~65535,且只能取整数。 |
hostIP |
必选 |
端口映射绑定的主机IP地址 |
字符串,合法主机IP地址即可,只支持IPV4,不能配置为全0或者全255。 |
hostPort |
必选 |
端口映射主机端口地址 |
数字,取值范围为1024~65535,且只能取整数。 |
参数 |
是否必选 |
说明 |
取值要求 |
|---|---|---|---|
name |
必选 |
挂载卷名称 |
字符串,取值长度为1~32个字符;支持小写字母、数字和其他字符(-),开头和结尾只能是字母或者数字。 同一个容器内部挂载卷名称不能重复。 |
hostPath |
必选 |
容器挂载卷使用的主机路径。
说明:
仅支持配置挂载右侧列出的文件或目录的主机路径。若用户参考制作推理镜像或《Atlas 200I A2 加速模块 昇腾软件快速安装指南》制作容器镜像,对应默认的镜像内挂载路径请参见制作容器镜像->启动容器步骤。 |
仅支持配置挂载以下文件或目录的主机路径。
|
mountPath |
必选 |
容器内挂载路径 |
以“/”开始的路径字符串,其后可以接大小写字母,数字和其他字符(_./-),不能包含“..”,路径总长度为2-512个字符,同一个容器内部容器挂载路径名称不能重复。 |
使用样例
请求样例:
POST https://10.10.10.10:30035/edgemanager/v1/app
请求消息体:
{
"appName": "mef-apptest1",
"containers": [
{
"name": "container1",
"cpuRequest": 1,
"cpuLimit": 1,
"memRequest": 200,
"memLimit": 200,
"image": "ubuntu",
"imageVersion": "22.04",
"env": [
{
"name": "lib",
"value": "/test"
}
],
"userID": 1001,
"groupID": 1001,
"command": [
"/bin/bash","-c"
],
"args" : [
"sleep 30000"
],
"containerPort" : [
{
"name" : "test-port",
"proto" : "TCP",
"containerPort" : 1234,
"hostIP" : "xx.xx.xx.xx",
"hostPort" : 30023
}
]
}
],
"description": "a test case for app-manager"
}
{
"status":"00000000",
"msg":"success",
"data":3
}
响应状态码:200
输出说明
参数 |
类型 |
参数说明 |
|---|---|---|
status |
字符串 |
错误码 |
msg |
字符串 |
描述信息 |
data |
数字 |
创建的容器应用ID |