调用UpdateContainerGroup更新实例。

接口说明

  • 仅支持处于启动中(Pending)或运行中(Running)状态的ECI实例进行更新。更新操作后,ECI实例状态将变更为更新中(Updating)。
  • 创建时间早于2019-03-07 15:00:00的ECI实例不支持更新。

调试

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

请求参数

名称 类型 是否必选 示例值 描述
Action String UpdateContainerGroup

系统规定参数。取值:UpdateContainerGroup。

ContainerGroupId String eci-2zelg8vwnlzdhf8hv****

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

RegionId String cn-hangzhou

地域ID。

RestartPolicy String Always

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

  • Always:总是重启
  • Never:从不重启
  • OnFailure:失败时重启
ClientToken String 123e4567-e89b-12d3-a456-426655440000

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

Cpu Float 2.0

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

Memory Float 4.0

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

ResourceGroupId String rg-2df3isufhi38****

所属资源组ID。

UpdateType String RenewUpdate

更新类型。取值范围:

  • RenewUpdate:全量更新,更新时需填写相关的所有参数。如果参数是一个List,不支持单独更新某个item,如果参数是一个结构体,不支持单独更新某个内部成员。
  • IncrementalUpdate:增量更新,更新时可以只填某一需要更新的参数,其它相关参数保持原有不变。

默认为RenewUpdate。

Tag.N.Key String name

实例绑定的标签键。

Tag.N.Value String hxh

实例绑定的标签值。

Volume.N.Name String test-empty

数据卷名称。

Volume.N.Type String EmptyDirVolume

数据卷类型,取值范围:

  • EmptyDirVolume:EmptyDir类型的数据卷,表示空目录。
  • NFSVolume:NFS类型的数据卷,表示网络文件系统。
  • ConfigFileVolume:ConfigFile类型的数据卷,表示配置文件。
  • FlexVolume:使用FlexVolume插件扩展存储类型,支持挂载云盘。
  • HostPathVolume:HostPath类型的数据卷,表示主机节点的文件或目录。
Volume.N.NFSVolume.Path String /

NFS Volume的挂载路径。

Volume.N.NFSVolume.Server String 0eaf24bfc1-xxxxx.cn-hangzhou.nas.aliyuncs.com

NFS Volume的挂载点地址。

Volume.N.NFSVolume.ReadOnly Boolean false

NFS Volume的读取权限。取值范围:

  • true:NFS Volume具有只读权限。
  • false:NFS Volume具有可读可写权限。
Volume.N.ConfigFileVolume.ConfigFileToPath.N.Path String liu/name

ConfigFile Volume的路径,相对文件路径。

Volume.N.ConfigFileVolume.ConfigFileToPath.N.Content String bGl1bWk=

ConfigFile Volume的内容。

Volume.N.EmptyDirVolume.Medium String Memory

EmptyDir Volume的存储媒介。默认为空,表示使用Node文件系统,您也可以配置为Memory,表述使用内存。

Volume.N.EmptyDirVolume.SizeLimit String 1

EmptyDir Volume的大小。

Volume.N.FlexVolume.FsType String ext4

使用FlexVolume插件挂载云盘时,云盘的文件系统类型。

Volume.N.FlexVolume.Driver String alicloud/disk

使用FlexVolume插件挂载数据卷时的驱动类型。目前支持alicloud/disk,表示挂载阿里云云盘。

