全部產品
Search
文件中心

:ALIYUN::ECI::ContainerGroup

更新時間:Sep 19, 2024

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

執行個體重啟策略。

取值:

  • Always(預設值)

  • OnFailure

  • Never

ResourceGroupId

String

資源群組ID。

Tag

List

索引值對形式的容器組標籤列表。

每個容器組最多定義20個標籤。索引值均為字串。

更多資訊,請參見Tag屬性

VSwitchId

String

交換器ID。當前ECI執行個體均為專用網路執行個體。

交換器網段內IP的個數決定了該交換器最大可建立的ECI執行個體數,請提前規劃交換器網段設定。

ImageRegistryCredential

List

登入容器映像倉庫的資訊,包括伺服器位址、使用者名稱和密碼。

更多資訊,請參見ImageRegistryCredential屬性

Memory

Number

記憶體大小。

SlsEnable

Boolean

是否開啟使用者日誌收集。

取值:

  • true:開啟。

  • false(預設值):不開啟。

SecurityContextSysctl

List

執行個體啟動並執行安全上下文。

更多資訊,請參見SecurityContext屬性

Cpu

Number

CPU大小。

ImageSnapshotId

String

鏡像緩衝ID或快照ID。

SpotPriceLimit

Number

執行個體的每小時最高價格。

最大支援3位小數。

SpotStrategy取值為SpotWithPriceLimit時,該參數生效。

AutoMatchImageCache

Boolean

自動匹配鏡像緩衝。

SpotStrategy

String

執行個體的搶佔策略。

取值:

  • NoSpot(預設值):正常隨用隨付執行個體。

  • SpotWithPriceLimit:設定上限價格的搶佔式執行個體。

  • SpotAsPriceGo:系統自動出價,跟隨當前市場實際價格。

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。

取值:

  • true:為此容器分配TTY。

    當值為true時,則stdin也為true。

  • false:不為此容器分配TTY。

SecurityContext

Map

容器組的安全上下文。

Name

String

容器名。

ImagePullPolicy

String

鏡像拉取策略。

Image

String

鏡像。

Stdin

Boolean

是否在此容器運行時分配標準輸入的緩衝。

取值:

  • true:在此容器運行時分配標準輸入的緩衝。

  • false:不在此容器運行時分配標準輸入的緩衝。

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個連接埠。取值:

  • TCP

  • UDP

更多資訊,請參見Port屬性

Arg

List

傳遞給命令的參數。

參數為String類型。最多支援10個參數。

StdinOnce

Boolean

由用戶端串連時首次開啟標準輸入通道後,中斷連線後是否關閉該通道。

取值:

  • true:關閉通道。

  • false:開啟通道。

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

用於串連主機的協議。

取值:

  • HTTP

  • HTTPS

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個連接埠。取值:

  • TCP

  • UDP

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的類型。

取值:

  • EmptyDirVolume

  • NFSVolume

  • ConfigFileVolume

FlexVolume.Options

Map

FlexVolume對象選項列表。

為KV形式,採用JSON傳遞。

例如:通過FlexVolume掛載雲端硬碟時,Options的格式為{"volumeId":"d-2zehdahrwoa7srg****","performanceLevel": "PL2"}

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地址。

此地址不包含協議首碼。

例如:http://https://

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。可取值:

  • None:該卷不感知任何後續在此卷或其子目錄上執行的掛載操作。

  • HostToCotainer:該卷將會感知到後續在此卷或其子目錄上的掛載操作。

  • Bidirectional:和HostToCotainer類似,能感知掛載操作。另外,該卷將被傳播回主機和使用同一卷的所有Pod的所有容器。

SubPath

String

資料卷下的子目錄。

方便Pod將同一個Volume下不同目錄掛載到容器不同目錄。

Port文法

"Port": [
  {
    "Port": Interger,
    "Protocol": String
  }
]

Port屬性

屬性名稱

類型

必須

允許更新

描述

約束

Port

Integer

連接埠號碼。

取值範圍:1~65,535。

Protocol

String

連接埠使用的協議。

取值:

  • TCP

  • UDP

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

執行個體啟動並執行安全上下文系統名稱。

取值:

  • kernel.msgmax

  • kernel.shm_rmid_forced

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請求協議。

取值:

  • HTTP

  • HTTPS

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": {
  }
}