更新容器应用
命令功能
更新容器应用,按照指定容器应用ID,更新MEF Center中保存的容器应用信息,如果对应容器应用已部署,同时会更新对应已部署的容器应用。目前只支持修改对容器镜像名称和容器镜像版本的更新,对其他字段的变更不会被使用。
MEF Center更新已部署的容器应用成功时是应用在K8s中的daemonset资源更新成功,MEF Edge运行容器实际更新需要通过查询应用实例进行确认。
命令格式
操作类型:PACTH
URL:https://{ip}:{port}/edgemanager/v1/app
请求头:
Content-Type: application/json
{ "appID": AppId, "appName": AppName, "containers": [ { "name": ContainerName, "cpuRequest": CpuRequest, "cpuLimit": CpuLimit, "memRequest": MemoryRequest, "memLimit": MemoryLimit, "image": ImageName, "imageVersion": ImageVersion, "env": [ { "name": EnvVarName, "value": EnvVarValue } ], "userID": UserId, "groupID": GroupId, "command": [ Command ], "args" : [ Argument ], "ports" : [ { "name" : PortName, "proto" : PortProto, "containerPort" : ContainerPort, "hostIP" : HostIP, "hostPort" : HostPort } ] } ], "description": Description }
请求参数
参数 |
是否必选 |
说明 |
取值要求 |
---|---|---|---|
appID |
必选 |
容器应用ID |
取值范围[1,9223372036854775807]。 |
appName |
必选 |
容器应用名称 |
字符串,取值长度1~32个字符,小写字母、数字和“-”,开头结尾只能是字母数字。 |
description |
必选 |
容器应用描述信息 |
字符串,取值长度0~512个字符。并且不支持除空格外的其他空白字符。 |
containers |
必选 |
容器配置数组 |
对象数组,数组长度为1~10。 |
参数 |
是否必选 |
说明 |
取值要求 |
---|---|---|---|
name |
必选 |
容器名称 |
字符串,取值长度为1~32个字符;支持小写字母、数字和其他字符(-),开头和结尾只能是字母或者数字;应用内容器名称不能重复。 |
image |
必选 |
使用的镜像名称,使用第三方镜像仓时,全称需要包含镜像仓服务器IP或域名、端口、项目和镜像名。例如fd.fusiondirector.huawei.com:443/library/ubuntu;如果用户不指定镜像的主机名称和端口,容器应用会使用Docker公共仓库。 |
字符串,取值长度为1~256个字符;支持小写字母、大写字母、数字和其他字符(:-._/)。 |
imageVersion |
必选 |
镜像版本 |
字符串,取值长度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,只能取整数。 |
command |
可选 |
容器执行命令 |
字符串数组,命令列表最多只支持16个,每个命令长度为1~256个字符,支持小写字母、大小字母、数字、空格和其他字符(-._),结尾只能是大小写字母或数字。 |
args |
可选 |
容器执行命令参数 |
字符串数组,参数列表最多只支持16个,每个命令长度为1~256个字符,支持小写字母、大小字母、数字、空格和其他字符(-._=),结尾只能是大小写字母或数字。 |
env |
可选 |
环境变量 |
EnvVar对象数组,最大支持256组key~value。 |
containerPort |
可选 |
端口映射容器中端口 |
ContainerPort对象数组,最大支持16组端口。 |
userID |
必选 |
容器运行用户ID |
数字,取值范围为1~65535,不能配置为0,即不支持容器以root用户运行。 |
groupID |
必选 |
容器运行组ID |
数字,取值范围为1~65535,不能配置为0,即容器不支持以root组用户运行。 |
hostPathVolumes |
可选 |
容器主机路径挂载配置 |
HostPathVolumes对象数组,最大支持256组 |
参数 |
是否必选 |
说明 |
取值要求 |
---|---|---|---|
name |
必选 |
端口映射名 |
字符串,取值长度为1~32个字符,支持小字母、数字、中划线(-);只能以小写字母、数字开头和结尾。 |
proto |
必选 |
端口协议 |
字符串,取值为TCP、UDP、SCTP。 |
containerPort |
必选 |
容器端口 |
数字,取值范围为1~65535,且只能取整数。 |
hostIP |
必选 |
端口映射主机IP地址 |
字符串,合法主机IP地址即可,只支持IPV4,不能配置为全0或者全255。 |
hostPort |
必选 |
端口映射主机端口地址 |
数字,取值范围为1024~65535,且只能取整数。 |
参数 |
是否必选 |
说明 |
取值要求 |
---|---|---|---|
name |
必选 |
变量名 |
字符串,取值为长度1~32个字符,支持大小写字母、数字和其他字符(-._);只能以大小写字母开头,以大小写字母和数字结尾。 |
value |
必选 |
变量值 |
字符串,取值长度为1~512个字符,支持大小写字母、数字其他字符(-._/)。 |
参数 |
是否必选 |
说明 |
取值要求 |
---|---|---|---|
name |
必选 |
挂载卷名称 |
字符串,取值长度为1~32个字符;支持小写字母、数字和其他字符(-),开头和结尾只能是字母或者数字;同一个容器内部主机路径名称不能重复。 |
hostPath |
必选 |
主机路径 |
仅支持配置挂载以下文件或者目录的主机路径 "/etc/sys_version.conf", "/etc/hdcBasic.cfg", "/usr/lib64/libaicpu_processer.so", "/usr/lib64/libaicpu_prof.so", "/usr/lib64/libaicpu_sharder.so", "/usr/lib64/libadump.so", "/usr/lib64/libtsd_eventclient.so", "/usr/lib64/libaicpu_scheduler.so", "/usr/lib64/libcrypto.so.1.1.1m", "/usr/lib64/libyaml-0.so.2.0.9", "/usr/lib64/libdcmi.so", "/usr/lib64/libmpi_dvpp_adapter.so", "/usr/lib64/aicpu_kernels/", "/usr/local/sbin/npu-smi", "/usr/lib64/libstackcore.so", "/etc/slog.conf", "/usr/local/Ascend/driver/lib64", "/var/slogd", "/var/dmp_daemon" |
mountPath |
必选 |
容器内挂载路径 |
以“/”开始的路径字符串,其后可以接大小写字母,数字和其他字符(_./-),不能包含“..”,同一个容器内部容器挂载路径名称不能重复 |
使用样例
请求样例:
PATCH https://10.10.10.10:30035/edgemanager/v1/app
{ "appID": 3, "appName": "mef-apptest1", "containers": [ { "name": "container1", "cpuRequest": 1, "cpuLimit": 1, "memRequest": 200, "memLimit": 200, "image": "ubuntu", "imageVersion": "18.04", "env": [ { "name": "lib", "value": "/test" } ], "userId": 1001, "groupId": 1001, "command": [ "/bin/bash","-c" ], "args" : [ "sleep 30000" ], "ports" : [ { "name" : "test-port", "proto" : "TCP", "containerPort" : 1234, "hostIP" : "xx.xx.xx.xx", "hostPort" : 30023 } ], "hostPathVolume":[ ] } ], "description": "a test case for app-manager" }
{ "status":"00000000", "msg":"success" }
响应状态码:200
输出说明
参数 |
类型 |
参数说明 |
---|---|---|
status |
字符串 |
错误码 |
msg |
字符串 |
描述信息 |