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,
"MaintenanceWindow": Map,
"ZoneIds": List,
"VSwitchIds": List,
"NodePools": List,
"EncryptionProviderKey": String,
"KubernetesVersion": String,
"IpStack": String
}
}属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Name | String | 是 | 否 | 集群名称。 | 以英文字母或数字开头,可包含英文字母、汉字、数字和短划线(-)。 |
Addons | List | 否 | 否 | 集群安装的组件列表。 | 取值:
更多信息,请参见Addons属性。 |
CloudMonitorFlags | Boolean | 否 | 否 | 是否安装云监控插件。 | 取值:
|
ClusterSpec | String | 否 | 否 | 托管版集群类型。 | 取值:
|
ContainerCidr | String | 否 | 否 | Pod网络地址段。 | 当创建Flannel网络类型的集群时,ContainerCidr为必填。ContainerCidr必须是有效的私有网段,即以下网段及其子网:
不能与专有网络及专有网络内已有Kubernetes集群使用的网段重复,且创建成功后不能修改。 关于集群网络规划,请参见ACK托管集群网络规划。 |
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 | 否 | 否 | 由密钥管理服务KMS管理的密钥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 | 否 | 否 | 可用区列表。 | 无 |
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"
]
}
}
}
}