Volume.N.FlexVolume.Options String {"volumeId":"d-2zehdahrwoa7srg****","performanceLevel": "PL2"}`

FlexVolume对象选项列表。为KV形式,采用JSON传递。

例如通过FlexVolume挂载云盘时,Options表示云盘的配置参数,可配置的参数如下:

  • volumeId:已有云盘ID。
  • volumeSize:云盘大小,单位为GiB。取值范围为20~32768。
  • performanceLevel:云盘性能等级。更多信息,请参见云盘性能等级
  • deleteWithInstance:是否随实例释放,默认为false。
  • encrypted:是否加密云盘,默认为false。更多信息,请参见加密概述
  • kmsKeyId:加密云盘时,云盘使用的KMS密钥ID。
Volume.N.HostPathVolume.Path String /tmp

HostPath Volume在主机上的目录路径。

Volume.N.HostPathVolume.Type String Directory

HostPath Volume的类型。取值范围:

  • Directory:目录
  • File:文件
DnsConfig.Search.N RepeatList my.dns.search.suffix

DNS搜索域列表。

DnsConfig.NameServer.N RepeatList 1.2.3.4

DNS服务器的IP地址列表。

DnsConfig.Option.N.Value String 2

DNS配置的选项变量值。

DnsConfig.Option.N.Name String ndots

DNS配置的选项变量名。

Container.N.ReadinessProbe.TimeoutSeconds Integer 5

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

Container.N.ReadinessProbe.SuccessThreshold Integer 3

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

Container.N.SecurityContext.Capability.Add.N RepeatList NET_ADMIN

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

说明 NET_RAW默认不支持,需提交工单申请。
Container.N.ReadinessProbe.TcpSocket.Port Integer 5000

TcpSocket检测的端口。

Container.N.ReadinessProbe.HttpGet.Scheme String HTTP

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

  • HTTP
  • HTTPS
Container.N.LivenessProbe.PeriodSeconds Integer 10

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

Container.N.SecurityContext.ReadOnlyRootFilesystem Boolean true

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

Container.N.EnvironmentVar.N.Key String PATH

容器的环境变量名。

Container.N.EnvironmentVar.N.Value String /usr/bin/local/

容器的环境变量值。

Container.N.EnvironmentVar.N.FieldRef.FieldPath String status.podIP

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

Container.N.LivenessProbe.TcpSocket.Port Integer 80

TcpSocket检测的端口。

Container.N.Tty Boolean false

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

Container.N.WorkingDir String /usr/share/

容器工作目录。

Container.N.Arg.N RepeatList hello

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

Container.N.Stdin Boolean false

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

Container.N.LivenessProbe.InitialDelaySeconds Integer 10

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

Container.N.VolumeMount.N.MountPropagation String None

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

  • None:该卷不感知任何后续在此卷或其子目录上执行的挂载操作。
  • HostToContainer:该卷将会感知到后续在此卷或其子目录上的挂载操作。
  • Bidirectional:和HostToContainerr类似,能感知挂载操作。另外,该卷将被传播回主机和使用同一卷的所有Pod的所有容器。

默认值:None

Container.N.VolumeMount.N.MountPath String /usr/share/

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

Container.N.VolumeMount.N.ReadOnly Boolean false

是否只读。默认值:false

Container.N.VolumeMount.N.SubPath String /usr/share/sub/

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

Container.N.VolumeMount.N.Name String test-empty

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

Container.N.ImagePullPolicy String Never

镜像拉取策略。

  • Alway:总是拉取。每次都拉取镜像。
  • IfNotPresent:按需拉取。优先使用本地镜像,本地没有镜像时则拉取镜像。
  • Never:从不拉取。使用本地镜像,不拉取镜像。
Container.N.StdinOnce Boolean true

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

Container.N.LifecyclePreStopHandlerTcpSocketPort Integer 80

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

Container.N.LifecyclePostStartHandlerHttpGetScheme String /healthyz

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

Container.N.ReadinessProbe.PeriodSeconds Integer 10

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

Container.N.LivenessProbe.SuccessThreshold Integer 1

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

Container.N.Command.N RepeatList echo

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

Container.N.LifecyclePostStartHandlerHttpGetHost String hide

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

Container.N.ReadinessProbe.HttpGet.Path String /usr/

HttpGet检测的路径。

Container.N.LivenessProbe.Exec.Command.N RepeatList [/bin/sh cat /tmp/healthy]

容器内检测命令。

Container.N.LifecyclePostStartHandlerTcpSocketPort Integer 1

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

Container.N.LifecyclePostStartHandlerHttpGetPath String /healthyz

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

Container.N.LifecyclePostStartHandlerExec.N RepeatList ["/bin/sh", "-c", "echo Hello from the postStart handler > /usr/share/message"]

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

Container.N.LifecyclePreStopHandlerHttpGetPath String /healthyz

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

Container.N.Port.N.Protocol String TCP

TCP/UDP。

Container.N.Port.N.Port Integer 8080

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

Container.N.LifecyclePreStopHandlerHttpGetScheme String HTTP

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

  • HTTP
  • HTTPS
Container.N.LivenessProbe.HttpGet.Scheme String HTTP

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

  • HTTP
  • HTTPS
Container.N.LifecyclePostStartHandlerHttpGetHttpHeaders.N.Value String testValue

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

Container.N.LifecyclePostStartHandlerHttpGetHttpHeaders.N.Name String test

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

Container.N.ReadinessProbe.HttpGet.Port Integer 8080

HttpGet检测的端口号。

Container.N.LifecyclePostStartHandlerTcpSocketHost String 10.0.XX.XX

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

Container.N.Gpu Integer 1

指定容器使用的GPU个数。

Container.N.ReadinessProbe.InitialDelaySeconds Integer 10

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

Container.N.LifecyclePreStopHandlerExec.N RepeatList ["/bin/sh", "-c","echo Hello from the preStop handler > /usr/share/message"]

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

Container.N.Memory Float 2.0

容器内存大小。单位为GiB。

Container.N.Name String jenkins

容器名称。

Container.N.LifecyclePreStopHandlerHttpGetHost String 10.0.XX.XX

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

Container.N.LifecyclePreStopHandlerTcpSocketHost String 10.0.XX.XX

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

Container.N.Image String jenkins

容器镜像。

Container.N.LifecyclePreStopHandlerHttpGetPort Integer 80

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

Container.N.LivenessProbe.FailureThreshold Integer 3

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

Container.N.ReadinessProbe.Exec.Command.N RepeatList [/bin/sh cat /tmp/healthy]

容器内检测的命令。

Container.N.LifecyclePreStopHandlerHttpGetHttpHeader.N.Value String testValue

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

Container.N.LifecyclePreStopHandlerHttpGetHttpHeader.N.Name String test

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

Container.N.ReadinessProbe.FailureThreshold Integer 3

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

Container.N.Cpu Float 1.0

容器vCPU大小。

Container.N.LivenessProbe.HttpGet.Port Integer 8080

HttpGet检测的端口号。

Container.N.LivenessProbe.HttpGet.Path String /usr/local/bin

HttpGet检测的路径。

Container.N.LivenessProbe.TimeoutSeconds Integer 1

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

Container.N.SecurityContext.RunAsUser Long 1337

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

Container.N.LifecyclePostStartHandlerHttpGetPort Integer 1

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

InitContainer.N.SecurityContext.Capability.Add.N RepeatList NET_ADMIN

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

说明 NET_RAW默认不支持,需提交工单申请。
InitContainer.N.Image String nginx

容器使用的镜像。

InitContainer.N.VolumeMount.N.MountPropagation String None

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

  • None:该卷不感知到任何后续在此卷或其任何子目录上执行的挂载变化。
  • HostToContainer:该卷将会感知到主机后续针对此卷或其任何子目录的挂载操作。
  • Bidirectional:和HostToContainer类似。另外,该卷将被传播回主机和使用同一卷的所有Pod的所有容器。

默认值:None

InitContainer.N.VolumeMount.N.MountPath String /pod/data

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

InitContainer.N.VolumeMount.N.ReadOnly Boolean false

是否只读。默认值:false

InitContainer.N.VolumeMount.N.SubPath String data2/

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

InitContainer.N.VolumeMount.N.Name String default-volume1

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

InitContainer.N.Port.N.Protocol String TCP

TCP/UDP。

InitContainer.N.Port.N.Port Integer 9000

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

InitContainer.N.SecurityContext.ReadOnlyRootFilesystem Boolean true

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

InitContainer.N.EnvironmentVar.N.Key String PATH

环境变量名。长度为1~128位。格式要求:[0-9a-zA-Z],以及下划线,不能以数字开头。

InitContainer.N.EnvironmentVar.N.Value String /usr/local/bin

环境变量值。长度为0~256位。

InitContainer.N.EnvironmentVar.N.FieldRef.FieldPath String status.podIP

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

InitContainer.N.ImagePullPolicy String Onfailure

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

  • Alway:总是拉取。每次都拉取镜像。
  • IfNotPresent:按需拉取。优先使用本地镜像,本地没有镜像时则拉取镜像。
  • Never:从不拉取。使用本地镜像,不拉取镜像。
InitContainer.N.StdinOnce Boolean true

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

InitContainer.N.Cpu Float 2.0

Init容器vCPU大小。

InitContainer.N.Tty Boolean true

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

InitContainer.N.WorkingDir String /bin/local/

容器工作目录。

InitContainer.N.Command.N RepeatList /bin/sh sleep

容器启动指令。

InitContainer.N.Arg.N RepeatList 10

容器启动参数。

InitContainer.N.SecurityContext.RunAsUser Long 1000

设置运行容器的用户ID。

InitContainer.N.Gpu Integer 1

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

InitContainer.N.Memory Float 4.0

容器内存大小。单位为GiB。

InitContainer.N.Stdin Boolean false

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

InitContainer.N.Name String init-nginx

容器名称。

ImageRegistryCredential.N.Password String yourpassword

镜像仓库密码。

ImageRegistryCredential.N.Server String registry.cn-shanghai.aliyuncs.com/ecitest/nginx:alpine

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

ImageRegistryCredential.N.UserName String yourname

镜像仓库用户名。

参数说明

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实例。

返回数据

名称 类型 示例值 描述
RequestId String CB8D2B22-D636-4182-****-1FC9DBDAD66F

请求ID,唯一标识。

示例

请求示例

https://eci.aliyuncs.com//?Action=UpdateContainerGroup
&ContainerGroupId=eci-2zelg8vwnlzdhf8hv****
&RegionId=cn-hangzhou
&<公共请求参数>

正常返回示例

XML格式

<UpdateContainerGroup>
      <RequestId>CB8D2B22-D636-4182-****-1FC9DBDAD66F</RequestId>
</UpdateContainerGroup>

JSON格式

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

错误码

HttpCode 错误码 错误信息 描述
400 InvalidParameter.CPU.Memory The specified cpu and memory are not allowed cpu,mem不符合规格
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 参数未找到

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