更新应用部署
功能介绍
该API用于修改一个应用部署。
URI
PUT /v3/{project_id}/edgemgr/deployments/{deployment_id}
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
project_id | 是 | String | 项目ID,获取方法请参见获取项目ID。 |
deployment_id | 是 | String | 应用部署ID |
请求参数
参数 | 是否必选 | 类型 | 描述 |
|---|---|---|---|
Content-Type | 是 | String | 消息体的类型(格式) 推荐您使用默认值application/json。 |
X-Auth-Token | 是 | String | 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值)。 |
ief-instance-id | 否 | String | 企业版实例ID,专业版实例为空值 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
deployment | 否 | UpdatePodDeployment object | 应用部署全量替换修改,应用更新时调用 |
description | 否 | String | 应用部署描述修改,只修改描述不需要传入deployment参数 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
configs | 是 | PodConfigs object | 应用实例配置 |
affinity | 否 | affinity object | 应用部署亲和性规则,仅企业版支持 |
init_containers | 否 | Array of ContainerDef objects | 应用部署init业务容器 |
containers | 是 | Array of ContainerDef objects | 应用部署业务容器 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
name | 是 | String | 容器名称,只允许英文小写字母、数字、中划线,最大长度32,英文小写字母或数字开头和结尾 |
image_url | 是 | String | 容器镜像URL |
args | 否 | Array of strings | 容器启动参数,字符总长度最大为65536 |
command | 否 | Array of strings | 容器启动命令,字符总长度最大为65536 |
resources | 否 | ResQuest object | 容器资源量 |
envs | 否 | Array of Env objects | 容器环境变量键值对 |
ports | 否 | Array of HostContainerPortMapping objects | 容器端口映射 |
privileged | 否 | Boolean | 是否启用特权容器,默认值false |
readiness_probe | 否 | Probe object | 工作负载业务探针配置 |
liveness_probe | 否 | Probe object | 工作负载存活探针配置 |
version | 否 | String | 容器版本,最大长度128个字符 |
volumes | 否 | Array of Volume objects | 容器挂载卷 |
npu_type | 否 | String | npu类型,支持D310类型。
|
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
name | 是 | String | 卷名称,小写字母或数字,最长63个字符 |
type | 是 | String | 卷的类型,支持configMap、secret、emptyDir、hostPath |
read_only | 是 | Boolean | 读写权限,默认读 |
source | 是 | String | 卷来源,type为hostPath时输入路径,要求以/开头,后面可包含中划线、反斜杠、下划线、点号、字母、数字。 secret时输入secret名称,configMap时输入configMap名称,emptyDir时输入disk或memory |
destination | 是 | String | 卷挂载路径,必须是合法的路径 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
http_get | 否 | HttpGet object | http健康检查,与exec二选一 |
exec | 否 | 表10 object | 执行命令检查,与http_get二选一 |
initial_delay_seconds | 否 | Long | 表示从工作负载启动后从多久开始探测,大于0且不大于3600的整数,默认为10 |
timeout_seconds | 否 | Long | 表示探测超时时间,大于0且不大于3600的整数,默认为1 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
path | 是 | String | 必须要以/开头,构造结果为:协议类型://主机地址:端口路径 |
port | 是 | Integer | 探测的http端口,1到65535之间的整数 |
host | 否 | String | 请求的主机地址,默认为容器IP |
scheme | 否 | String | 协议类型,HTTP或HTTPS,默认HTTP |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
container_port | 是 | Long | 容器端口,1到65535之间的整数 |
host_port | 否 | Long | 主机端口,1到65535之间的整数 |
host_ip | 否 | String | 对应主机网卡地址 |
host_port_range | 否 | HostPortRange object | 主机端口范围,在范围内为应用实例自动分配主机端口;与主机端口参数二选一;仅支持企业版 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
min_port | 是 | Long | 主机端口下限值,1到65535之间的整数 |
max_port | 是 | Long | 主机端口上限值,1到65535之间的整数;max_port需大于min_port |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
name | 是 | String | 环境变量的key,由大小写字母或下划线开头,由数字、大小写字母、下划线组成,最大长度2048个字符,不允许重复 |
value | 否 | String | 环境变量的value,最大长度20480个字符。value、value_from和field_path必须三选一使用。 |
value_from | 否 | 表17 object | 环境变量可使用配置项和密钥导入 |
field_path | 否 | String | 该参数目前只支持赋值“status.hostIP”,即引用边缘节点的IP地址作为环境变量。 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
cpu | 否 | String | cpu核数,大于等于0.01,最大1000;请求不需要带单位 |
memory | 否 | String | 内存大小,单位兆,大于等于0.01,最大1024000。注意:内存的limits值最小为4;请求不需要带单位 |
gpu | 否 | String | Gpu显存大小,单位兆,大于等于0.01,最大1024000;请求不需要带单位 |
npu | 否 | String | Npu个数,大于0,最大1000;请求不需要带单位 |
参数 | 是否必选 | 参数类型 | 描述 |
|---|---|---|---|
host_network | 是 | Boolean | 应用实例是否启用主机网络,不启用则使用端口映射,默认值false |
host_pid | 否 | Boolean | 应用实例是否与主机共PID命名空间,默认值false。 |
migration | 否 | Boolean | 应用实例故障是否迁移,指定节点组部署时必选,默认值false |
restart_policy | 是 | String | 应用实例重启策略,可选值Always、OnFailure、Never。 说明: restart_policy不支持更新。 |
toleration_seconds | 否 | Integer | 应用实例故障容忍时间,容忍时间到达后迁移应用实例,只在指定节点组部署时生效。 |
响应参数
状态码为 200 时:
参数 | 参数类型 | 描述 |
|---|---|---|
id | String | 应用部署uuid |
name | String | 应用部署名称,只允许英文小写字母、数字、中划线,最大长度32,英文小写字母或数字开头和结尾 |
replicas | Integer | 应用部署总副本数 |
ready_replicas | Integer | 应用部署正常副本数 |
description | String | 应用部署描述,最大长度255,不允许^ ~ # $ % & * < > ( ) [ ] { } ' " \ |
group_id | String | 应用部署到指定节点组,与node_ids二选一 |
node_ids | Array of strings | 应用部署到指定节点,当前只支持一个边缘节点 |
tags | Array of Attribute objects | - |
api_version | String | 应用部署版本 |
source | String | 应用部署来源:自定义(userdefined) |
project_id | String | 项目ID |
created_at | String | 应用部署创建时间 |
updated_at | String | 应用部署更新时间 |
template | PodRequest object | 应用部署模板 |
state | String | 应用状态,仅包括冻结(FREEZE)、删除中(PENDING_DELETE)、删除失败(DELETE_FAILED),保留字段 |
source_id | String | 保留字段 |
参数 | 参数类型 | 描述 |
|---|---|---|
configs | PodConfigs object | 应用实例配置 |
affinity | affinity object | 应用部署亲和性规则,仅企业版支持 |
init_containers | Array of ContainerDef objects | 应用部署init业务容器 |
containers | Array of ContainerDef objects | 应用部署业务容器 |
参数 | 参数类型 | 描述 |
|---|---|---|
name | String | 容器名称,只允许英文小写字母、数字、中划线,最大长度32,英文小写字母或数字开头和结尾 |
image_url | String | 容器镜像URL |
args | Array of strings | 容器启动参数 |
command | Array of strings | 容器启动命令 |
resources | ResQuest object | 容器资源量 |
envs | Array of Env objects | 容器环境变量键值对 |
ports | Array of HostContainerPortMapping objects | 容器端口映射 |
privileged | Boolean | 是否启用特权容器,默认值false |
readiness_probe | Probe object | 工作负载业务探针配置 |
liveness_probe | Probe object | 工作负载存活探针配置 |
version | String | 容器版本 |
volumes | Array of Volume objects | 容器挂载卷 |
npu_type | String | npu类型,支持D310类型。
|
参数 | 参数类型 | 描述 |
|---|---|---|
name | String | 卷名称,小写字母或数字,最长63个字符 |
type | String | 卷的类型,支持configMap、secret、emptyDir、hostPath |
read_only | Boolean | 读写权限,默认读 |
source | String | 卷来源,type为hostPath时输入路径,要求以/开头,后面可包含中划线,反斜杠,下划线,点号,字母,数字。 secret时输入secret名称,configMap时输入configMap名称,emptyDir时输入disk或memory。 |
destination | String | 卷挂载路径,必须是合法的路径 |
参数 | 参数类型 | 描述 |
|---|---|---|
http_get | HttpGet object | http健康检查 |
exec | 表26 object | 执行命令检查 |
initial_delay_seconds | Long | 表示从工作负载启动后从多久开始探测,大于0且不大于3600的整数,默认为10 |
timeout_seconds | Long | 表示探测超时时间,大于0且不大于3600的整数,默认为1 |
参数 | 参数类型 | 描述 |
|---|---|---|
path | String | 必须要以/开头,构造结果为:协议类型://主机地址:端口路径 |
port | Integer | 探测的http端口,1到65535之间的整数 |
host | String | 主机地址,默认为容器IP |
scheme | String | 协议类型,HTTP或HTTPS,默认HTTP |
参数 | 参数类型 | 描述 |
|---|---|---|
container_port | Long | 容器端口,1到65535之间的整数 |
host_port | Long | 主机端口,1到65535之间的整数 |
host_ip | String | 对应主机网卡地址 |
host_port_range | HostPortRange object | 主机端口范围,在范围内为应用实例自动分配主机端口;与主机端口参数二选一 |
参数 | 参数类型 | 描述 |
|---|---|---|
min_port | Long | 主机端口下限值,1到65535之间的整数 |
max_port | Long | 主机端口上限值,1到65535之间的整数;max_port需大于min_port |
参数 | 参数类型 | 描述 |
|---|---|---|
name | String | 环境变量的key,由大小写字母或下划线开头,由数字、大小写字母、下划线组成,最大长度2048个字符,不允许重复 |
value | String | 环境变量的value,最大长度20480个字符。value、value_from和field_path必须三选一使用。 |
value_from | 表34 object | 环境变量可使用配置项和密钥导入 |
field_path | String | 该参数目前只支持赋值“status.hostIP”,即引用边缘节点的IP地址作为环境变量。 |
参数 | 参数类型 | 描述 |
|---|---|---|
cpu | String | cpu核数,大于0.01,最大1000 |
memory | String | 内存大小,单位兆,大于等于0.01,最大1024000。注意:内存的limits值最小为4 |
gpu | String | Gpu显存大小个数,单位兆,大于等于0.01,最大1024000 |
npu | String | Npu个数,大于0,最大1000 |
参数 | 参数类型 | 描述 |
|---|---|---|
host_network | Boolean | 应用实例是否启用主机网络,不启用则使用端口映射,默认值false |
host_pid | Boolean | 应用实例是否与主机共PID命名空间,默认值false |
migration | Boolean | 应用实例故障是否迁移,指定节点组部署时必选,默认值false |
restart_policy | String | 应用实例重启策略,可选值Always、OnFailure、Never |
toleration_seconds | Integer | 应用实例故障容忍时间,容忍时间到达后迁移应用实例,只在指定节点组部署时生效 |
参数 | 参数类型 | 描述 |
|---|---|---|
key | String | 数量不超过10个;不允许重复;只允许大小写字母、数字、下划线和中划线,不允许为空,最大长度为36个字符 |
value | String | 只允许大小写字母、数字、下划线、中划线和点,最大长度为43个字符 |
参数 | 参数类型 | 描述 |
|---|---|---|
secret | 表35 object | 环境变量引用密钥时使用。使用ValueFrom时,secret与configmap必须二选一。 |
configmap | 表36 object | 环境变量引用配置项时使用。 |
状态码为 400 时:
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述信息 |
状态码为 500 时:
参数 | 参数类型 | 描述 |
|---|---|---|
error_code | String | 错误码 |
error_msg | String | 错误描述信息 |
请求示例
{
"deployment": {
"replicas": 1,
"template": {
"configs": {
"host_network": true,
"host_pid": true,
"migration": true,
"restart_policy": "Always",
"toleration_seconds": 300
},
"containers": [
{
"name": "container-0",
"image_url": "",
"args": [
"-c",
"sleep 1000"
],
"command": [
"/bin/bash"
],
"resources": {
"limits": {
"cpu": "0.25",
"memory": "500",
"gpu": "500"
},
"requests": {
"cpu": "0.25",
"memory": "500",
"gpu": "500"
}
},
"envs": [
{
"name": "CERT_PATH",
"value": "/opt/cert"
}
],
"ports": [
{
"container_port": 80,
"host_port": 80
}
],
"privileged": true,
"readiness_probe": {
"http_get": {
"path": "/",
"port": 80,
"scheme": "HTTP"
},
"initial_delay_seconds": 10,
"timeout_seconds": 10
},
"liveness_probe": {
"http_get": {
"path": "/",
"port": 80,
"scheme": "HTTP"
},
"initial_delay_seconds": 10,
"timeout_seconds": 10
},
"version": "1.0"
}
]
}
},
"description": "this is a test app"
} 响应示例
状态码为 200 时:
{
"id": "3e64d98a-37c5-43a6-9bfe-052b9083e362",
"name": "app-test",
"replicas": 1,
"ready_replicas": 1,
"description": "this is a test app",
"group_id": "",
"node_ids": [
"29d20c18-c20c-4a45-a087-42c766fc5d97"
],
"tags": [
{
"key": "app",
"value": "test"
}
],
"api_version": "v3",
"source": "userdefine",
"project_id": "bcd83056c918480f8f190844bd425b23",
"created_at": "2019-10-10T02:21:38.489Z",
"updated_at": "2019-10-10T02:21:38.489Z",
"template": {
"configs": {
"host_network": true,
"host_pid": true,
"migration": true,
"restart_policy": "Always",
"toleration_seconds": 300
},
"init_containers": []
"containers": [
{
"name": "container-0",
"image_url": "",
"npu_type": "",
"args": [
"-c",
"sleep 1000"
],
"command": [
"/bin/bash"
],
"resources": {
"limits": {
"cpu": "0.25",
"memory": "500",
"gpu": 500"
},
"requests": {
"cpu": "0.25",
"memory": "500",
"gpu": "500"
}
},
"envs": [
{
"name": "CERT_PATH",
"value": "/opt/cert"
}
],
"ports": [
{
"container_port": 80,
"host_port": 80
}
],
"privileged": true,
"readiness_probe": {
"http_get": {
"path": "/",
"port": 80,
"scheme": "HTTP"
},
"initial_delay_seconds": 10,
"timeout_seconds": 10
},
"liveness_probe": {
"http_get": {
"path": "/",
"port": 80,
"scheme": "HTTP"
},
"initial_delay_seconds": 10,
"timeout_seconds": 10
},
"version": "1.0"
}
]
}
} 状态码为 400 时:
{
"error_code" : "IEF.100001",
"error_msg" : "PROJECT_ID not found"
} 状态码为 500 时:
{
"error_code" : "IEF.100158",
"error_msg" : "Fail to extract gpu information"
} 错误码
请参见错误码。

