UpdateContainerGroup - 更新一个容器组

更新实例。

接口说明

  • 仅支持处于启动中(Pending)或运行中(Running)状态的 ECI 实例进行更新。更新操作后,ECI 实例状态将变更为更新中(Updating)。

  • 更新 RestartPolicy 配置为 Never 的 ECI 实例可能会有容器 Failed 的风险,请慎重更新。

调试

您可以在OpenAPI Explorer中直接运行该接口,免去您计算签名的困扰。运行成功后,OpenAPI Explorer可以自动生成SDK代码示例。

调试

授权信息

下表是API对应的授权信息,可以在RAM权限策略语句的Action元素中使用,用来给RAM用户或RAM角色授予调用此API的权限。具体说明如下:

  • 操作:是指具体的权限点。

  • 访问级别:是指每个操作的访问级别,取值为写入(Write)、读取(Read)或列出(List)。

  • 资源类型:是指操作中支持授权的资源类型。具体说明如下:

    • 对于必选的资源类型,用前面加 * 表示。

    • 对于不支持资源级授权的操作,用全部资源表示。

  • 条件关键字:是指云产品自身定义的条件关键字。

  • 关联操作:是指成功执行操作所需要的其他权限。操作者必须同时具备关联操作的权限,操作才能成功。

操作

访问级别

资源类型

条件关键字

关联操作

eci:UpdateContainerGroup

update

*containergroup

