ALIYUN::ECI::ContainerGroup类型用于创建一个容器组。
语法
{
"Type": "ALIYUN::ECI::ContainerGroup",
"Properties": {
"SecurityContextSysctl": List,
"Memory": Number,
"InitContainer": List,
"Cpu": Number,
"EipInstanceId": String,
"ContainerGroupName": String,
"Container": List,
"ImageSnapshotId": String,
"DnsConfig": Map,
"AutoMatchImageCache": Boolean,
"Ipv6AddressCount": Integer,
"ImageRegistryCredential": List,
"SpotPriceLimit": Number,
"InstanceType": String,
"SpotStrategy": String,
"ActiveDeadlineSeconds": Integer,
"HostAliase": List,
"ZoneId": String,
"TerminationGracePeriodSeconds": Integer,
"VSwitchId": String,
"SecurityGroupId": String,
"SlsEnable": Boolean,
"RestartPolicy": String,
"RamRoleName": String,
"Volume": List,
"AcrRegistryInfo": List,
"Tag": List,
"ResourceGroupId": String
}
}
属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
EipInstanceId | String | 否 | 否 | 弹性公网IP ID。 | 无 |
Container | List | 是 | 是 | 容器组中包含的容器。 | 更多信息,请参见Container属性。 |
DnsConfig | Map | 否 | 是 | DNS配置。 | 更多信息,请参见DnsConfig属性。 |
InitContainer | List | 否 | 是 | 初始化容器列表。 | 更多信息,请参见InitContainer属性。 |
SecurityGroupId | String | 否 | 否 | 指定新创建实例所属于的安全组ID。 | 同一个安全组内的实例之间可以互相访问。 |
ContainerGroupName | String | 是 | 否 | 容器组名称。 | 无 |
ZoneId | String | 否 | 否 | 实例所属的可用区ID。 | 默认值:空(表示由系统选择)。 |
Volume | List | 否 | 是 | 数据卷列表。 | 最多可以指定20个数据卷。 更多信息,请参见Volume属性。 |
HostAliase | List | 否 | 否 | 自定义pod内一个容器的hostname映射。 | 更多信息,请参见HostAliase属性。 |
RestartPolicy | String | 否 | 是 | 实例重启策略。 | 取值:
|
ResourceGroupId | String | 否 | 是 | 资源组ID。 | 无 |
Tag | List | 否 | 是 | 键值对形式的容器组标签列表。 | 每个容器组最多定义20个标签。键值均为字符串。 更多信息,请参见Tag属性。 |
VSwitchId | String | 否 | 否 | 交换机ID。当前ECI实例均为专有网络实例。 | 交换机网段内IP的个数决定了该交换机最大可创建的ECI实例数,请提前规划交换机网段设置。 |
ImageRegistryCredential | List | 否 | 是 | 登录容器映像仓库的信息,包括服务器地址、用户名和密码。 | 更多信息,请参见ImageRegistryCredential属性。 |
Memory | Number | 否 | 是 | 内存大小。 | 无 |
SlsEnable | Boolean | 否 | 否 | 是否开启用户日志收集。 | 取值:
|
SecurityContextSysctl | List | 否 | 否 | 实例运行的安全上下文。 | 更多信息,请参见SecurityContext属性。 |
Cpu | Number | 否 | 是 | CPU大小。 | 无 |
ImageSnapshotId | String | 否 | 否 | 镜像缓存ID或快照ID。 | 无 |
SpotPriceLimit | Number | 否 | 否 | 实例的每小时最高价格。 | 最大支持3位小数。 SpotStrategy取值为SpotWithPriceLimit时,该参数生效。 |
AutoMatchImageCache | Boolean | 否 | 否 | 自动匹配镜像缓存。 | 无 |
SpotStrategy | String | 否 | 否 | 实例的抢占策略。 | 取值:
|
TerminationGracePeriodSeconds | Integer | 否 | 否 | 给程序预留的最后缓冲时间,用于处理关闭之前的操作。 | 单位:秒。 |
ActiveDeadlineSeconds | Integer | 否 | 否 | 有效期限。 | 单位:秒。 |
Ipv6AddressCount | Integer | 否 | 否 | Ipv6地址数量。 | 无 |
RamRoleName | String | 否 | 否 | 实例RAM角色名称。 | ECI与ECS共用实例RAM角色。 |
AcrRegistryInfo | List | 否 | 否 | 企业版访问凭证配置信息。 | 更多信息,请参见AcrRegistryInfo属性。 |
InstanceType | String | 否 | 否 | 实例规格。 | 无 |
Container语法
"Container": [
{
"EnvironmentVar": List,
"Tty": Boolean,
"SecurityContext": Map,
"Name": String,
"ImagePullPolicy": String,
"Image": String,
"Stdin": boolean,
"WorkingDir": String,
"LivenessProbe": Map,
"Cpu": Number,
"Command": List,
"Memory": Number,
"ReadinessProbe": Map,
"VolumeMount": List,
"Port": List,
"Arg": List,
"StdinOnce": Boolean
}
]
Container属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
EnvironmentVar | List | 否 | 否 | 容器中的环境变量。 | 每个环境变量都是键值对,键和值都是字符串。键表示变量的名称,值表示变量的值。 最多支持100个环境变量。 更多信息,请参见EnvironmentVar属性。 |
Tty | Boolean | 否 | 否 | 是否为此容器分配TTY。 | 取值:
|
SecurityContext | Map | 否 | 否 | 容器组的安全上下文。 | 无 |
Name | String | 是 | 否 | 容器名。 | 无 |
ImagePullPolicy | String | 否 | 否 | 镜像拉取策略。 | 无 |
Image | String | 是 | 否 | 镜像。 | 无 |
Stdin | Boolean | 否 | 否 | 是否在此容器运行时分配标准输入的缓冲。 | 取值:
|
WorkingDir | String | 否 | 否 | 容器的工作目录。 | 无 |
LivenessProbe | Map | 否 | 否 | 容器存活探针。 | 更多信息,请参见LivenessProbe属性。 |
Cpu | Number | 否 | 否 | 分配给容器的CPU数量。 | 无 |
Command | List | 否 | 否 | 要发送到容器以运行的命令列表。 | 最多可以指定一个命令。每个字符串的最大长度为256个字符。 |
Memory | Number | 否 | 否 | 分配给容器的内存。 | 单位:GiB。 |
ReadinessProbe | Map | 否 | 否 | 容器就绪探针。 | 更多信息,请参见ReadinessProbe属性。 |
VolumeMount | List | 否 | 否 | 挂载到容器上的Volume的详情。 | 最多支持16个。 更多信息,请参见VolumeMount属性。 |
Port | List | 否 | 否 | 开放端口和协议。 | 最多可以设置100个端口。取值:
更多信息,请参见Port属性。 |
Arg | List | 否 | 否 | 传递给命令的参数。 | 参数为String类型。最多支持10个参数。 |
StdinOnce | Boolean | 否 | 否 | 由客户端连接时首次打开标准输入通道后,断开连接后是否关闭该通道。 | 取值:
|
LivenessProbe语法
"LivenessProbe": {
"TcpSocket.Port": Integer,
"HttpGet.Scheme": String,
"HttpGet.Port": Integer,
"FailureThreshold": Integer,
"InitialDelaySeconds": Integer,
"TimeoutSeconds": Integer,
"SuccessThreshold": Integer,
"Exec.Command": List,
"PeriodSeconds": Integer,
"HttpGet.Path": String
}
LivenessProbe属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
TcpSocket.Port | Integer | 否 | 否 | 系统向其中发送TCP套接字请求以执行检查的端口。 | 无 |
HttpGet.Scheme | String | 否 | 否 | 用于连接主机的协议。 | 取值:
|
HttpGet.Port | Integer | 否 | 否 | 系统向其中发送HTTP GET请求以执行检查的端口。 | 无 |
FailureThreshold | Integer | 否 | 否 | 探测器认定检查失败的检查次数阈值。 | 必须是连续失败 默认值:3。 |
InitialDelaySeconds | Integer | 否 | 否 | 在启动探测之前容器启动后的时间。 | 单位:秒。 |
TimeoutSeconds | Integer | 否 | 否 | 探测器超时的秒数。 | 最小值:1。 默认值:1。 |
SuccessThreshold | Integer | 否 | 否 | 探测器检查失败后重新认定检查成功的检查次数阈值。 | 取值:1。 默认值:1。 |
Exec.Command | List | 否 | 否 | 探测命令。 | 无 |
PeriodSeconds | Integer | 否 | 否 | 探测周期。 | 单位:秒。 最小值:1。 默认值:10。 |
HttpGet.Path | String | 否 | 否 | 系统发送HTTP GET请求以执行检查的路径。 | 无 |
DnsConfig语法
"DnsConfig": {
"NameServer": List,
"Search": List,
"Option": List
}
DnsConfig属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
NameServer | List | 否 | 否 | DNS服务器的IP地址列表。 | 无 |
Search | List | 否 | 否 | DNS搜索域的列表。 | 无 |
Option | List | 否 | 否 | 选项列表。 | 每个选项都包含一个名称和一个值。选项的值可选。 更多信息,请参见Option属性。 |
InitContainer语法
"InitContainer": [
{
"EnvironmentVar": List,
"SecurityContext": Map,
"Name": String,
"Image": String,
"Arg": List,
"WorkingDir": String,
"Port": List,
"Command": List,
"Memory": Number,
"ImagePullPolicy": String,
"VolumeMount": List,
"Cpu": Number
}
]
InitContainer属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
EnvironmentVar | List | 否 | 否 | 容器中的环境变量。 | 每个环境变量都是键值对,键和值都是字符串。键表示变量的名称,值表示变量的值。 最多支持100个环境变量。 取值:status.podIP。 |
SecurityContext | Map | 否 | 否 | 容器组的安全上下文。 | 无 |
Name | String | 否 | 否 | 容器名。 | 无 |
Image | String | 否 | 否 | 容器镜像。 | 无 |
Arg | List | 否 | 否 | 传递给命令的参数。 | 参数为String类型。最多支持10个参数。 |
WorkingDir | String | 否 | 否 | 容器的工作目录。 | 无 |
Port | List | 否 | 否 | 开放端口和协议。 | 最多可以设置100个端口。取值:
|
Command | List | 否 | 否 | 要发送到容器以运行的命令列表。 | 最多可以指定一个命令。每个字符串的最大长度为256个字符。 |
Memory | Number | 否 | 否 | 分配给容器的内存。 | 单位:GB。 |
ImagePullPolicy | String | 否 | 否 | 镜像拉取策略。 | 无 |
VolumeMount | List | 否 | 否 | 挂载到容器上的Volume的详情。 | 最多支持16个Volume。 |
Cpu | Number | 否 | 否 | 分配给容器的CPU数量。 | 无 |
Volume语法
"Volume": [
{
"NFSVolume.Path": String,
"Name": String,
"EmptyDirVolume.Medium": String,
"NFSVolume.Server": String,
"NFSVolume.ReadOnly": Boolean,
"ConfigFileVolume.ConfigFileToPath": List,
"Type": String,
"FlexVolume.Options": Map,
"FlexVolume.Driver": String,
"FlexVolume.FsType": String
}
]
Volume属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
NFSVolume.Path | String | 否 | 否 | NFSVolume的路径。 | 无 |
Name | String | 是 | 否 | Volume名。 | 无 |
EmptyDirVolume.Medium | String | 否 | 否 | 存储介质。 | 默认情况下,使用节点上的文件系统。 取值:Memory。 如果值为Memory,则EmptyDirVolume卷存储在内存中。 |
NFSVolume.Server | String | 否 | 否 | NFS服务器的IP地址。 | 无 |
NFSVolume.ReadOnly | Boolean | 否 | 否 | NFS卷只读属性。 | 默认值:false。 |
ConfigFileVolume.ConfigFileToPath | List | 否 | 否 | 配置文件路径。 | 更多信息,请参见ConfigFileVolume.ConfigFileToPath属性。 |
Type | String | 是 | 否 | Volume的类型。 | 取值:
|
FlexVolume.Options | Map | 否 | 否 | FlexVolume对象选项列表。 | 为KV形式,采用JSON传递。 例如:通过FlexVolume挂载云盘时,Options的格式为 |
FlexVolume.Driver | String | 否 | 否 | 用于FlexVolume的驱动程序名称。 | 无 |
FlexVolume.FsType | String | 否 | 否 | 挂载的文件系统类型 | 无 |
HostAliase语法
"HostAliase": [
{
"Ip": String,
"Hostname": List
}
]
HostAliase属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Ip | String | 否 | 否 | IP地址。 | 无 |
Hostname | List | 否 | 否 | 主机名。 | 无 |
ImageRegistryCredential语法
"ImageRegistryCredential": [
{
"UserName": String,
"Password": String,
"Server": String
}
]
ImageRegistryCredential属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
UserName | String | 是 | 否 | 用于登录镜像仓库的用户名。 | 无 |
Password | String | 是 | 否 | 用于登录镜像仓库的密码。 | 无 |
Server | String | 是 | 否 | 镜像仓库的IP地址。 | 此地址不包含协议前缀。 例如: |
EnvironmentVar语法
"EnvironmentVar": {
"Key": String,
"Value": String,
"FieldRef.FieldPath": String
}
EnvironmentVar属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Key | String | 否 | 否 | 变量的名称。 | 长度为1~128个字符,不能以数字开头,可包含数字、英文字母和下划线(_)。 |
Value | String | 否 | 否 | 变量的值。 | 长度为0~256个字符。 |
FieldRef.FieldPath | String | 否 | 否 | 对另一个变量的引用。 | 目前只支持status.podIP。 |
SecurityContext语法
"SecurityContext": {
"Capability.Add": List,
"RunAsUser": Integer,
"ReadOnlyRootFilesystem": Boolen
}
SecurityContext属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Capability.Add | List | 否 | 否 | 可添加到容器的Capability。 | 取值:["NET_ADMIN"]。 |
RunAsUser | Integer | 否 | 否 | 用户ID。 | 无 |
ReadOnlyRootFilesystem | Boolean | 否 | 否 | 只读根文件系统。 | 默认值:true。 |
VolumeMount语法
"VolumeMount": [
{
"Name": String,
"ReadOnly": Boolean,
"MountPath": String,
"MountPropagation": String,
"SubPath": String
}
]
VolumeMount属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Name | String | 否 | 否 | Volume的名称。 | 名称与Volume部分中为name参数指定的值相同。 |
ReadOnly | Boolean | 否 | 否 | 只读属性。 | 默认值:false。 |
MountPath | String | 否 | 否 | 安装路径。 | 目标目录中的数据被挂载卷中的数据覆盖。 |
MountPropagation | String | 否 | 否 | 数据卷的挂载传播设置。 | 挂载传播允许将Container挂载的卷共享到同一Pod中的其他Container,甚至可以共享到同一节点上的其他Pod。可取值:
|
SubPath | String | 否 | 否 | 数据卷下的子目录。 | 方便Pod将同一个Volume下不同目录挂载到容器不同目录。 |
Port语法
"Port": [
{
"Port": Interger,
"Protocol": String
}
]
Port属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Port | Integer | 否 | 否 | 端口号。 | 取值范围:1~65,535。 |
Protocol | String | 否 | 否 | 端口使用的协议。 | 取值:
|
ConfigFileVolume.ConfigFileToPath语法
"onfigFileVolume.ConfigFileToPath": [
{
"Content": String,
"Path": String
}
]
ConfigFileVolume.ConfigFileToPath属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Content | String | 否 | 否 | 配置文件的内容。 | 最大为32KB。 |
Path | String | 是 | 否 | 配置文件中的相对路径。 | 您可以指定一个目录相对于另一个目录的位置。 |
SecurityContextSysctl语法
"SecurityContextSysctl": [
{
"Value": String,
"Name": String
}
]
SecurityContextSysctl属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Value | String | 否 | 否 | 实例运行的安全上下文的变量值。 | 无 |
Name | String | 否 | 否 | 实例运行的安全上下文系统名称。 | 取值:
|
ReadinessProbe语法
"ReadinessProbe": {
"TimeoutSeconds": Integer,
"InitialDelaySeconds": Integer,
"Exec.Command": List,
"PeriodSeconds": Integer,
"HttpGet.Port": Integer,
"TcpSocket.Port": Integer,
"FailureThreshold": Integer,
"HttpGet.Scheme": String,
"HttpGet.Path": String,
"SuccessThreshold": Integer
}
ReadinessProbe属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
FailureThreshold | Integer | 否 | 否 | 从上次检查成功后认定检查失败的检查次数阈值。 | 必须是连续失败。 默认值:3。 |
HttpGet.Scheme | String | 否 | 否 | GET请求协议。 | 取值:
|
HttpGet.Path | String | 否 | 否 | HttpGet检测的路径。 | 无 |
Exec.Command | List | 否 | 否 | 容器内检测的命令。 | 无 |
TcpSocket.Port | Integer | 否 | 否 | TcpSocket检测的端口。 | 无 |
PeriodSeconds | Integer | 否 | 否 | 检查执行的周期。 | 默认值:10。 最小值:1。 单位:秒。 |
TimeoutSeconds | Integer | 否 | 否 | 检查超时的时间。 | 默认值:10。 最小值:1。 单位:秒。 |
InitialDelaySeconds | Integer | 否 | 否 | 检查开始执行的时间,以容器启动完成为起点计算。 | 无 |
SuccessThreshold | Integer | 否 | 否 | 从上次检查失败后重新认定检查成功的检查次数阈值。 | 必须是连续成功。 默认值:1。 |
HttpGet.Port | Integer | 否 | 否 | HttpGet检测的端口号。 | 无 |
Option语法
"Option": [
{
"Name": String,
"Value": String
}
]
Option属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Name | String | 否 | 否 | 对象名称。 | 无 |
Value | String | 否 | 否 | 对象值。 | 无 |
Tag语法
"Tag": [
{
"Key": String,
"Value": String
}
]
Tag属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Key | String | 是 | 否 | 标签键。 | 无 |
Value | String | 否 | 否 | 标签值。 | 无 |
AcrRegistryInfo语法
"AcrRegistryInfo": [
{
"RegionId": String,
"InstanceName": String,
"Domain": List,
"InstanceId": String
}
]
AcrRegistryInfo属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
RegionId | String | 否 | 否 | 所属地域ID。 | 默认为本地地域。 |
InstanceName | String | 否 | 否 | 实例名称。 | 无 |
Domain | List | 否 | 否 | 域名。 | 默认为实例的所有域名。 |
InstanceId | String | 是 | 否 | 实例ID。 | 无 |
返回值
Fn::GetAtt
ContainerGroupId:容器组ID。
ContainerGroupName:容器组的名称。
SecurityGroupId:安全组ID。
Ipv6Address:Ipv6地址。
InternetIp:公网IP。
RegionId:实例所属地域。
IntranetIp:内网IP。
ZoneId:可用区。
VSwitchId:交换机ID。
EniInstanceId:弹性网卡ID。
示例
YAML
格式
ROSTemplateFormatVersion: '2015-09-01'
Description: Test ECI ContainerGroup
Parameters:
VSwitch:
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
Type: String
Label:
zh-cn: 网络交换机ID
en: VSwitch ID
SecurityGroup:
Type: String
AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId
Label:
zh-cn: 安全组ID
en: Security Group ID
Resources:
ContainerGroup:
Type: ALIYUN::ECI::ContainerGroup
Properties:
Container:
- Name: mytest
Image: busybox
Cpu: 2
Memory: 4
Port:
- Port: 8080
Protocol: TCP
- Port: 8888
Protocol: TCP
SecurityGroupId:
Ref: SecurityGroup
ContainerGroupName: mytest
VSwitchId:
Ref: VSwitch
RestartPolicy: Always
SlsEnable: false
Cpu: 2
Memory: 4
Outputs: {}
JSON
格式
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "Test ECI ContainerGroup",
"Parameters": {
"VSwitch": {
"AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
"Type": "String",
"Label": {
"zh-cn": "网络交换机ID",
"en": "VSwitch ID"
}
},
"SecurityGroup": {
"Type": "String",
"AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId",
"Label": {
"zh-cn": "安全组ID",
"en": "Security Group ID"
}
}
},
"Resources": {
"ContainerGroup": {
"Type": "ALIYUN::ECI::ContainerGroup",
"Properties": {
"Container": [
{
"Name": "mytest",
"Image": "busybox",
"Cpu": 2,
"Memory": 4,
"Port": [
{
"Port": 8080,
"Protocol": "TCP"
},
{
"Port": 8888,
"Protocol": "TCP"
}
]
}
],
"SecurityGroupId": {
"Ref": "SecurityGroup"
},
"ContainerGroupName": "mytest",
"VSwitchId": {
"Ref": "VSwitch"
},
"RestartPolicy": "Always",
"SlsEnable": false,
"Cpu": 2,
"Memory": 4
}
}
},
"Outputs": {
}
}