ALIYUN::CS::KubernetesCluster类型用于创建Kubernetes专有版集群。
语法
{
"Type": "ALIYUN::CS::KubernetesCluster",
"Properties": {
"CloudMonitorFlags": Boolean,
"ProxyMode": String,
"MasterInstanceTypes": List,
"SnatEntry": Boolean,
"WorkerSystemDiskCategory": String,
"WorkerVSwitchIds": List,
"VpcId": String,
"Tags": List,
"CpuPolicy": String,
"WorkerInstanceTypes": List,
"WorkerDataDisks": List,
"LoginPassword": String,
"ContainerCidr": String,
"NumOfNodes": Number,
"Name": String,
"WorkerSystemDiskSize": Number,
"NodePortRange": String,
"SshFlags": Boolean,
"Taint": List,
"MasterDataDisk": Boolean,
"MasterSystemDiskCategory": String,
"WorkerDataDisk": Boolean,
"Addons": List,
"DisableRollback": Boolean,
"ServiceCidr": String,
"KubernetesVersion": String,
"SecurityGroupId": String,
"KeyPair": String,
"MasterVSwitchIds": List,
"EndpointPublicAccess": Boolean,
"MasterSystemDiskSize": Number,
"MasterDataDisks": List,
"MasterCount": Number,
"TimeoutMins": Number,
"PodVswitchIds": List,
"Runtime": Map,
"ResourceGroupId": String,
"AutoRenewPeriod": Number,
"MasterSystemDiskSnapshotPolicyId": String,
"FormatDisk": Boolean,
"WorkerSystemDiskSnapshotPolicyId": String,
"KeepInstanceName": Boolean,
"DeletionProtection": Boolean,
"OsType": String,
"LoadBalancerSpec": String,
"AutoRenew": Boolean,
"ChargeType": String,
"NodeCidrMask": String,
"UserData": String,
"UserCa": String,
"IsEnterpriseSecurityGroup": Boolean,
"Period": Number,
"MasterSystemDiskPerformanceLevel": String,
"SocEnabled": Boolean,
"TimeZone": String,
"Platform": String,
"PeriodUnit": String,
"MasterZoneIds": List,
"WorkerZoneIds": List,
"NodePools": List,
"NodeNameMode": String,
"SecurityHardeningOs": Boolean,
"DeleteOptions": List
}
}
属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Runtime | Map | 否 | 否 | 容器运行时。 | Runtime包括以下2个信息:
示例:
说明 关于容器运行时的选择,请参见如何选择Docker运行时、Containerd运行时、或者安全沙箱运行时?。更多信息,请参见Runtime属性。 |
CloudMonitorFlags | Boolean | 否 | 否 | 是否安装云监控插件。 | 取值:
|
ProxyMode | String | 否 | 否 | kube-proxy代理模式。 | 取值:
|
MasterInstanceTypes | List | 是 | 否 | Master节点ECS实例规格。 | 必须填写3个ECS实例规格,ECS实例规格可以重复。 更多信息,请参见实例规格族。 |
SnatEntry | Boolean | 否 | 否 | 是否为网络配置SNAT。 | 取值:
|
WorkerSystemDiskCategory | String | 否 | 否 | Worker节点系统盘类型。 | 取值:
|
WorkerVSwitchIds | List | 是 | 否 | Worker节点的交换机ID。 | 最多支持设置5个交换机ID。 |
VpcId | String | 是 | 否 | 专有网络ID。 | 如果不设置,系统会自动创建专有网络,系统创建的专有网络网段为192.168.0.0/16。 VpcId和MasterVSwitchIds只能同时为空或者同时指定。 |
Tags | List | 否 | 是 | 集群标签。 | 最多可以设置20组标签。 更多信息,请参见Tags属性。 |
PodVswitchIds | List | 否 | 否 | Pod交换机列表。 | 您需要为每一个节点交换机指定至少一个相同可用区的Pod交换机,该Pod交换机不能跟节点交换机重复。 建议您选择网段掩码不大于19的交换机。 说明 当集群列表(Addons)取值为网络组件,且采用Terway网络类型时,必须为集群指定PodVswitchIds。 |
CpuPolicy | String | 否 | 否 | CPU策略。 | 当集群版本为1.12.6及以上版本时该参数有效。取值:
|
WorkerInstanceTypes | List | 否 | 否 | Worker节点ECS实例规格。 | 更多信息,请参见实例规格族。 |
WorkerDataDisks | List | 否 | 否 | Worker数据盘类型、大小等配置。 | 只有在挂载Worker节点数据盘时有效。 更多信息,请参见WorkerDataDisks属性。 |
LoginPassword | String | 否 | 否 | SSH登录密码。 | 长度为8~30个字符,必须同时包含英文字母、数字和特殊字符,支持的特殊字符为: 说明 LoginPassword和KeyPair只能指定其中一个参数。 |
ContainerCidr | String | 否 | 否 | Pod网络地址段。 | 当创建Flannel网络类型的集群时,ContainerCidr为必填。ContainerCidr必须是有效的私有网段,即以下网段及其子网:
不能与专有网络及专有网络内已有Kubernetes集群使用的网段重复,且创建成功后不能修改。 关于集群网络规划,请参见Kubernetes集群网络规划。 |
SecurityHardeningOs | Boolean | 否 | 否 | 阿里云操作系统安全加固。 | 取值:
默认值:false。 |
NumOfNodes | Number | 否 | 否 | Worker节点数。 | 取值范围:0~300。 默认值:3。 |
Name | String | 是 | 否 | 集群名称。 | 长度为1~63个字符。可包含写英文字母、汉字、数字和短划线(-)。 |
WorkerSystemDiskSize | Number | 否 | 否 | Worker节点系统盘大小。 | 默认值:120。 单位:GiB。 |
NodePortRange | String | 否 | 否 | 节点服务端口。 | 取值范围:30,000~65,535中的两个值,以短划线(-)分隔。 默认值:30,000-65,535。 |
SshFlags | Boolean | 否 | 否 | 是否开放公网SSH登录。 | 取值:
|
Taint | List | 否 | 否 | 给节点做污点标记,通常用于Pods的调度策略。 | 若Pods上有相对应的容忍(tolerance)标记,则可以将容忍节点上的污点调度到该节点。 |
MasterDataDisk | Boolean | 否 | 否 | Master节点是否挂载数据盘。 | 取值:
|
MasterSystemDiskCategory | String | 否 | 否 | Master节点系统盘类型。 | 取值:
|
WorkerDataDisk | Boolean | 否 | 否 | Worker节点是否挂载数据盘。 | 取值:
|
Addons | List | 否 | 否 | Kubernetes集群安装的组件列表。 | 取值:
更多信息,请参见Addons属性。 |
DisableRollback | Boolean | 否 | 否 | 失败是否回滚。 | 取值:
|
ServiceCidr | String | 否 | 否 | 服务网段。 | 不能和专有网络网段以及容器网段冲突。 当选择系统自动创建专有网络时,默认使用172.19.0.0/20网段。 |
KubernetesVersion | String | 否 | 是 | 集群版本,与Kubernetes社区基线版本保持一致。建议选择最新版本。 | 目前您可以创建两种最新版本的集群。关于ACK支持的Kubernetes版本,请参见Kubernetes版本发布概览。 |
SecurityGroupId | String | 否 | 否 | 集群ECS实例所属于的安全组ID。 | 无 |
KeyPair | String | 否 | 否 | 密钥对名称。 | KeyPair和LoginPassword只能指定其中一个参数。 |
MasterVSwitchIds | List | 是 | 否 | Master节点交换机ID。 | 必须指定3个交换机ID,交换机ID可以重复。为确保集群的高可用性,推荐您选择3个交换机。 |
EndpointPublicAccess | Boolean | 否 | 否 | 是否开启公网APIServer。 | 取值:
|
MasterSystemDiskSize | Number | 否 | 否 | Master节点系统盘大小。 | 默认值:120。 单位:GiB。 |
MasterDataDisks | List | 否 | 否 | Master数据盘类型、大小等配置。 | 只有在挂载Master节点数据盘时有效。 更多信息,请参见MasterDataDisks属性。 |
MasterCount | Number | 否 | 否 | Master实例个数。 | 取值:
|
TimeoutMins | Number | 否 | 否 | 集群资源栈创建超时时间。 | 默认值:60。 单位:分钟。 |
ResourceGroupId | String | 否 | 是 | 资源组ID。 | 无 |
AutoRenewPeriod | Number | 否 | 否 | 自动续借周期。 | 当ChargeType取值为PrePaid,且AutoRenew取值为true时,该参数有效。取值:
默认值:1。 |
MasterSystemDiskSnapshotPolicyId | String | 否 | 否 | 备份主节点数据盘的策略ID。 | 无 |
FormatDisk | Boolean | 否 | 否 | 是否将数据磁盘挂载到已创建的节点上,在已有的ECS实例中创建。 | 取值:
|
WorkerSystemDiskSnapshotPolicyId | String | 否 | 否 | 用于备份工作节点数据盘的策略ID。 | 无 |
KeepInstanceName | Boolean | 否 | 否 | 是否保留集群中使用的现有ECS实例的名称。 | 取值:
|
DeletionProtection | Boolean | 否 | 否 | 是否启用删除保护功能。 | 启用删除保护后,集群不能被直接删除。 取值:
|
OsType | String | 否 | 否 | 操作系统的类型。 | 取值:
|
LoadBalancerSpec | String | 否 | 否 | 负载均衡实例规格。 | 取值:
|
AutoRenew | Boolean | 否 | 否 | 是否自动续费。 | 当ChargeType取值为PrePaid时该参数有效。 取值:
|
ChargeType | String | 否 | 否 | 付费类型。 | 取值:
|
NodeCidrMask | String | 否 | 否 | 可分配给节点的最大IP地址数量。 | 数量由指定的pod CIDR决定。该参数仅在集群使用Flannel插件时生效。 默认值:25。 |
UserData | String | 否 | 否 | 创建ECS实例时传递的用户数据。 | 内容需要限制在16 KB以内。无需使用Base64转码,特殊字符需要使用转义符。 |
UserCa | String | 否 | 否 | 集群的CA。 | 如果选中自定义集群CA,可以将CA证书添加到Kubernetes集群中,加强服务端和客户端之间信息交互的安全性。 |
IsEnterpriseSecurityGroup | Boolean | 否 | 否 | 是否创建高级安全组。 | 当SecurityGroupId为空时,该参数生效。取值:
|
Period | Number | 否 | 否 | 购买资源的时长。 | 当ChargeType为PrePaid时,该参数生效且为必选参数。取值:
默认值:1。 |
MasterSystemDiskPerformanceLevel | String | 否 | 否 | 主节点使用的增强型SSD硬盘的性能级别。 | 取值:
|
SocEnabled | Boolean | 否 | 否 | 是否启用基于分级保护的加固。 | 取值:
|
MasterZoneIds | List | 否 | 否 | Master节点的交换机可用区信息。 | 无 |
WorkerZoneIds | List | 否 | 否 | Worker节点的交换机可用区信息。 | 无 |
TimeZone | String | 否 | 否 | 集群的时区。 | 无 |
Platform | String | 否 | 否 | 操作系统的发布版本。 | 取值:
|
PeriodUnit | String | 否 | 否 | 购买资源的时长。 | 当ChargeType为PrePaid时该参数有效。取值:
|
NodePools | List | 否 | 否 | 节点池信息。 | 更多信息,请参见NodePools属性。 |
NodeNameMode | String | 否 | 否 | 自定义节点名。 | 节点名称由三部分组成:前缀+节点IP地址子串+后缀。
|
DeleteOptions | List | 否 | 是 | 集群关联资源的删除选项。 | 更多信息,请参见DeleteOptions属性。 |
NodePools语法
"NodePools": [
{
"ScalingGroup": Map,
"KubernetesConfig": Map,
"NodePoolInfo": Map,
"Count": Integer
}
]
NodePools属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
ScalingGroup | Map | 是 | 否 | 节点池扩容组配置。 | 更多信息,请参见ScalingGroup属性。 |
KubernetesConfig | Map | 否 | 否 | 集群相关配置。 | 更多信息,请参见KubernetesConfig属性。 |
NodePoolInfo | Map | 否 | 否 | 节点池配置。 | 更多信息,请参见NodePoolInfo属性。 |
Count | Integer | 否 | 否 | 节点池节点数量。 | 无 |
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属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
RdsInstances | List | 否 | 否 | RDS实例ID。 | 无 |
IsEnterpriseSecurityGroup | Boolean | 否 | 否 | 自动创建企业级安全组。 | 取值:
|
VSwitchIds | List | 是 | 否 | 虚拟交换机ID列表。 | 无 |
InternetMaxBandwidthOut | Integer | 否 | 否 | 节点公网IP出带宽最大值。 | 单位:Mbps。 取值范围:1~100。 |
DataDisks | List | 否 | 否 | 节点池节点数据盘配置。 | 更多信息,请参见DataDisks属性。 |
Period | Integer | 否 | 否 | 节点池节点包年包月时长。 | 当InternetChargeType取值为PrePaid时,本属性才生效且为必选值。 当period_unit取值为Month时,period取值范围:{ 1, 2, 3,6,12}。 默认值:1。 |
InternetChargeType | String | 否 | 否 | 节点池节点付费类型。 | 取值:
|
KeyPair | String | 否 | 否 | 免密登录密钥对名称。 | KeyPair和LoginPassword只能选择其中之一。 |
SystemDiskPerformanceLevel | String | 否 | 否 | 节点系统盘磁盘性能。 | 只对ESSD磁盘生效。 |
ImageId | String | 否 | 否 | 自定义镜像ID。 | 默认使用系统提供的镜像。 |
Platform | String | 否 | 否 | 操作系统发行版。 | 取值:
|
InstanceTypes | List | 是 | 否 | 实例规格。 | 无 |
SystemDiskCategory | String | 否 | 否 | 节点系统盘类型。 | 取值:
|
PeriodUnit | String | 否 | 否 | 节点池节点付费周期。 | 当InternetChargeType指定为PrePaid时,需要指定周期。 Month:以月为计时单位。 |
LoginPassword | String | 否 | 否 | SSH登录密码。 | KeyPair和LoginPassword只能选择其中之一。 密码规则为8~30个字符,且至少同时包含大小写字母、数字和特殊符号。 |
InstanceChargeType | String | 否 | 否 | 节点池节点付费类型。 | 取值:
|
SystemDiskSize | Integer | 是 | 否 | 节点系统盘大小。 | 单位:GiB。 取值范围:40~500。 |
Tags | List | 否 | 否 | 仅为ECS实例添加标签。 | 更多信息,请参见Tags属性。 |
ZoneIds | List | 否 | 否 | 可用区列表。 | 无 |
DataDisks语法
"DataDisks": [
{
"AutoSnapshotPolicyId": String,
"Encrypted": Boolean,
"Size": Integer,
"Category": String,
"PerformanceLevel": String
}
]
DataDisks属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
AutoSnapshotPolicyId | String | 否 | 否 | 选择自动快照策略ID。 | 云盘会按照快照策略自动备份。 |
Encrypted | Boolean | 否 | 否 | 是否对数据盘加密。 | 取值:
|
Size | Integer | 否 | 否 | 数据盘大小。 | 单位:GiB。 取值范围:40~32768。 默认值:120。 |
Category | String | 否 | 否 | 数据盘类型。 | 取值:
|
PerformanceLevel | String | 否 | 否 | 节点数据盘磁盘性能等级。 | 仅对ESSD磁盘生效,磁盘性能等级和磁盘大小有关。 更多信息,请参见ESSD云盘。 |
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地址子串+后缀。
|
Taints | List | 否 | 否 | 污点配置。 | 更多信息,请参见Taints属性。 |
Labels语法
"Labels": {
"Value": String,
"Key": String
}
Labels属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Value | String | 是 | 否 | 标签值。 | 无 |
Key | String | 是 | 否 | 标签键。 | 无 |
Taints语法
"Taints": [{
"Value": String,
"Effect": String,
"Key": String
}]
Taints属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Value | String | 是 | 否 | 污点值。 | 无 |
Effect | String | 否 | 否 | 调度策略。 | 取值:
|
Key | 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个字符,不能以 |
MasterDataDisks语法
"MasterDataDisks": [
{
"Category": String,
"Size": Number
}
]
MasterDataDisks属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Category | String | 是 | 否 | Master节点数据盘类型。 | 取值:
|
Size | Number | 是 | 否 | Master节点数据盘大小。 | 取值范围:40~32,768。 单位:GiB。 |
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属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Disabled | Boolean | 否 | 否 | 是否禁止默认安装。 | 取值:
|
Config | String | 否 | 否 | 插件的配置。 | 无 |
Name | String | 是 | 否 | 插件的名称。 | 无 |
Runtime语法
"Runtime": {
"Name": String,
"Version": String
}
Runtime属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
Name | String | 是 | 否 | 容器运行时名称。 | 取值:
|
Version | String | 否 | 否 | 容器运行时版本。 | 取值:
|
DeleteOptions语法
"DeleteOptions": [{
"DeleteMode": String,
"ResourceType": String
}]
DeleteOptions属性
属性名称 | 类型 | 必须 | 允许更新 | 描述 | 约束 |
DeleteMode | String | 否 | 是 | 该类型资源的删除策略。 | 可取值:
|
ResourceType | String | 否 | 是 | 资源类型。 | 可取值:
|
返回值
Fn::GetAtt
ClusterId:集群ID。
TaskId:任务ID。系统自动分配,用户查询任务状态。
WorkerRamRoleName:Worker节点RAM角色名称。
ScalingGroupId:伸缩组ID。
DefaultUserKubeConfig:用户默认的Kubernetes配置,用于配置集群凭据。
Nodes:集群节点列表。
ScalingRuleId:伸缩规则ID。
PrivateUserKubConfig:用户专有的Kubernetes配置,用于配置集群凭据。
ScalingConfigurationId:伸缩配置ID。
APIServerSLBId:API服务器负载均衡ID。
IngressSLBId:Ingress负载均衡ID。