ALIYUN::CS::ManagedEdgeKubernetesCluster類型用於建立Kubernetes邊緣託管版叢集執行個體。
文法
{
"Type": "ALIYUN::CS::ManagedEdgeKubernetesCluster",
"Properties": {
"Profile": String,
"VpcId": String,
"ServiceCidr": String,
"Name": String,
"Tags": List,
"ProxyMode": String,
"SnatEntry": Boolean,
"LoginPassword": String,
"KeyPair": String,
"Addons": List,
"EndpointPublicAccess": Boolean,
"TimeoutMins": Number,
"ClusterSpec": String,
"ContainerCidr": String,
"CloudMonitorFlags": Boolean,
"IsEnterpriseSecurityGroup": Boolean,
"NodeCidrMask": String,
"DeletionProtection": Boolean,
"ResourceGroupId": String,
"RrsaConfig": Map,
"MaintenanceWindow": Map,
"ZoneIds": List,
"VSwitchIds": List,
"NodePools": List,
"EncryptionProviderKey": String,
"KubernetesVersion": String,
"IpStack": String
}
}屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Name | String | 是 | 否 | 叢集名稱。 | 以英文字母或數字開頭,可包含英文字母、漢字、數字和短劃線(-)。 |
Addons | List | 否 | 否 | 叢集安裝的組件列表。 | 取值:
更多資訊,請參見Addons屬性。 |
CloudMonitorFlags | Boolean | 否 | 否 | 是否安裝CloudMonitor外掛程式。 | 取值:
|
ClusterSpec | String | 否 | 否 | 託管版叢集類型。 | 取值:
|
ContainerCidr | String | 否 | 否 | Pod網路位址區段。 | 當建立Flannel網路類型的叢集時,ContainerCidr為必填。ContainerCidr必須是有效私人網段,即以下網段及其子網:
不能與專用網路及專用網路內已有Kubernetes叢集使用的網段重複,且建立成功後不能修改。 關於叢集網路規劃,請參見ACK託管叢集網路規劃。 |
RrsaConfig | Map | 否 | 否 | RRSA 的配置。 | 更多資訊,請參考RrsaConfig屬性。 |
DeletionProtection | Boolean | 否 | 是 | 是否啟用刪除保護功能。 | 啟用刪除保護後,叢集不能被直接刪除。取值:
|
EndpointPublicAccess | Boolean | 否 | 否 | 是否開啟公網API Server。 | 取值:
|
IsEnterpriseSecurityGroup | Boolean | 否 | 否 | 是否建立進階安全性群組。 | 當SecurityGroupId為空白時,該參數生效。取值:
|
KeyPair | String | 否 | 否 | 金鑰組名稱。 | LoginPassword和KeyPair二者只能指定一個參數。 |
LoginPassword | String | 否 | 否 | 登入密碼。 | 長度為8~30個字元。必須同時包含大寫英文字母、小寫英文字母,數字和特殊字元中至少三項,支援的特殊字元為: LoginPassword和KeyPair二者只能指定一個參數。 |
NodeCidrMask | String | 否 | 否 | 可分配給節點的最大CIDR地址塊數量。 | 數量由指定的pod CIDR決定。該參數僅在叢集使用Flannel外掛程式時生效。 預設值:25。 |
Profile | String | 否 | 否 | 邊緣叢集標識。 | 預設值:Edge。 |
ProxyMode | String | 否 | 否 | kube-proxy代理模式。 | 取值:
|
ResourceGroupId | String | 否 | 是 | 叢集所屬的資源群組ID。 | 無 |
ServiceCidr | String | 否 | 否 | 服務網段。 | 不能與專用網路網段以及容器網段衝突。當選擇系統自動建立專用網路時,預設使用172.19.0.0/20網段。 |
SnatEntry | Boolean | 否 | 否 | 是否為網路設定SNAT。 | 取值:
說明 如果使用自動建立的專用網路,則必須設定為true。如果使用已有非系統自動建立的專用網路,則需要根據是否具備出網能力來設定。 |
MaintenanceWindow | Map | 否 | 是 | 叢集維護視窗配置。 | 更多資訊,請參見MaintenanceWindow屬性。 |
Tags | List | 否 | 是 | 標籤。 | 最多可以設定20個標籤。 更多資訊,請參見Tags屬性。 |
TimeoutMins | Number | 否 | 否 | 叢集資源棧建立逾時時間。 | 預設值:60。 單位:分鐘。 |
VSwitchIds | List | 否 | 否 | Worker node綁定的交換器。 | 無 |
VpcId | String | 否 | 否 | 專用網路ID。 | 如果不設定,系統會自動建立專用網路,系統建立的專用網路網段為192.168.0.0/16。 VpcId和VSwitchIds只能同時為空白或者同時都設定對應的值。 |
ZoneIds | List | 否 | 否 | 可用性區域列表。 | 無 |
NodePools | List | 否 | 否 | 節點池資訊。 | 更多資訊,請參見NodePools屬性。 |
EncryptionProviderKey | String | 否 | 否 | 由Key Management Service管理的密鑰ID。 | 該密鑰用於加密資料磁碟。您只能在專業託管的Kubernetes叢集中使用KMS。 |
IpStack | String | 否 | 否 | 叢集的IP協議棧。 | 取值:
|
KubernetesVersion | String | 否 | 是 | 叢集版本,與Kubernetes社區基準版本保持一致。建議選擇最新版本。 | 目前您可以建立兩種最新版本的叢集。關於ACK支援的Kubernetes版本,請參見版本說明。 |
MaintenanceWindow文法
"MaintenanceWindow": {
"Enable": Boolean,
"MaintenanceTime": String,
"Duration": String,
"WeeklyPeriod": String,
"Recurrence": String
}MaintenanceWindow屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Duration | String | 否 | 是 | 維護時間長度。 | 取值範圍[1,24],單位為小時。 預設值:3h。 |
Enable | Boolean | 否 | 是 | 是否開啟維護視窗。 | 取值:
預設值: |
MaintenanceTime | String | 否 | 是 | 維護起始時間。 | RFC3339 標準格式。 |
WeeklyPeriod | String | 否 | 是 | 維護周期。 | 多個值用英文半形逗號(,)分隔。取值:{Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday} 預設值: |
Recurrence | String | 否 | 是 | 使用 RFC5545 Recurrence Rule 文法定義的維護視窗迴圈規則。 | 目前僅支援 FREQ=WEEKLY,且不支援指定 COUNT 或 UNTIL。 |
NodePools文法
"NodePools": [
{
"ScalingGroup": Map,
"KubernetesConfig": Map,
"NodePoolInfo": Map
}
]NodePools屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
ScalingGroup | Map | 是 | 否 | 節點池擴容組配置。 | 更多資訊,請參見ScalingGroup屬性。 |
KubernetesConfig | Map | 否 | 否 | 叢集相關配置。 | 更多資訊,請參見KubernetesConfig屬性。 |
NodePoolInfo | Map | 否 | 否 | 節點池配置。 | 更多資訊,請參見NodePoolInfo屬性。 |
NodePoolInfo文法
"NodePoolInfo": {
"Name": String,
"Type": String,
"ResourceGroupId": String
}NodePoolInfo屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
ResourceGroupId | String | 否 | 是 | 節點池所屬資源群組。 | 無 |
Name | String | 是 | 否 | 節點池名稱。 | 無 |
Type | String | 否 | 否 | 節點池類型 | 取值:
|
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 | 否 | 否 | 調度策略。 |
|
ScalingGroup文法
"ScalingGroup": {
"SocEnabled": Boolean,
"ImageType": String,
"InstancePatterns": List,
"SecurityHardeningOs": Boolean,
"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列表。 | 無 |
SocEnabled | Boolean | 否 | 否 | 是否啟用基於分級保護的加固。 | 取值:
|
ImageType | String | 否 | 否 | 作業系統鏡像類型。 | 無 |
InstancePatterns | List | 否 | 否 | 執行個體屬性配置。 | 更多資訊,請參考InstancePatterns屬性。 |
SecurityHardeningOs | Boolean | 否 | 否 | 阿里雲 OS 安全強化。 | 取值:
預設值: |
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 | 否 | 否 | 可用性區域列表。 | 無 |
RrsaConfig文法
"RrsaConfig":
{
"Enabled": Boolean
}RrsaConfig屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Enabled | Boolean | 是 | 否 | 是否啟用服務賬戶的 RAM 角色(RRSA)功能。 | 取值:
|
Tags文法
"Tags": [
{
"Key": String,
"Value": String
}
]Tags屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Key | String | 是 | 否 | 標籤鍵。 | 長度為1~64個字元,不能以 |
Value | String | 是 | 否 | 標籤值。 | 長度為0~128個字元,不能以 |
Addons文法
"Addons": [
{
"Disabled": Boolean,
"Config": String,
"Name": String,
"Version": String
}
]Addons屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
Name | String | 是 | 否 | 組件名稱。 | 無 |
Config | String | 否 | 否 | 組件配置。 | 無 |
Disabled | Boolean | 否 | 否 | 是否禁止預設安裝組件。 | 取值:
|
Version | String | 否 | 否 | Addon外掛程式版本。 | 預設取最新版本。 |
InstancePatterns文法
"InstancePatterns": [
{
"CpuArchitectures": List,
"MaxCpuCores": Integer,
"MinMemorySize": Integer,
"Memory": Integer,
"InstanceFamilyLevel": String,
"MinCpuCores": Integer,
"Cores": Integer,
"InstanceTypeFamilies": List,
"InstanceCategories": List,
"ExcludedInstanceTypes": List,
"MaxMemorySize": Integer
}
]InstancePatterns屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
CpuArchitectures | List | 否 | 否 | 執行個體的 CPU 架構。 | 取值:
|
MaxCpuCores | Integer | 否 | 否 | 執行個體規格的最大 vCPU 核心數目 | 無 |
MinMemorySize | Integer | 否 | 否 | 執行個體規格的最小記憶體。 | 單位:GiB。 |
Memory | Integer | 否 | 否 | 執行個體規格的記憶體大小。 | 單位為 GiB。 |
InstanceFamilyLevel | String | 否 | 否 | 執行個體規格類型系列層級。 | 無 |
MinCpuCores | Integer | 否 | 否 | 執行個體規格的最小 vCPU 核心數目。 | 無 |
Cores | Integer | 否 | 否 | 執行個體規格的 vCPU 核心數目。 | 無 |
InstanceTypeFamilies | List | 否 | 否 | 指定執行個體規格類型系列。 | 無 |
InstanceCategories | List | 否 | 否 | 執行個體分類。 | 無 |
ExcludedInstanceTypes | List | 否 | 否 | 需要排除的執行個體規格。 | 無 |
MaxMemorySize | Integer | 否 | 否 | 執行個體規格的最大記憶體。 | 單位:GiB。 |
DataDisks文法
"DataDisks": [
{
"Category": String,
"Encrypted": Boolean,
"PerformanceLevel": String,
"Size": Integer,
"AutoSnapshotPolicyId": String,
"Categories": List
}
]DataDisks屬性
屬性名稱 | 類型 | 必須 | 允許更新 | 描述 | 約束 |
AutoSnapshotPolicyId | String | 否 | 否 | 選擇自動快照策略ID,雲端硬碟會按照快照策略自動備份。 | 預設值為空白,表示不自動備份。 |
Category | String | 否 | 否 | 資料盤類型。 | 取值:
|
Encrypted | Boolean | 否 | 否 | 是否對資料盤加密。 | 取值:
|
PerformanceLevel | String | 否 | 否 | 設定雲端硬碟的效能等級。 | 取值:
更多資訊,請參見ESSD雲端硬碟。 |
Size | Integer | 否 | 否 | 資料盤大小。 | 取值範圍:40~32768。 預設值:120。 單位:GiB。 |
Categories | List | 否 | 否 | 資料磁碟類型的列表。 | 無 |
傳回值
Fn::GetAtt
ClusterId:叢集ID。
TaskId:任務ID。系統自動分配,用於查詢任務狀態。
DefaultUserKubeConfig:使用者配置叢集憑據的預設Kubernetes配置。
ScalingRuleId:伸縮規則ID。
ScalingGroupId:伸縮組ID。
PrivateUserKubConfig:使用者配置叢集憑據的專有Kubernetes配置。
ScalingConfigurationId:伸縮配置ID。
Nodes:叢集節點列表。
APIServerSLBId:API伺服器負載平衡ID。
IngressSLBId:Ingress負載平衡ID。
WorkerRamRoleName:Worker節點RAM角色名稱。
樣本
ROSTemplateFormatVersion: '2015-09-01'
Description: Test ManagedEdgeKubernetesCluster
Parameters:
VSwitchZoneId:
Type: String
AssociationProperty: ALIYUN::ECS::Instance::ZoneId
Description: Availability ID for existing switches
Label: VSwitch Zone ID
VpcId:
Type: String
Default: Null
AssociationProperty: ALIYUN::ECS::VPC::VPCId
Description: Please search the ID starts with (vpc-xxx)from console-Virtual Private Cloud
Label: Existing VPC ID
VSwitchId:
Type: String
Default: Null
AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId
Description: Please search the business VSwitch ID starts with(vsw-xxx)from console-Virtual Private Cloud-VSwitches
Label: VSwitch ID
AssociationPropertyMetadata:
ZoneId: ${VSwitchZoneId}
VpcId: ${VpcId}
ClusterName:
Type: String
Default: mytest
Password:
Type: String
Description: Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^*_-+=|{}[]:;,.? Special symbol in).
MinLength: 8
Label: Instance Password
NoEcho: true
MaxLength: 30
ConstraintDescription: Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^*_-+=|{}[]:;',.?/ Special symbol in).
NumOfNodes:
Type: Number
Default: 1
MinValue: 0
MaxValue: 300
Resources:
Cluster:
Type: ALIYUN::CS::ManagedEdgeKubernetesCluster
Properties:
NumOfNodes:
Ref: NumOfNodes
Name:
Ref: ClusterName
LoginPassword:
Ref: Password
VpcId:
Ref: VpcId
VSwitchIds:
- Ref: VSwitchId
ServiceCidr: 172.19.0.0/20
Outputs:
ClusterId:
Value:
Fn::GetAtt:
- Cluster
- ClusterId
TaskId:
Value:
Fn::GetAtt:
- Cluster
- TaskId
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "Test ManagedEdgeKubernetesCluster",
"Parameters": {
"VSwitchZoneId": {
"Type": "String",
"AssociationProperty": "ALIYUN::ECS::Instance::ZoneId",
"Description": "Availability ID for existing switches",
"Label": "VSwitch Zone ID"
},
"VpcId": {
"Type": "String",
"Default": null,
"AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
"Description": "Please search the ID starts with (vpc-xxx)from console-Virtual Private Cloud",
"Label": "Existing VPC ID"
},
"VSwitchId": {
"Type": "String",
"Default": null,
"AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",
"Description": "Please search the business VSwitch ID starts with(vsw-xxx)from console-Virtual Private Cloud-VSwitches",
"Label": "VSwitch ID",
"AssociationPropertyMetadata": {
"ZoneId": "${VSwitchZoneId}",
"VpcId": "${VpcId}"
}
},
"ClusterName": {
"Type": "String",
"Default": "mytest"
},
"Password": {
"Type": "String",
"Description": "Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^*_-+=|{}[]:;,.? Special symbol in).",
"MinLength": 8,
"Label": "Instance Password",
"NoEcho": true,
"MaxLength": 30,
"ConstraintDescription": "Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^*_-+=|{}[]:;',.?/ Special symbol in)."
},
"NumOfNodes": {
"Type": "Number",
"Default": 1,
"MinValue": 0,
"MaxValue": 300
}
},
"Resources": {
"Cluster": {
"Type": "ALIYUN::CS::ManagedEdgeKubernetesCluster",
"Properties": {
"NumOfNodes": {
"Ref": "NumOfNodes"
},
"Name": {
"Ref": "ClusterName"
},
"LoginPassword": {
"Ref": "Password"
},
"VpcId": {
"Ref": "VpcId"
},
"VSwitchIds": [
{
"Ref": "VSwitchId"
}
]
"ServiceCidr": "172.19.0.0/20"
}
}
},
"Outputs": {
"ClusterId": {
"Value": {
"Fn::GetAtt": [
"Cluster",
"ClusterId"
]
}
},
"TaskId": {
"Value": {
"Fn::GetAtt": [
"Cluster",
"TaskId"
]
}
}
}
}