acs:eci:{#regionId}:{#accountId}:containergroup/{#containergroupId}

  • eci:tag

请求参数

名称

类型

必填

描述

示例值

RegionId

string

地域 ID。

cn-hangzhou

RegionId

string

地域 ID。

cn-hangzhou

ContainerGroupId

string

指定需要更新的 ECI 实例 ID,即容器组 ID。

eci-2zelg8vwnlzdhf8hv****

RestartPolicy

string

实例重启策略。取值范围:

  • Always:总是重启

  • Never:从不重启

  • OnFailure:失败时重启

Always

ClientToken

string

保证请求幂等性。从您的客户端生成一个参数值,确保不同请求间该参数值唯一。只支持 ASCII 字符,且不能超过 64 个字符。更多详情,请参阅如何保证幂等性

123e4567-e89b-12d3-a456-426655440000

Cpu

number

实例级别(容器组)的 vCPU 数。

2.0

Memory

number

实例级别的(容器组)的内存数。单位为 GiB。

4.0

ResourceGroupId

string

所属资源组 ID。

rg-2df3isufhi38****

Tag

array<object>

实例绑定的标签列表。

object

实例绑定的标签列表。

Key

string

标签键。

name

Value

string

标签值。

hxh

Volume

array<object>

数据卷列表。

array<object>

数据卷列表。

Name

string

数据卷名称。

test-empty

Type

string

数据卷类型。取值范围:

  • EmptyDirVolume:EmptyDir 类型的数据卷,表示临时目录。

  • ConfigFileVolume:ConfigFile 类型的数据卷,表示配置文件。

  • NFSVolume:NFS 类型的数据卷,表示网络文件系统,例如 NAS。

  • FlexVolume:使用 FlexVolume 插件扩展存储类型,支持挂载云盘、NAS 和 OSS。

  • HostPathVolume:HostPath 类型的数据卷,表示宿主机上的文件或目录。该取值暂未开放使用。

EmptyDirVolume

NFSVolume.Path

string

NFS 数据卷要挂载的路径。

/

NFSVolume.Server

string

NFS 数据卷的挂载点地址。

071e349b04-bsd39.cn-hangzhou.nas.aliyuncs.com

NFSVolume.ReadOnly

boolean

NFS 数据卷的读取权限。取值范围:

  • true:NFS Volume 具有只读权限。

  • false:NFS Volume 具有可读可写权限。

false

ConfigFileVolume.ConfigFileToPath

array<object>

ConfigFile 数据卷对应的配置文件信息。

object

ConfigFile 数据卷对应的配置文件信息。

Path

string

配置文件的相对文件路径。

jin/test

Content

string

配置文件的内容。采用 Base64 编码。

bGl1bWk=

EmptyDirVolume.Medium

string

EmptyDir 数据卷的存储媒介,默认为空,使用 node 文件系统;支持配置为 Memory,表示使用内存。

Memory

EmptyDirVolume.SizeLimit

string

EmptyDir 数据卷的大小。取值请带上单位,建议使用 Gi 或 Mi。

256Mi

FlexVolume.FsType

string

使用 FlexVolume 插件挂载云盘时,云盘的文件系统类型。支持的类型包括 ext4、ext3、xfs、vfat。默认为 ext4。

ext4

FlexVolume.Driver

string

使用 FlexVolume 插件挂载数据卷时的驱动类型。取值范围如下:

  • alicloud/disk:挂载云盘。

  • alicloud/nas:挂载 NAS。

  • alicloud/oss:挂载 OSS。

alicloud/disk

FlexVolume.Options

string

FlexVolume 对象选项列表。为 KV 形式,采用 JSON 传递。例如通过 FlexVolume 挂载云盘时,Options 表示云盘的配置参数。更多信息,请参见数据卷概述

{"volumeId":"d-2zehdahrwoa7srg****","performanceLevel": "PL2"}

HostPathVolume.Path

string

HostPath 数据卷在宿主机上的路径。

说明

该参数暂未开放使用。

/tmp

HostPathVolume.Type

string

HostPath 数据卷的类型。取值范围:

  • Directory:目录。

  • File:文件。

说明

该参数暂未开放使用。

Directory

DnsConfig.Search

array

DNS 搜索域列表。

my.dns.search.suffix

string

DNS 搜索域列表。

my.dns.search.suffix

DnsConfig.NameServer

array

DNS 服务器的 IP 地址列表。

1.2.3.4

string

DNS 服务器的 IP 地址列表。

1.2.3.4

DnsConfig.Option

array<object>

DNS 配置信息。

object

DNS 配置信息。

Value

string

DNS 配置的选项变量值。

2

Name

string

DNS 配置的选项变量名。

ndots

Container

array<object>

指定新的容器组配置信息。

array<object>

指定新的容器组配置信息。

ReadinessProbe.TimeoutSeconds

integer

检查超时的时间。默认为 1 秒,最小为 1 秒。

5

ReadinessProbe.SuccessThreshold

integer

从上次检查失败后重新认定检查成功的检查次数阈值(必须是连续成功),默认为 1。

1

SecurityContext.Capability.Add

array

为容器内的进程授予某些特定的权限。目前仅支持配置为 NET_ADMIN 和 NET_RAW。

说明

NET_RAW 默认不支持,需提交工单申请。

string

为容器内的进程授予某些特定的权限。目前仅支持配置为 NET_ADMIN 和 NET_RAW。

说明

NET_RAW 默认不支持,需提交工单申请。

NET_ADMIN

ReadinessProbe.TcpSocket.Port

integer

TcpSocket 检测的端口。

5000

ReadinessProbe.HttpGet.Scheme

string

使用 HTTP 请求方式进行健康检查时,HTTP Get 请求对应的协议类型,取值范围:

  • HTTP

  • HTTPS

HTTP

LivenessProbe.PeriodSeconds

integer

检查执行的周期。默认为 10 秒,最小为 1 秒。

10

SecurityContext.ReadOnlyRootFilesystem

boolean

是否只读根文件系统。取值目前仅支持:true。

true

EnvironmentVar

array<object>

容器的环境变量信息列表。

object

容器的环境变量信息列表。

Key

string

容器的环境变量名。

PATH

Value

string

容器的环境变量值。

/usr/bin/local/

FieldRef.FieldPath

string

使用 Pod 字段作为环境变量。目前仅支持 status.podIP。

status.podIP

LivenessProbe.TcpSocket.Port

integer

TcpSocket 检测的端口。

80

Tty

boolean

是否开启交互。默认为 false,如果 Command 为/bin/bash 类型,需要设置为 true。

false

WorkingDir

string

容器工作目录。

/usr/share/

Arg

array

容器启动参数。最多 10 个。

hello

string

容器启动参数。

hello

Stdin

boolean

此容器是否应在容器运行时为标准输入分配缓冲区。如果未设置,则容器中标准输入的读取值将导致 EOF。默认为 false。

false

LivenessProbe.InitialDelaySeconds

integer

检查开始执行的时间。以容器启动完成为起点开始计算。

10

VolumeMount

array<object>

容器的数据卷信息列表。

object

容器的数据卷信息列表。

MountPropagation

string

数据卷的挂载传播设置。挂载传播允许将 Container 挂载的卷共享到同一 Pod 中的其他 Container,甚至可以共享到同一节点上的其他 Pod。取值范围:

  • None:该卷不感知任何后续在此卷或其子目录上执行的挂载操作。

  • HostToContainer:该卷将会感知到后续在此卷或其子目录上的挂载操作。

  • Bidirectional:和 HostToContainerr 类似,能感知挂载操作。另外,该卷将被传播回主机和使用同一卷的所有 Pod 的所有容器。

默认值:None

None

MountPath

string

容器挂载的目录。容器挂载目录下的内容会被 volume 的内容直接覆盖,请谨慎使用。

/usr/share/

ReadOnly

boolean

是否只读。默认值:false

false

SubPath

string

数据卷的子目录,方便 Pod 将同一个 Volume 下不同目录挂载到容器不同目录。

/usr/share/sub/

Name

string

容器挂载的数据卷名称。从 ECI 实例(容器组)挂载的数据卷中选择,即取值范围为配置的 Volume.N.Name 参数。

test-empty

ImagePullPolicy

string

镜像拉取策略。取值范围:

  • Always:总是拉取。每次都拉取镜像。

  • IfNotPresent:按需拉取。优先使用本地镜像,本地没有镜像时则拉取镜像。

  • Never:从不拉取。使用本地镜像,不拉取镜像。

Never

StdinOnce

boolean

当标准输入为 true 时,标准输入流将在多个附加会话中保持开启状态。如果 StdinOnce 设为 true,标准输入在容器开启时被打开,在首个客户端附加到标准输入之前都为空,然后会一直保持开启状态,接收数据,直到客户端连接断开,此时标准输入被关闭,在容器重启前一直保持关闭状态。

true

LifecyclePreStopHandlerTcpSocketPort

integer

使用 TCPSocket 方式设置 preStop 回调函数时,TCP Socket 检测的端口。

80

LifecyclePostStartHandlerHttpGetScheme

string

使用 HTTP 请求方式设置 postStart 回调函数时,HTTP Get 请求检测的路径。

/healthyz

ReadinessProbe.PeriodSeconds

integer

检查执行的周期,默认为 10 秒,最小为 1 秒。

3

LivenessProbe.SuccessThreshold

integer

从上次检查失败后重新认定检查成功的检查次数阈值(必须是连续成功)。默认为 1 次,当前必须为 1 次。

1

Command

array

容器启动命令。最多 20 个,单个命令支持 256 个字符。

echo

string

容器启动命令。单个命令支持 256 个字符。

echo

LifecyclePostStartHandlerHttpGetHost

string

使用 HTTP 请求方式设置 postStart 回调函数时,接收 HTTP Get 请求的主机地址。

hide

ReadinessProbe.HttpGet.Path

string

HttpGet 检测的路径。

/usr/

LivenessProbe.Exec.Command

array

容器内检测命令。

string

容器内检测命令。

echo

LifecyclePostStartHandlerTcpSocketPort

integer

使用 TCPSocket 方式设置 postStart 回调函数时,TCP Socket 检测的端口。

1

LifecyclePostStartHandlerHttpGetPath

string

使用 HTTP 请求方式设置 postStart 回调函数时,HTTP Get 请求检测的路径。

/healthyz

LifecyclePostStartHandlerExec

array

使用命令行方式设置 postStart 回调函数时,在容器内执行的命令。

hide

string

使用命令行方式设置 postStart 回调函数时,在容器内执行的命令。

["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]

LifecyclePreStopHandlerHttpGetPath

string

使用 HTTP 请求方式设置 preStop 回调函数时,HTTP Get 请求检测的路径。

/healthyz

Port

array<object>

容器端口号。取值范围:1~65535

object

容器端口号。取值范围:1~65535

Protocol

string

TCP/UDP。

TCP

Port

integer

端口号。取值范围:1~65535

8080

LifecyclePreStopHandlerHttpGetScheme

string

使用 HTTP 请求方式设置 preStop 回调函数时,HTTP Get 请求对应的协议类型,取值范围:

  • HTTP

  • HTTPS

HTTP

LivenessProbe.HttpGet.Scheme

string

使用 HTTP 请求方式进行健康检查时,HTTP Get 请求对应的协议类型,取值范围:

  • HTTP

  • HTTPS

HTTP

LifecyclePostStartHandlerHttpGetHttpHeaders

array<object>

生成的 http 请求头中,有效的 http 请求头信息集合。

object

生成的 http 请求头中,有效的 http 请求头信息集合。

Value

string

使用 HTTP 请求方式设置 postStart 回调函数时,HTTP Get 请求的请求参数值。

test

Name

string

使用 HTTP 请求方式设置 postStart 回调函数时,HTTP Get 请求的请求参数。

testValue

ReadinessProbe.HttpGet.Port

integer

HttpGet 检测的端口号。

8080

LifecyclePostStartHandlerTcpSocketHost

string

使用 TCP Socket 方式设置 postStart 回调函数时,TCP Socket 检测的主机地址。

10.0.XX.XX

Gpu

integer

指定容器使用的 GPU 个数。

1

ReadinessProbe.InitialDelaySeconds

integer

检查开始执行的时间,以容器启动完成为起点计算。

10

LifecyclePreStopHandlerExec

array

使用命令行方式设置 preStop 回调函数时,在容器内执行的命令。

hide

string

使用命令行方式设置 preStop 回调函数时,在容器内执行的命令。

["/bin/sh", "-c","echo Hello from the preStop handler > /usr/share/message"]

Memory

number

容器内存大小。

2.0

Name

string

容器名称。

jenkins

LifecyclePreStopHandlerHttpGetHost

string

使用 HTTP 请求方式设置 preStop 回调函数时,接收 HTTP Get 请求的主机地址。

10.0.XX.XX

LifecyclePreStopHandlerTcpSocketHost

string

使用 TCP Socket 方式设置 preStop 回调函数时,TCP Socket 检测的主机地址。

10.0.XX.XX

Image

string

容器镜像。

jenkins

LifecyclePreStopHandlerHttpGetPort

integer

使用 HTTP 请求方式设置 preStop 回调函数时,HTTP Get 请求检测的端口号。

1

LivenessProbe.FailureThreshold

integer

从上次检查成功后认定检查失败的检查次数阈值(必须是连续失败)。默认为 3 次。

3

ReadinessProbe.Exec.Command

array

容器内检测的命令。

string

容器内检测的命令。

echo

LifecyclePreStopHandlerHttpGetHttpHeader

array<object>

生成的 http 请求头信息。

object

生成的 http 请求头信息。

Value

string

使用 HTTP 请求方式设置 preStop 回调函数时,HTTP Get 请求的请求参数值。

testValue

Name

string

使用 HTTP 请求方式设置 preStop 回调函数时,HTTP Get 请求的请求参数。

test

ReadinessProbe.FailureThreshold

integer

从上次检查成功后认定检查失败的检查次数阈值(必须是连续失败)。默认为 3 次。

3

Cpu

number

容器 vCPU 大小。

1.0

LivenessProbe.HttpGet.Port

integer

HttpGet 检测的端口号。

8080

LivenessProbe.HttpGet.Path

string

HttpGet 检测的路径。

/usr/local/bin

LivenessProbe.TimeoutSeconds

integer

检查超时的时间。默认为 1 秒,最小为 1 秒。

1

SecurityContext.RunAsUser

integer

用于运行容器进程入口点的 UID。

1377

LifecyclePostStartHandlerHttpGetPort

integer

使用 HTTP 请求方式设置 postStart 回调函数时,HTTP Get 请求检查的端口号。

1

InitContainer

array<object>

指定新的 Init 容器信息。

array<object>

指定新的 Init 容器信息。

SecurityContext.Capability.Add

array

为容器内的进程授予某些特定的权限。目前仅支持配置为 NET_ADMIN 和 NET_RAW。

说明

NET_RAW 默认不支持,需提交工单申请。

string

为容器内的进程授予某些特定的权限。目前仅支持配置为 NET_ADMIN 和 NET_RAW。

说明

NET_RAW 默认不支持,需提交工单申请。

NET_ADMIN

Image

string

Init 容器镜像。

nginx

VolumeMount

array<object>

挂载数据卷信息列表。

object

挂载数据卷信息列表。

MountPropagation

string

数据卷的挂载传播设置。挂载传播允许将 Container 挂载的卷共享到同一 Pod 中的其他 Container,甚至可以共享到同一节点上的其他 Pod。取值范围:

  • None:该卷不感知到任何后续在此卷或其任何子目录上执行的挂载变化。

  • HostToContainer:该卷将会感知到主机后续针对此卷或其任何子目录的挂载操作。

  • Bidirectional:和 HostToContainer 类似。另外,该卷将被传播回主机和使用同一卷的所有 Pod 的所有容器。

默认值:None

None

MountPath

string

Init 容器挂载目录。容器挂载目录下的内容将被 volume 的内容直接覆盖,请谨慎使用。

/pod/data

ReadOnly

boolean

是否只读。默认值:false

false

SubPath

string

数据卷的子目录,方便 Pod 将同一个 Volume 下不同目录挂载到容器不同目录。

data2/

Name

string

Init 容器挂载的数据卷名称。从 ECI 实例(容器组)挂载的数据卷中选择,即取值范围为配置的 Volume.N.Name 参数。

default-volume1

Port

array<object>

端口号。取值范围:1~65535。

object

端口号。取值范围:1~65535。

Protocol

string

TCP/UDP。

TCP

Port

integer

Init 容器端口号 。取值范围:1~65535。

9000

SecurityContext.ReadOnlyRootFilesystem

boolean

容器运行的根文件系统是否为只读。目前仅支持配置为 true。

true

EnvironmentVar

array<object>

容器的环境变量信息列表。

object

容器的环境变量信息列表。

Key

string

Init 容器的环境变量名。

PATH

Value

string

Init 容器的环境变量值。

/usr/local/bin

FieldRef.FieldPath

string

环境变量值引用。目前只支持配置为 status.podIP。

status.podIP

ImagePullPolicy

string

镜像拉取策略。取值范围:

  • Always:总是拉取。每次都拉取镜像。

  • IfNotPresent:按需拉取。优先使用本地镜像,本地没有镜像时则拉取镜像。

  • Never:从不拉取。使用本地镜像,不拉取镜像。

IfNotPresent

StdinOnce

boolean

当标准输入为 true 时,标准输入流将在多个附加会话中保持开启状态。如果 StdinOnce 设为 true,标准输入在容器开启时被打开,在首个客户端附加到标准输入之前都为空,然后会一直保持开启状态,接收数据,直到客户端连接断开,此时标准输入被关闭,在容器重启前一直保持关闭状态。

true

Cpu

number

Init 容器 vCPU 大小。

2.0

Tty

boolean

是否开启交互。默认为 false,如果 Command 为/bin/bash 类型时,需要设置为 true。

true

WorkingDir

string

Init 容器工作目录。

/bin/local/

Command

array

Init 容器指令。

/bin/sh sleep

string

Init 容器指令。

/bin/sh sleep

Arg

array

Init 容器启动参数。

10

string

Init 容器启动参数。

10

SecurityContext.RunAsUser

integer

设置运行容器的用户 ID。

1000

Gpu

integer

指定 Init 容器使用的 GPU 个数。

1

Memory

number

Init 容器内存大小。

4.0

Stdin

boolean

此容器是否应在容器运行时为标准输入分配缓冲区。如果未设置,则容器中标准输入的读取值将导致 EOF。默认为 false。

false

Name

string

Init 容器名称。

init-nginx

ImageRegistryCredential

array<object>

镜像仓库凭证信息列表。

object

镜像仓库凭证信息列表。

Password

string

镜像仓库密码。

yourpassword

Server

string

不带http://https://前缀的镜像仓库地址。

registry.cn-shanghai.aliyuncs.com/ecitest/nginx:alpine

UserName

string

镜像仓库用户名。

yourname

AcrRegistryInfo

array<object>

ACR 企业版实例信息。

object

ACR 企业版实例信息。

InstanceId

string

ACR 企业版实例 ID。

cri-nwj395hgf6f3****

InstanceName

string

ACR 企业版实例的名称。

acr-test

RegionId

string

ACR 企业版实例所属地域。

cn-beijing

Domain

array

ACR 企业版实例的域名。默认为相应实例的所有域名。支持指定个别域名,多个以半角逗号分隔。

string

ACR 企业版实例的域名。默认为相应实例的所有域名。支持指定个别域名,多个以半角逗号分隔。

cn-beijing

UpdateType

string

更新类型。取值范围:

  • RenewUpdate:全量更新,更新时需填写相关的所有参数。如果参数是一个 List,不支持单独更新某个 item,如果参数是一个结构体,不支持单独更新某个内部成员。

  • IncrementalUpdate:增量更新,更新时可以只填某一需要更新的参数,其它相关参数保持原有不变。

默认为 RenewUpdate。

RenewUpdate

参数说明

Container 和 InitContainer InitContainer 和 Container 均仅支持全量更新。更新 InitContainer 需要重启实例。 更新包括以下几种情况:

  • 原 ECI 实例同时有 InitContainer 和 Container,但只更新 InitContainer。

  • 原 ECI 实例同时有 InitContainer 和 Container,但只更新 Container。

  • 原 ECI 实例同时有 InitContainer 和 Container,InitContainer 和 Container 全部更新。

  • 原 ECI 实例只有 Container,更新 Container。

  • 原 ECI 实例只有 Container,增加 InitContainer。

  • 原 ECI 实例只有 Container,增加 InitContainer,同时更新 Container。

ImageRegistryCredentials

  • 仅支持全量更新。

  • 如果单独更新 ImageRegistryCredentials,且更新后的 ImageRegistryCredentials 的数量不超过之前原 ImageRegistryCredentials,则无需重启 ECI 实例,其他情况需要重启 ECI 实例。

说明

全量更新:如果参数是一个 List,不支持单独更新某个 item,如果参数是一个结构体,不支持单独更新某个内部成员。

返回参数

名称

类型

描述

示例值

object

RequestId

string

请求 ID,唯一标识。

CB8D2B22-D636-4182-****-1FC9DBDAD66F

示例

正常返回示例

JSON格式

{
  "RequestId": "CB8D2B22-D636-4182-****-1FC9DBDAD66F"
}

错误码

HTTP status code

错误码

错误信息

描述

400 InvalidParameter.CPU.Memory The specified cpu and memory are not allowed
400 InvalidParameter.DuplicatedName The container group include containers with duplicate names. 容器组内有重复名字的容器。
400 InvalidParameter.DuplicatedVolumeName The container group includes volumes with duplicate names. 容器组内有重复名字的数据卷。
400 InvalidParameter.LengthExceeded %s List型参数的长度超过规定值
400 InvalidParameter.ValueExceeded %s 参数值超过规定范围
400 IncorrectStatus %s 指定的实例状态不正确。
400 InvalidParam.CpuOrMemorySpec The specified specification is invalid. 指定的规格还未开放售卖,不提供价格查询。
400 InvalidParameter %s 不合法的参数
400 MissingParameter %s 必填参数缺失
400 NoNeedUpdate There are no changes to be updated for current resource. 本次操作没有需要更新的参数
403 InvalidAction The specified action is invalid 不合法的操作
404 InvalidParameter.NotFound %s 参数未找到

访问错误中心查看更多错误码。

变更历史

更多信息,参考变更详情