调用UpdateContainerGroup更新实例。

接口说明

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

调试

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

请求参数

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

系统规定参数。取值:UpdateContainerGroup

RegionId String cn-hangzhou

地域ID。

ContainerGroupId String eci-2zelg8vwnlzdhf8hv****

指定需要更新的ECI实例ID,即容器组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。

Tag.N.Key String name

标签键。

Tag.N.Value String hxh

标签值。

Volume.N.Name String test-empty

数据卷名称。

Volume.N.Type String EmptyDirVolume

数据卷类型。取值范围:

  • EmptyDirVolume:EmptyDir类型的数据卷,表示临时目录。
  • ConfigFileVolume:ConfigFile类型的数据卷,表示配置文件。
  • NFSVolume:NFS类型的数据卷,表示网络文件系统,例如NAS。
  • FlexVolume:使用FlexVolume插件扩展存储类型,支持挂载云盘、NAS和OSS。
  • HostPathVolume:HostPath类型的数据卷,表示宿主机上的文件或目录。该取值暂未开放使用。
Volume.N.NFSVolume.Path String /

NFS数据卷要挂载的路径。

Volume.N.NFSVolume.Server String 071e349b04-bsd39.cn-hangzhou.nas.aliyuncs.com

NFS数据卷的挂载点地址。

Volume.N.NFSVolume.ReadOnly Boolean false

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

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

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

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

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

Volume.N.EmptyDirVolume.Medium String Memory

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

Volume.N.EmptyDirVolume.SizeLimit String 256Mi

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

Volume.N.FlexVolume.FsType String ext4

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

Volume.N.FlexVolume.Driver String alicloud/disk

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

  • alicloud/disk:挂载云盘。
  • alicloud/nas:挂载NAS。
  • alicloud/oss:挂载OSS。
Volume.N.FlexVolume.Options String {"volumeId":"d-2zehdahrwoa7srg****","performanceLevel": "PL2"}`

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

Volume.N.HostPathVolume.Path String /tmp

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

说明 该参数暂未开放使用。
Volume.N.HostPathVolume.Type String Directory

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

  • Directory:目录。
  • File:文件。
说明 该参数暂未开放使用。
DnsConfig.Search.N String my.dns.search.suffix

DNS搜索域列表。

DnsConfig.NameServer.N String 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 1

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

Container.N.SecurityContext.Capability.Add.N String 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 String hello

容器启动参数。

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

镜像拉取策略。

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 3

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

Container.N.LivenessProbe.SuccessThreshold Integer 1

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

Container.N.Command.N String echo

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

Container.N.LifecyclePostStartHandlerHttpGetHost String hide

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

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

HttpGet检测的路径。

Container.N.LivenessProbe.Exec.Command.N String echo

容器内检测命令。

Container.N.LifecyclePostStartHandlerTcpSocketPort Integer 1

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

Container.N.LifecyclePostStartHandlerHttpGetPath String /healthyz

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

Container.N.LifecyclePostStartHandlerExec.N String ["/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 test

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

Container.N.LifecyclePostStartHandlerHttpGetHttpHeaders.N.Name String testValue

使用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 String ["/bin/sh", "-c","echo Hello from the preStop handler > /usr/share/message"]

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

Container.N.Memory Float 2.0

容器内存大小。

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 1

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

Container.N.LivenessProbe.FailureThreshold Integer 3

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

Container.N.ReadinessProbe.Exec.Command.N String echo

容器内检测的命令。

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 1377

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

Container.N.LifecyclePostStartHandlerHttpGetPort Integer 1

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

InitContainer.N.SecurityContext.Capability.Add.N String NET_ADMIN

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

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

Init容器镜像。

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

Init容器挂载目录。容器挂载目录下的内容将被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

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

InitContainer.N.Port.N.Protocol String TCP

TCP/UDP。

InitContainer.N.Port.N.Port Integer 9000

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

InitContainer.N.SecurityContext.ReadOnlyRootFilesystem Boolean true

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

InitContainer.N.EnvironmentVar.N.Key String PATH

Init容器的环境变量名。

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

Init容器的环境变量值。

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

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

InitContainer.N.ImagePullPolicy String Onfailure

镜像拉取策略。

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/

Init容器工作目录。

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

Init容器指令。

InitContainer.N.Arg.N String 10

Init容器启动参数。

InitContainer.N.SecurityContext.RunAsUser Long 1000

设置运行容器的用户ID。

InitContainer.N.Gpu Integer 1

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

InitContainer.N.Memory Float 4.0

Init容器内存大小。

InitContainer.N.Stdin Boolean false

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

InitContainer.N.Name String init-nginx

Init容器名称。

ImageRegistryCredential.N.Password String yourpassword

镜像仓库密码。

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

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

ImageRegistryCredential.N.UserName String yourname

镜像仓库用户名。

AcrRegistryInfo.N.InstanceId String cri-nwj395hgf6f3****

ACR企业版实例ID。

AcrRegistryInfo.N.InstanceName String acr-test

ACR企业版实例的名称。

AcrRegistryInfo.N.RegionId String cn-beijing

ACR企业版实例所属地域。

AcrRegistryInfo.N.Domain.N String cn-beijing

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

UpdateType String RenewUpdate

更新类型。取值范围:

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

默认为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,如果参数是一个结构体,不支持单独更新某个内部成员。

返回数据

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

请求ID,唯一标识。

示例

请求示例

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

正常返回示例

XML格式

HTTP/1.1 200 OK
Content-Type:application/xml

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

JSON格式

HTTP/1.1 200 OK
Content-Type:application/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 参数未找到

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