ALIYUN::CS::ManagedKubernetesCluster類型用於建立Kubernetes託管版叢集。
文法
{
"Type": "ALIYUN::CS::ManagedKubernetesCluster",
"Properties": {
"CloudMonitorFlags": Boolean,
"ProxyMode": String,
"SnatEntry": Boolean,
"VpcId": String,
"Tags": List,
"LoginPassword": String,
"ContainerCidr": String,
"Name": String,
"Taint": List,
"KeyPair": String,
"Addons": List,
"ServiceCidr": String,
"KubernetesVersion": String,
"SecurityGroupId": String,
"EndpointPublicAccess": Boolean,
"ClusterSpec": String,
"TimeoutMins": Number,
"PodVswitchIds": List,
"EncryptionProviderKey": String,
"Runtime": Map,
"SocEnabled": Boolean,
"UserData": String,
"OsType": String,
"IsEnterpriseSecurityGroup": Boolean,
"Platform": String,
"LoadBalancerSpec": String,
"FormatDisk": Boolean,
"NodeCidrMask": String,
"KeepInstanceName": Boolean,
"DeletionProtection": Boolean,
"ResourceGroupId": String,
"NodePools": List,
"NodeNameMode": String,
"SecurityHardeningOs": Boolean,
"DeleteOptions": List,
"ControlPlaneLogComponents": List,
"ControlPlaneLogTtl": Number,
"ControlPlaneLogProject": String
}
}
屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Name | String | 是 | 否 | 叢集名稱。 | 長度為1~63個字元。可包含英文字母、漢字、數字和短劃線(-)。 |
VpcId | String | 是 | 否 | 專用網路ID。 | 如果不設定,系統會自動建立專用網路,系統建立的專用網路網段為192.168.0.0/16。
|
Addons | List | 否 | 是 | Kubernetes叢集的Addon外掛程式的組合。 | 取值:
更多資訊,請參見Addons屬性。 |
SecurityHardeningOs | Boolean | 否 | 否 | 阿里雲作業系統安全強化。 | 取值:
預設值:false。 |
CloudMonitorFlags | Boolean | 否 | 否 | 是否安裝CloudMonitor外掛程式。 | 取值:
|
ClusterSpec | String | 否 | 否 | 託管版叢集類型。 | 取值:
|
ContainerCidr | String | 否 | 否 | 容器網段。 | 不能和專用網路網段衝突。當選擇系統自動建立專用網路時,預設使用172.16.0.0/16網段。 |
DeletionProtection | Boolean | 否 | 是 | 是否啟用刪除保護功能。 | 啟用刪除保護後,叢集不能被直接刪除。取值:
|
EncryptionProviderKey | String | 否 | 否 | 由Key Management Service管理的密鑰ID。 | 該密鑰用於加密資料磁碟。您只能在專業託管的Kubernetes叢集中使用KMS。 |
EndpointPublicAccess | Boolean | 否 | 否 | 是否開啟公網APIServer。 | 取值:
|
FormatDisk | Boolean | 否 | 否 | 是否將資料磁碟掛載到已建立的節點上,在已有的ECS執行個體中建立。 | 取值:
|
IsEnterpriseSecurityGroup | Boolean | 否 | 否 | 是否建立進階安全性群組。 | 當SecurityGroupId為空白時,該參數生效。 取值:
|
KeepInstanceName | Boolean | 否 | 否 | 指定是否保留叢集中使用的現有ECS執行個體的名稱。 | 取值:
|
KeyPair | String | 否 | 否 | 金鑰組名稱。 | KeyPair和LoginPassword只能指定其中一個參數。 |
KubernetesVersion | String | 否 | 是 | 叢集版本,與Kubernetes社區基準版本保持一致。建議選擇最新版本。 | 目前您可以建立兩種最新版本的叢集。關於ACK支援的Kubernetes版本,請參見【已下線】Kubernetes版本發布概覽。 |
LoadBalancerSpec | String | 否 | 否 | Server Load Balancer執行個體規格。 | 取值:
|
LoginPassword | String | 否 | 否 | SSH登入密碼。 | 長度為8~30個字元,必須同時包含英文字母、數字和特殊字元三項,特殊字元支援 說明 LoginPassword和KeyPair只能指定其中一個參數。 |
NodeCidrMask | String | 否 | 否 | 可分配給節點的最大IP地址數量。 | 數量由指定的pod CIDR決定。該參數僅在叢集使用Flannel外掛程式時生效。 預設值:25。 |
NodeNameMode | String | 否 | 否 | 自訂節點名。 | 節點名稱由三部分組成:首碼+節點IP地址子串+尾碼。
例如,節點IP地址為:192.168.XX.XX,指定首碼為 |
NodePools | List | 否 | 否 | 節點池資訊。 | 更多資訊,請參見NodePools屬性。 |
OsType | String | 否 | 否 | 作業系統類型。 | 取值:
|
Platform | String | 否 | 否 | 作業系統發布版本。 | 取值:
|
PodVswitchIds | List | 否 | 否 | Pod交換器列表。 | 您需要為每一個節點交換器指定至少一個相同可用性區域的Pod交換器,該Pod交換器不能跟節點交換器重複。 建議您選擇網段掩碼不大於19的交換器。 說明 當叢集列表(Addons)取值為網路組件,且採用Terway網路類型時,必須為叢集指定PodVswitchIds。 |
ProxyMode | String | 否 | 否 | kube-proxy代理模式。 | 取值:
|
ResourceGroupId | String | 否 | 是 | 叢集所屬資源群組ID。 | 無 |
Runtime | Map | 否 | 否 | 容器運行時。 | Runtime包括以下2個資訊:
樣本:
關於容器運行時的選擇,請參見如何選擇Docker運行時、containerd運行時、或者安全沙箱運行時?。 更多資訊,請參見DeleteOptions屬性。 |
SecurityGroupId | String | 否 | 否 | 叢集ECS執行個體所屬安全性群組ID。 | 無 |
ServiceCidr | String | 否 | 否 | 服務網段。 | 不能和專用網路網段以及容器網段衝突。當選擇系統自動建立專用網路時,預設使用172.19.0.0/20網段。 |
SnatEntry | Boolean | 否 | 否 | 是否為網路設定SNAT。 | 取值:
|
SocEnabled | Boolean | 否 | 否 | 是否啟用基於分級保護的加固。 | 取值:
|
Tags | List | 否 | 是 | 叢集標籤。 | 最多可以設定20組標籤。 更多資訊,請參見Tags屬性。 |
Taint | List | 否 | 否 | 給節點做汙點標記,通常用於Pods的調度策略。 | 若Pods上有相對應的容忍(tolerance)標記,則可以將容忍節點上的汙點調度到該節點。 |
TimeoutMins | Number | 否 | 否 | 叢集建立逾時時間。 | 預設值:60。 單位:分鐘。 |
UserData | String | 否 | 否 | 建立ECS執行個體時傳遞的使用者資料。 | 內容需要限制在16 KB以內。無需使用Base64轉碼,特殊字元需要使用轉義符。 |
DeleteOptions | List | 否 | 是 | 叢集關聯資源的刪除選項。 | 更多資訊,請參見DeleteOptions屬性。 |
ControlPlaneLogTtl | Number | 否 | 是 | 控制平面組件日誌儲存天數。 | 無 |
ControlPlaneLogComponents | List | 否 | 是 | 組件名稱列表。 | 指定那些控制平面的組件日誌需要被收集。 預設採集 apiserver、kcm、scheduler 組件的日誌。 |
ControlPlaneLogProject | String | 否 | 是 | 控制平面組件Log Service Project。 | 可以使用已有 Project 用於日誌儲存,也可以使用系統自動建立 Project 使用者日誌儲存。如果選擇自動建立Log Service Project 將會自動建立一個名稱為 |
NodePools文法
"NodePools": [
{
"ScalingGroup": Map,
"KubernetesConfig": Map,
"NodePoolInfo": Map
}
]
NodePools屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
ScalingGroup | Map | 是 | 否 | 節點池擴容組配置。 | 更多資訊,請參見ScalingGroup屬性。 |
KubernetesConfig | Map | 否 | 否 | 叢集相關配置。 | 更多資訊,請參見KubernetesConfig屬性。 |
NodePoolInfo | Map | 否 | 否 | 節點池配置。 | 更多資訊,請參見NodePoolInfo屬性。 |
ScalingGroup文法
"ScalingGroup": {
"RdsInstances": List,
"IsEnterpriseSecurityGroup": Boolean,
"VSwitchIds": List,
"InternetMaxBandwidthOut": Integer,
"DataDisks": List,
"Period": Integer,
"InternetChargeType": String,
"KeyPair": String,
"SystemDiskPerformanceLevel": String,
"ImageId": String,
"InstanceTypes": List,
"SystemDiskCategory": String,
"PeriodUnit": String,
"LoginPassword": String,
"InstanceChargeType": String,
"SystemDiskSize": Integer,
"Tags": List,
"ZoneIds": List,
"DesiredSize": Integer
}
ScalingGroup屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
InstanceTypes | List | 是 | 否 | 執行個體規格。 | 無 |
SystemDiskSize | Integer | 是 | 否 | 節點系統硬碟大小。 | 單位:GiB。 取值範圍:40~500。 |
VSwitchIds | List | 是 | 否 | 虛擬交換器ID列表。 | 無 |
DesiredSize | Integer | 否 | 否 | 節點池期望節點數。 | 無 |
DataDisks | List | 否 | 否 | 節點池節點資料盤配置。 | 更多資訊,請參見DataDisks屬性。 |
ImageId | String | 否 | 否 | 自訂鏡像ID。 | 預設使用系統提供的鏡像。 |
InstanceChargeType | String | 否 | 否 | 節點池節點付費類型。 | 取值:
|
InternetChargeType | String | 否 | 否 | 公網IP收費類型。 | 取值:
|
InternetMaxBandwidthOut | Integer | 否 | 否 | 節點公網IP出頻寬最大值。 | 單位:Mbps。 取值範圍:1~100。 |
IsEnterpriseSecurityGroup | Boolean | 否 | 否 | 自動建立企業級安全性群組。 | 取值:
|
KeyPair | String | 否 | 否 | 免密登入金鑰組名稱。 | KeyPair和LoginPassword屬性二選一。 |
LoginPassword | String | 否 | 否 | SSH登入密碼。 | KeyPair和LoginPassword只能選擇其中之一。 密碼規則為8~30個字元,且至少同時包含大小寫字母、數字和特殊符號。 |
Period | Integer | 否 | 否 | 節點池節點訂用帳戶時間長度。 | 當InstanceChargeType取值為PrePaid時,本屬性才生效且為必選值。 當period_unit取值為Month時,period取值範圍:{ 1, 2, 3,6,12}。 預設值:1。 |
PeriodUnit | String | 否 | 否 | 節點池節點付費周期。 | 當InstanceChargeType指定為PrePaid時需要指定周期。 Month:以月為計時單位。 |
RdsInstances | List | 否 | 否 | RDS執行個體ID。 | 無 |
SystemDiskCategory | String | 否 | 否 | 節點系統硬碟類型。 | 取值:
|
SystemDiskPerformanceLevel | String | 否 | 否 | 節點系統硬碟磁碟效能。 | 只對ESSD磁碟生效。 |
Tags | List | 否 | 否 | 僅為ECS執行個體添加標籤。 | 更多資訊,請參見Tags屬性。 |
ZoneIds | List | 否 | 否 | 可用性區域列表。 | 無 |
DataDisks文法
"DataDisks": [
{
"AutoSnapshotPolicyId": String,
"Encrypted": Boolean,
"Size": Integer,
"Category": String,
"PerformanceLevel": String
}
]
DataDisks屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
AutoSnapshotPolicyId | String | 否 | 否 | 選擇自動快照策略ID。 | 雲端硬碟會按照快照策略自動備份。 |
Category | String | 否 | 否 | 資料盤類型。 | 取值:
|
Encrypted | Boolean | 否 | 否 | 是否對資料盤加密。 | 取值:
|
PerformanceLevel | String | 否 | 否 | 節點資料盤磁碟效能等級。 | 僅對ESSD磁碟生效,磁碟效能等級和磁碟大小有關。 更多資訊,請參見ESSD雲端硬碟。 |
Size | Integer | 否 | 否 | 資料盤大小。 | 單位為GiB。 取值範圍:40~32768。 預設值:120。 |
KubernetesConfig文法
"KubernetesConfig": {
"Runtime": String,
"RuntimeVersion": String,
"CpuPolicy": String,
"Labels": List,
"NodeNameMode": String,
"Taints": List
}
KubernetesConfig屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Runtime | String | 是 | 否 | 容器運行時。 | 無 |
RuntimeVersion | String | 是 | 否 | 容器運行時版本。 | 無 |
CpuPolicy | String | 否 | 否 | 節點CPU管理原則。 | 當叢集版本在1.12.6及以上時支援以下兩種策略:
|
Labels | List | 否 | 否 | 節點標籤。 | 為Kubernetes叢集節點添加標籤。 更多資訊,請參見Labels屬性。 |
NodeNameMode | String | 否 | 否 | 自訂節點名。 | 節點名稱由三部分組成:首碼+節點IP地址子串+尾碼。
例如,節點IP地址為:192.168.XX.XX,指定首碼為 |
Taints | List | 否 | 否 | 汙點配置。 | 更多資訊,請參見Taints屬性。 |
Labels文法
"Labels": {
"Value": String,
"Key": String
}
Labels屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Key | String | 是 | 否 | 標籤鍵。 | 無 |
Value | String | 是 | 否 | 標籤值。 | 無 |
Taints文法
"Taints": [{
"Value": String,
"Effect": String,
"Key": String
}]
Taints屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Key | String | 是 | 否 | 汙點名稱。 | 無 |
Value | String | 是 | 否 | 汙點值。 | 無 |
Effect | String | 否 | 否 | 調度策略。 |
|
NodePoolInfo文法
"NodePoolInfo": {
"Name": String,
"Type": String,
"ResourceGroupId": String
}
NodePoolInfo屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Name | String | 是 | 否 | 節點池名稱。 | 無 |
Type | String | 否 | 否 | 節點池類型 | 取值:
|
ResourceGroupId | String | 否 | 是 | 節點池所屬資源群組。 | 無 |
Tags文法
"Tags": [
{
"Key": String,
"Value": String
}
]
Tags屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Key | String | 是 | 否 | 標籤鍵。 | 長度為1~64個字元,不能以 |
Value | String | 是 | 否 | 標籤值。 | 長度為0~128個字元,不能以 |
Addons文法
"Addons": [
{
"Version": String,
"Config": String,
"Name": String,
"Disabled": Boolean
}
]
Addons屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Name | String | 是 | 否 | Addon外掛程式名稱。 | 無 |
Config | String | 否 | 是 | Addon外掛程式配置。 | 無 |
Disabled | Boolean | 否 | 否 | 是否禁用預設安裝。 | 取值:
|
Version | String | 否 | 否 | Addon外掛程式版本。 | 預設取最新版本。 |
DeleteOptions文法
"DeleteOptions": [
{
"DeleteMode": String,
"ResourceType": String
}
]
DeleteOptions屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
DeleteMode | String | 否 | 是 | 該類型資源的刪除策略。 | 可取值:
|
ResourceType | String | 否 | 是 | 資源類型。 | 可取值:
|
Runtime文法
"Runtime": {
"Name": String,
"Version": String
}
Runtime屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Name | String | 是 | 否 | 容器運行時名稱。 | ACK 支援以下三種容器運行時。
預設值: |
Version | String | 否 | 否 | 容器運行時版本。 | 預設為最新版。 關於安全沙箱運行時的變更詳情,請參見安全沙箱運行時發布記錄。 |
傳回值
Fn::GetAtt
ClusterId:叢集ID。
TaskId:任務ID。系統自動分配,使用者查詢任務狀態。
DefaultUserKubeConfig:使用者配置叢集憑據的預設Kubernetes配置。
ScalingRuleId:伸縮規則ID。
ScalingGroupId:伸縮組ID。
PrivateUserKubConfig:使用者配置叢集憑據的專有Kubernetes配置。
ScalingConfigurationId:伸縮配置ID。
Nodes:叢集節點列表。
APIServerSLBId:API伺服器負載平衡ID。
IngressSLBId:Ingress負載平衡ID。
樣本
YAML
格式
ROSTemplateFormatVersion: '2015-09-01'
Description: Test Create ManagedKubernetesCluster
Parameters: {}
Resources:
Vpc:
Type: ALIYUN::ECS::VPC
Properties:
VpcName: mytest
CidrBlock: 192.168.0.0/16
VSwitch:
Type: ALIYUN::ECS::VSwitch
Properties:
VSwitchName: mytest
VpcId:
Ref: Vpc
ZoneId:
Fn::Select:
- '0'
- Fn::GetAZs:
Ref: ALIYUN::Region
CidrBlock: 192.168.1.0/24
ManagedKubernetesCluster:
Type: ALIYUN::CS::ManagedKubernetesCluster
Properties:
VSwitchIds:
- Ref: VSwitch
VpcId:
Ref: Vpc
ClusterSpec: ack.pro.small
LoginPassword: Admin@123!
Name: mytest
Outputs:
ClusterId:
Value:
Fn::GetAtt:
- ManagedKubernetesCluster
- ClusterId
TaskId:
Value:
Fn::GetAtt:
- ManagedKubernetesCluster
- TaskId
JSON
格式
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "Test Create ManagedKubernetesCluster",
"Parameters": {
},
"Resources": {
"Vpc": {
"Type": "ALIYUN::ECS::VPC",
"Properties": {
"VpcName": "mytest",
"CidrBlock": "192.168.0.0/16"
}
},
"VSwitch": {
"Type": "ALIYUN::ECS::VSwitch",
"Properties": {
"VSwitchName": "mytest",
"VpcId": {
"Ref": "Vpc"
},
"ZoneId": {
"Fn::Select": [
"0",
{
"Fn::GetAZs": {
"Ref": "ALIYUN::Region"
}
}
]
},
"CidrBlock": "192.168.1.0/24"
}
},
"ManagedKubernetesCluster": {
"Type": "ALIYUN::CS::ManagedKubernetesCluster",
"Properties": {
"VSwitchIds": [
{
"Ref": "VSwitch"
}
],
"VpcId": {
"Ref": "Vpc"
},
"ClusterSpec": "ack.pro.small",
"LoginPassword": "Admin@123!",
"Name": "mytest"
}
}
},
"Outputs": {
"ClusterId": {
"Value": {
"Fn::GetAtt": [
"ManagedKubernetesCluster",
"ClusterId"
]
}
},
"TaskId": {
"Value": {
"Fn::GetAtt": [
"ManagedKubernetesCluster",
"TaskId"
]
}
}
}
}