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 | 否 | 否 | Elastic IP Address 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": {
}
}