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,
"AutoRenewPeriod": Number,
"ChargeType": String,
"AutoRenew": Boolean,
"Period": Number,
"NodeCidrMask": String,
"PeriodUnit": String,
"DeletionProtection": Boolean,
"ZoneIds": List,
"ResourceGroupId": String
}
}
属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Name | String | 是 | 否 | 集群名称。 | 以英文字母或数字开头,可包含英文字母、汉字、数字和短划线(-)。 |
Addons | List | 否 | 否 | 集群安装的组件列表。 | 取值:
更多信息,请参见Addons属性。 |
AutoRenew | Boolean | 否 | 否 | 是否自动续费。 | 当ChargeType取值为PrePaid时该参数有效。取值:
|
AutoRenewPeriod | Number | 否 | 否 | 自动续借周期。 | 当ChargeType取值为PrePaid,且AutoRenew取值为true时,该参数有效。取值:
默认值:1。 |
ChargeType | String | 否 | 否 | 付费类型。 | 取值:
|
CloudMonitorFlags | Boolean | 否 | 否 | 是否安装云监控插件。 | 取值:
|
ClusterSpec | String | 否 | 否 | 托管版集群类型。 | 取值:
|
ContainerCidr | String | 否 | 否 | Pod网络地址段。 | 当创建Flannel网络类型的集群时,ContainerCidr为必填。ContainerCidr必须是有效的私有网段,即以下网段及其子网:
不能与专有网络及专有网络内已有Kubernetes集群使用的网段重复,且创建成功后不能修改。 关于集群网络规划,请参见Kubernetes集群网络规划。 |
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。 |
Period | Number | 否 | 否 | 购买资源的时长。 | 当ChargeType为PrePaid时,该参数生效且为必选参数。取值:
默认值:1。 |
PeriodUnit | String | 否 | 否 | 购买资源的时长周期。 | 当ChargeType为PrePaid时该参数有效。取值:
|
Profile | String | 否 | 否 | 边缘集群标识。 | 默认值:Edge。 |
ProxyMode | String | 否 | 否 | kube-proxy代理模式。 | 取值:
|
ResourceGroupId | String | 否 | 是 | 集群所属的资源组ID。 | 无 |
ServiceCidr | String | 否 | 否 | 服务网段。 | 不能与专有网络网段以及容器网段冲突。当选择系统自动创建专有网络时,默认使用172.19.0.0/20网段。 |
SnatEntry | Boolean | 否 | 否 | 是否为网络配置SNAT。 | 取值:
说明 如果使用自动创建的专有网络,则必须设置为true。如果使用已有非系统自动创建的专有网络,则需要根据是否具备出网能力来设置。 |
Tags | List | 否 | 是 | 标签。 | 最多可以设置20个标签。 更多信息,请参见Tags属性。 |
TimeoutMins | Number | 否 | 否 | 集群资源栈创建超时时间。 | 默认值:60。 单位:分钟。 |
VpcId | String | 否 | 否 | 专有网络ID。 | 如果不设置,系统会自动创建专有网络,系统创建的专有网络网段为192.168.0.0/16。 VpcId和VSwitchIds只能同时为空或者同时都设置对应的值。 |
ZoneIds | List | 否 | 否 | Worker节点所属的交换机可用区。 | 无 |
Tags语法
"Tags": [
{
"Key": String,
"Value": String
}
]
Tags属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Key | String | 是 | 否 | 标签键。 | 长度为1~64个字符,不能以 |
Value | String | 否 | 否 | 标签值。 | 长度为0~128个字符,不能以 |
WorkerDataDisks语法
"WorkerDataDisks": [
{
"Category": String,
"Size": Number
}
]
WorkerDataDisks属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Category | String | 是 | 否 | Worker节点数据盘类型。 | 取值:
|
Size | Number | 是 | 否 | 数据盘大小。 | 取值范围:40~32,768。单位:GiB。 |
Addons语法
"Addons": [
{
"Disabled": Boolean,
"Config": String,
"Name": String
}
]
Addons属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Name | String | 是 | 否 | 组件名称。 | 无 |
Config | String | 否 | 否 | 组件配置。 | 无 |
Disabled | Boolean | 否 | 否 | 是否禁止默认安装组件。 | 取值:
|
返回值
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 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
WorkerInstanceType:
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: ${VSwitchZoneId}
Type: String
Label: Instance Type
WorkerSystemDiskCategory:
AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
AssociationPropertyMetadata:
ZoneId: ${VSwitchZoneId}
InstanceType: ${WorkerInstanceType}
Type: String
Label: System Disk Type
Resources:
Cluster:
Type: ALIYUN::CS::ManagedEdgeKubernetesCluster
Properties:
NumOfNodes:
Ref: NumOfNodes
Name:
Ref: ClusterName
LoginPassword:
Ref: Password
VpcId:
Ref: VpcId
VSwitchIds:
- Ref: VSwitchId
WorkerInstanceTypes:
- Ref: WorkerInstanceType
WorkerSystemDiskCategory:
Ref: WorkerSystemDiskCategory
ServiceCidr: 172.19.0.0/20
Outputs:
ClusterId:
Value:
Fn::GetAtt:
- Cluster
- ClusterId
TaskId:
Value:
Fn::GetAtt:
- Cluster
- TaskId
JSON
格式
{
"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
},
"WorkerInstanceType": {
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
"AssociationPropertyMetadata": {
"ZoneId": "${VSwitchZoneId}"
},
"Type": "String",
"Label": "Instance Type"
},
"WorkerSystemDiskCategory": {
"AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",
"AssociationPropertyMetadata": {
"ZoneId": "${VSwitchZoneId}",
"InstanceType": "${WorkerInstanceType}"
},
"Type": "String",
"Label": "System Disk Type"
}
},
"Resources": {
"Cluster": {
"Type": "ALIYUN::CS::ManagedEdgeKubernetesCluster",
"Properties": {
"NumOfNodes": {
"Ref": "NumOfNodes"
},
"Name": {
"Ref": "ClusterName"
},
"LoginPassword": {
"Ref": "Password"
},
"VpcId": {
"Ref": "VpcId"
},
"VSwitchIds": [
{
"Ref": "VSwitchId"
}
],
"WorkerInstanceTypes": [
{
"Ref": "WorkerInstanceType"
}
],
"WorkerSystemDiskCategory": {
"Ref": "WorkerSystemDiskCategory"
},
"ServiceCidr": "172.19.0.0/20"
}
}
},
"Outputs": {
"ClusterId": {
"Value": {
"Fn::GetAtt": [
"Cluster",
"ClusterId"
]
}
},
"TaskId": {
"Value": {
"Fn::GetAtt": [
"Cluster",
"TaskId"
]
}
}
}
}