ALIYUN::CS::ManagedKubernetesCluster類型用于創建Kubernetes托管版集群。
語法
{
"Type": "ALIYUN::CS::ManagedKubernetesCluster",
"Properties": {
"CloudMonitorFlags": Boolean,
"ProxyMode": String,
"WorkerDataDisk": Boolean,
"SnatEntry": Boolean,
"VSwitchIds": List,
"WorkerSystemDiskCategory": String,
"VpcId": String,
"Tags": List,
"WorkerSystemDiskSize": Number,
"WorkerInstanceTypes": List,
"WorkerDataDisks": List,
"LoginPassword": String,
"ContainerCidr": String,
"NumOfNodes": Number,
"Name": String,
"Taint": List,
"KeyPair": String,
"Addons": List,
"DisableRollback": Boolean,
"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,
"AutoRenewPeriod": Number,
"LoadBalancerSpec": String,
"AutoRenew": Boolean,
"ChargeType": String,
"FormatDisk": Boolean,
"Period": Number,
"NodeCidrMask": String,
"PeriodUnit": String,
"KeepInstanceName": Boolean,
"DeletionProtection": Boolean,
"ZoneIds": List,
"ResourceGroupId": String,
"NodePools": List,
"NodeNameMode": String,
"SecurityHardeningOs": Boolean,
"WorkerSystemDiskPerformanceLevel": String,
"DeleteOptions": List
}
}
屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Name | String | 是 | 否 | 集群名稱。 | 長度為1~63個字符。可包含英文字母、漢字、數字和短劃線(-)。 |
VpcId | String | 是 | 否 | 專有網絡ID。 | 如果不設置,系統會自動創建專有網絡,系統創建的專有網絡網段為192.168.0.0/16。
|
VSwitchIds | List | 是 | 否 | Worker節點交換機ID列表。 | 支持添加1~3個交換機ID。 |
Addons | List | 否 | 是 | Kubernetes集群的Addon插件的組合。 | 取值:
更多信息,請參見Addons屬性。 |
AutoRenew | Boolean | 否 | 否 | 是否自動續費。 | 當ChargeType取值為PrePaid時該參數有效。取值:
|
SecurityHardeningOs | Boolean | 否 | 否 | 阿里云操作系統安全加固。 | 取值:
默認值:false。 |
WorkerSystemDiskPerformanceLevel | String | 否 | 否 | Worker系統盤的性能等級。 | 取值:
|
AutoRenewPeriod | Number | 否 | 否 | 自動續借周期。 | 當ChargeType取值為PrePaid,且AutoRenew取值為true時,該參數有效。取值:
默認值:1。 |
ChargeType | String | 否 | 否 | 付費類型。 | 取值:
|
CloudMonitorFlags | Boolean | 否 | 否 | 是否安裝云監控插件。 | 取值:
|
ClusterSpec | String | 否 | 否 | 托管版集群類型。 | 取值:
|
ContainerCidr | String | 否 | 否 | 容器網段。 | 不能和專有網絡網段沖突。當選擇系統自動創建專有網絡時,默認使用172.16.0.0/16網段。 |
DeletionProtection | Boolean | 否 | 否 | 是否啟用刪除保護功能。 | 啟用刪除保護后,集群不能被直接刪除。取值:
|
DisableRollback | Boolean | 否 | 否 | 失敗是否回滾。 | 取值:
|
EncryptionProviderKey | String | 否 | 否 | 由密鑰管理服務KMS管理的密鑰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 | 否 | 否 | 負載均衡實例規格。 | 取值:
|
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屬性。 |
NumOfNodes | Number | 否 | 是 | Worker節點數。 | 取值范圍:0~300。 默認值:3。 |
OsType | String | 否 | 否 | 操作系統類型。 | 取值:
|
Period | Number | 否 | 否 | 購買資源的時長。 | 當ChargeType為PrePaid時,該參數生效且為必選參數。取值:
默認值:1。 |
PeriodUnit | String | 否 | 否 | 購買資源的時長周期。 | 當ChargeType為PrePaid時該參數有效。取值:
|
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轉碼,特殊字符需要使用轉義符。 |
WorkerDataDisk | Boolean | 否 | 否 | Worker節點是否掛載數據盤。 | 取值:
|
WorkerDataDisks | List | 否 | 是 | Worker數據盤類型、大小等配置。 | 只有在掛載Worker節點數據盤時有效。 更多信息,請參見WorkerDataDisks屬性。 |
WorkerInstanceTypes | List | 否 | 是 | Worker節點ECS實例規格。 | 更多信息,請參見實例規格族。 |
WorkerSystemDiskCategory | String | 否 | 否 | Worker節點系統盤類型。 | 取值:
|
WorkerSystemDiskSize | Number | 否 | 否 | Worker節點系統盤大小。 | 默認值:120。 單位:GiB。 |
ZoneIds | List | 否 | 否 | Worker節點所屬交換機可用區。 | 無 |
DeleteOptions | List | 否 | 是 | 集群關聯資源的刪除選項。 | 更多信息,請參見DeleteOptions屬性。 |
NodePools語法
"NodePools": [
{
"ScalingGroup": Map,
"KubernetesConfig": Map,
"NodePoolInfo": Map,
"Count": Integer
}
]
NodePools屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
ScalingGroup | Map | 是 | 否 | 節點池擴容組配置。 | 更多信息,請參見ScalingGroup屬性。 |
Count | Integer | 否 | 否 | 節點池節點數量。 | 無 |
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,
"Platform": String,
"InstanceTypes": List,
"SystemDiskCategory": String,
"PeriodUnit": String,
"LoginPassword": String,
"InstanceChargeType": String,
"SystemDiskSize": Integer,
"Tags": List,
"ZoneIds": List
}
ScalingGroup屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
InstanceTypes | List | 是 | 否 | 實例規格。 | 無 |
SystemDiskSize | Integer | 是 | 否 | 節點系統盤大小。 | 單位:GiB。 取值范圍:40~500。 |
VSwitchIds | List | 是 | 否 | 虛擬交換機ID列表。 | 無 |
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:以月為計時單位。 |
Platform | String | 否 | 否 | 操作系統發行版。 | 取值:
|
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個字符,不能以 |
WorkerDataDisks語法
"WorkerDataDisks": [
{
"Category": String,
"Size": Number,
"PerformanceLevel": String
}
]
WorkerDataDisks屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Category | String | 是 | 是 | Worker節點數據盤類型。 | 取值:
|
PerformanceLevel | String | 否 | 否 | ESSD云盤性能等級。 | 取值:
|
Size | Number | 是 | 是 | 數據盤大小。 | 取值范圍:40~32,768。 單位:GiB。 |
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。系統自動分配,用戶查詢任務狀態。
WorkerRamRoleName:Worker節點RAM角色名稱。
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
WorkerInstanceTypes:
- ecs.c5.large
WorkerSystemDiskCategory: cloud_essd
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",
"WorkerInstanceTypes": [
"ecs.c5.large"
],
"WorkerSystemDiskCategory": "cloud_essd",
"LoginPassword": "Admin@123!",
"Name": "mytest"
}
}
},
"Outputs": {
"ClusterId": {
"Value": {
"Fn::GetAtt": [
"ManagedKubernetesCluster",
"ClusterId"
]
}
},
"TaskId": {
"Value": {
"Fn::GetAtt": [
"ManagedKubernetesCluster",
"TaskId"
]
}
}
}
}