文档
注册

更新容器应用

命令功能

更新容器应用,按照指定容器应用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
}

请求参数

表1 参数说明

参数

是否必选

说明

取值要求

appID

必选

容器应用ID

数字,取值范围[1,9223372036854775807],必须是存在的应用ID。

appName

必选

容器应用名称

字符串,取值长度1~32个字符,小写字母、数字和“-”,开头结尾只能是字母数字。

description

必选

容器应用描述信息

字符串,取值长度0~512个字符。并且不支持除空格外的其他空白字符。

containers

必选

容器配置数组

对象数组,数组长度为1~10。

表2 containers参数说明

参数

是否必选

说明

取值要求

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组

表3 ContainerPort参数说明

参数

是否必选

说明

取值要求

name

必选

端口映射名

字符串,取值长度为1~32个字符,支持小字母、数字、中划线(-);只能以小写字母、数字开头和结尾。

proto

必选

端口协议

字符串,取值为TCP、UDP、SCTP。

containerPort

必选

容器端口

数字,取值范围为1~65535,且只能取整数。

hostIP

必选

端口映射主机IP地址

字符串,合法主机IP地址即可,只支持IPV4,不能配置为全0或者全255。

hostPort

必选

端口映射主机端口地址

数字,取值范围为1024~65535,且只能取整数。

表4 EnvVar参数说明

参数

是否必选

说明

取值要求

name

必选

变量名

字符串,取值为长度1~32个字符,支持大小写字母、数字和其他字符(-._);只能以大小写字母开头,以大小写字母和数字结尾。

value

必选

变量值

字符串,取值长度为1~512个字符,支持大小写字母、数字其他字符(-._/)。

表5 HostPathVolumes参数说明

参数

是否必选

说明

取值要求

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

输出说明

表6 操作输出说明

参数

类型

参数说明

status

字符串

错误码

msg

字符串

描述信息

搜索结果
找到“0”个结果

当前产品无相关内容

未找到相关内容,请尝试其他搜索词