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,
    "CisEnabled": Boolean,
    "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
  }
}

属性

属性名称类型必须允许更新描述约束
RuntimeMap容器运行时。Runtime包括以下2个信息:
  • name:容器运行时名称。
  • version:容器运行时版本。

示例:

{"name": "docker", "version": "19.03.5"}
说明 关于容器运行时的选择,请参见如何选择Docker运行时、Containerd运行时、或者安全沙箱运行时?。更多信息,请参见Runtime属性
CloudMonitorFlagsBoolean是否安装云监控插件。取值:
  • true:安装。
  • false(默认值):不安装。
ProxyModeStringkube-proxy代理模式。取值:
  • iptables(默认值)
  • ipvs
MasterInstanceTypesListMaster节点ECS实例规格。必须填写3个ECS实例规格,ECS实例规格可以重复。

更多信息,请参见实例规格族

SnatEntryBoolean是否为网络配置SNAT。取值:
  • 当已有专有网络可以访问公网环境时:false。
  • 当已有专有网络不能访问公网环境时:
    • true:配置SNAT,此时可以访问公网环境。
    • false:不配置SNAT,此时不能访问公网环境。
WorkerSystemDiskCategoryStringWorker节点系统盘类型。取值:
  • cloud_efficiency(默认值):高效云盘。
  • cloud_ssd:SSD云盘。
  • cloud_essd:ESSD云盘。
WorkerVSwitchIdsListWorker节点的交换机ID。最多支持设置5个交换机ID。
VpcIdString专有网络ID。如果不设置,系统会自动创建专有网络,系统创建的专有网络网段为192.168.0.0/16。

VpcId和MasterVSwitchIds只能同时为空或者同时指定。

TagsList集群标签。最多可以设置20组标签。

更多信息,请参见Tags属性

PodVswitchIdsListPod交换机列表。您需要为每一个节点交换机指定至少一个相同可用区的Pod交换机,该Pod交换机不能跟节点交换机重复。

建议您选择网段掩码不大于19的交换机。

说明 当集群列表(Addons)取值为网络组件,且采用Terway网络类型时,必须为集群指定PodVswitchIds。
CpuPolicyStringCPU策略。当集群版本为1.12.6及以上版本时该参数有效。取值:
  • static
  • none(默认值)
WorkerInstanceTypesListWorker节点ECS实例规格。更多信息,请参见实例规格族
WorkerDataDisksListWorker数据盘类型、大小等配置。只有在挂载Worker节点数据盘时有效。

更多信息,请参见WorkerDataDisks属性

LoginPasswordStringSSH登录密码。长度为8~30个字符,必须同时包含英文字母、数字和特殊字符,支持的特殊字符为:( )'~!@#$%^&*-+=|{ }[ ]:;< >,.?/-
说明 LoginPassword和KeyPair只能指定其中一个参数。
ContainerCidrStringPod网络地址段。当创建Flannel网络类型的集群时,ContainerCidr为必填。ContainerCidr必须是有效的私有网段,即以下网段及其子网:
  • 10.0.X.X/8
  • 172.16-31.0.0/12-16
  • 192.168.XX.XX/16
不能与专有网络及专有网络内已有Kubernetes集群使用的网段重复,且创建成功后不能修改。

关于集群网络规划,请参见Kubernetes集群网络规划

NumOfNodesNumberWorker节点数。取值范围:0~300。

默认值:3。

NameString集群名称。长度为1~63个字符。可包含写英文字母、汉字、数字和短划线(-)。
WorkerSystemDiskSizeNumberWorker节点系统盘大小。默认值:120。

单位:GiB。

NodePortRangeString节点服务端口。取值范围:30,000~65,535中的两个值,以短划线(-)分隔。

默认值:30,000-65,535。

SshFlagsBoolean是否开放公网SSH登录。取值:
  • true:开放。
  • false(默认值):不开放。
TaintList给节点做污点标记,通常用于Pods的调度策略。若Pods上有相对应的容忍(tolerance)标记,则可以将容忍节点上的污点调度到该节点。
MasterDataDiskBooleanMaster节点是否挂载数据盘。取值:
  • true:挂载数据盘。
  • false(默认值):不挂载数据盘。
MasterSystemDiskCategoryStringMaster节点系统盘类型。取值:
  • cloud_efficiency:高效云盘。
  • cloud_ssd:SSD云盘。
  • cloud_essd:ESSD云盘。
WorkerDataDiskBooleanWorker节点是否挂载数据盘。取值:
  • true:挂载数据盘。
  • false(默认值):不挂载数据盘。
AddonsListKubernetes集群安装的组件列表。取值:
  • 网络组件

    支持Flannel和Terway两种网络类型,创建集群时需二选一:

    • Flannel网络:[{"Name":"flannel","Config":""}]
    • Terway网络:[{"Name": "terway-eniip","Config": ""}]
  • 存储组件

    支持csi和flexvolume两种类型:

    • csi:[{"Name":"csi-plugin","Config": ""},{"Name": "csi-provisioner","Config": ""}]
    • flexvolume:[{"Name": "flexvolume","Config": ""}]
  • 日志组件(可选)
    说明 如果不开启日志服务,将无法使用集群审计功能。
    • 使用已有SLS Project:[{"Name": "logtail-ds","Config": "{\"IngressDashboardEnabled\":\"true\",\"sls_project_name\":\"your_sls_project_name\"}"}]
    • 创建新的SLS Project:[{"Name": "logtail-ds","Config": "{\"IngressDashboardEnabled\":\"true\"}"}]
  • Ingress组件(可选)

    ACK专有版集群默认安装Ingress组件nginx-ingress-controller。

    • 安装Ingress并且开启公网:[{"Name":"nginx-ingress-controller","Config":"{\"IngressSlbNetworkType\":\"internet\"}"}]
    • 不安装Ingress:[{"Name": "nginx-ingress-controller","Config": "","Disabled": true}]
  • 事件中心(可选,默认开启)

    事件中心提供对Kubernetes事件的存储、查询、告警等能力。Kubernetes事件中心关联的Logstore在90天内免费。更多信息,请参见创建并使用K8s事件中心

    开启事件中心:[{"Name":"ack-node-problem-detector","Config":"{\"sls_project_name\":\"your_sls_project_name\"}"}]

更多信息,请参见Addons属性
DisableRollbackBoolean失败是否回滚。取值:
  • true(默认值):失败不回滚。
  • false:失败回滚。
    说明 如果选择失败回滚,则会释放创建过程中所生产的资源,不推荐使用。
ServiceCidrString服务网段。不能和专有网络网段以及容器网段冲突。

当选择系统自动创建专有网络时,默认使用172.19.0.0/20网段。

KubernetesVersionString集群版本,与Kubernetes社区基线版本保持一致。建议选择最新版本。目前您可以创建两种最新版本的集群。关于ACK支持的Kubernetes版本,请参见Kubernetes版本发布概览
SecurityGroupIdString集群ECS实例所属于的安全组ID。
KeyPairString密钥对名称。KeyPair和LoginPassword只能指定其中一个参数。
MasterVSwitchIdsListMaster节点交换机ID。必须指定3个交换机ID,交换机ID可以重复。为确保集群的高可用性,推荐您选择3个交换机。
EndpointPublicAccessBoolean是否开启公网APIServer。取值:
  • true:开启公网APIServer。
  • false(默认值):仅创建私网APIServer。
MasterSystemDiskSizeNumberMaster节点系统盘大小。默认值:120。

单位:GiB。

MasterDataDisksListMaster数据盘类型、大小等配置。只有在挂载Master节点数据盘时有效。

更多信息,请参见MasterDataDisks属性

MasterCountNumberMaster实例个数。取值:
  • 3(默认值)
  • 5
TimeoutMinsNumber集群资源栈创建超时时间。默认值:60。

单位:分钟。

ResourceGroupIdString资源组ID。
CisEnabledBoolean是否启用Internet安全中心(CIS)加固。取值:
  • true:启用。
  • false(默认值):禁用。
AutoRenewPeriodNumber自动续借周期。当ChargeType取值为PrePaid,且AutoRenew取值为true时,该参数有效。取值:
  • 当PeriodUnit取值为Week时:1、2、3。
  • 当PeriodUnit取值为Month时:1、2、3、6、12。

默认值:1。

MasterSystemDiskSnapshotPolicyIdString备份主节点数据盘的策略ID。
FormatDiskBoolean是否将数据磁盘挂载到已创建的节点上,在已有的ECS实例中创建。取值:
  • true:容器和镜像的数据存放在数据磁盘上。磁盘上的原始数据将被覆盖。挂载磁盘前请先备份数据。
  • false(默认值):不将容器和镜像的数据存储在数据磁盘上。
WorkerSystemDiskSnapshotPolicyIdString用于备份工作节点数据盘的策略ID。
KeepInstanceNameBoolean是否保留集群中使用的现有ECS实例的名称。取值:
  • true(默认值):保留。
  • false:不保留。新名称由系统分配。
DeletionProtectionBoolean是否启用删除保护功能。启用删除保护后,集群不能被直接删除。

取值:

  • true:启用。
  • false(默认值):禁用。
OsTypeString操作系统的类型。取值:
  • Windows
  • Linux(默认值)
LoadBalancerSpecString负载均衡实例规格。取值:
  • slb.s1.small
  • slb.s2.small
  • slb.s2.medium
  • slb.s3.small
  • slb.s3.medium
  • slb.s3.large
AutoRenewBoolean是否自动续费。当ChargeType取值为PrePaid时该参数有效。

取值:

  • true(默认值):自动续期。
  • false:不自动续期。
ChargeTypeString付费类型。取值:
  • PrePaid:预付费。
  • PostPaid(默认值):按量付费。
NodeCidrMaskString可分配给节点的最大IP地址数量。数量由指定的pod CIDR决定。该参数仅在集群使用Flannel插件时生效。

默认值:25。

UserDataString创建ECS实例时传递的用户数据。内容需要限制在16 KB以内。无需使用Base64转码,特殊字符需要使用转义符。
UserCaString集群的CA。如果选中自定义集群CA,可以将CA证书添加到Kubernetes集群中,加强服务端和客户端之间信息交互的安全性。
IsEnterpriseSecurityGroupBoolean是否创建高级安全组。当SecurityGroupId为空时,该参数生效。取值:
  • true:创建。安装了Terway的集群,必须创建高级安全组。
  • false(默认值):不创建。
PeriodNumber购买资源的时长。当ChargeType为PrePaid时,该参数生效且为必选参数。取值:
  • 当PeriodUnit为Week时:1~4。
  • 当PeriodUnit为Month时:1~9、12、24、36、48、60。

默认值:1。

MasterSystemDiskPerformanceLevelString主节点使用的增强型SSD硬盘的性能级别。取值:
  • PL0
  • PL1
  • PL2
  • PL3
SocEnabledBoolean是否启用基于分级保护的加固。取值:
  • true:启用。
  • false(默认值):禁用。
MasterZoneIdsListMaster节点的交换机可用区信息。
WorkerZoneIdsListWorker节点的交换机可用区信息。
TimeZoneString集群的时区。
PlatformString操作系统的发布版本。取值:
  • CentOS(默认值)
  • AliyunLinux
  • QbootAliyunLinux
  • Qboot
  • Windows
  • WindowsCore
PeriodUnitString购买资源的时长。当ChargeType为PrePaid时该参数有效。取值:
  • Week:周。
  • Month(默认值):月。
NodePoolsList节点池信息。更多信息,请参见NodePools属性
NodeNameModeString自定义节点名。节点名称由三部分组成:前缀+节点IP地址子串+后缀。
  • 前缀和后缀均可由半角句号(.)分隔的一个或多个部分组成,每个部分可以使用小写英文字母、数字和短划线(-),节点名称首尾必须为小写英文字母和数字。
  • IP地址段长度指截取节点IP地址末尾的位数,取值范围为5~12。

NodePools语法

"NodePools": [
  {
    "ScalingGroup": Map,
    "KubernetesConfig": Map,
    "NodePoolInfo": Map,
    "Count": Integer
  }
]

NodePools属性

属性名称类型必须允许更新描述约束
ScalingGroupMap节点池扩容组配置。更多信息,请参见ScalingGroup属性
KubernetesConfigMap集群相关配置。更多信息,请参见KubernetesConfig属性
NodePoolInfoMap节点池配置。更多信息,请参见NodePoolInfo属性
CountInteger节点池节点数量。

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属性

属性名称类型必须允许更新描述约束
RdsInstancesListRDS实例ID。
IsEnterpriseSecurityGroupBoolean自动创建企业级安全组。取值:
  • true:创建并使用企业级安全组。
  • false:不使用企业级安全组。
VSwitchIdsList虚拟交换机ID列表。
InternetMaxBandwidthOutInteger节点公网IP出带宽最大值。单位:Mbps。

取值范围:1~100。

DataDisksList节点池节点数据盘配置。更多信息,请参见DataDisks属性
PeriodInteger节点池节点包年包月时长。当InternetChargeType取值为PrePaid时,本属性才生效且为必选值。

当period_unit取值为Month时,period取值范围:{ 1, 2, 3,6,12}。

默认值:1。
InternetChargeTypeString节点池节点付费类型。取值:
  • PrePaid:预付费。
  • PostPaid(默认值):按量付费。
KeyPairString免密登录密钥对名称。KeyPair和LoginPassword只能选择其中之一。
SystemDiskPerformanceLevelString节点系统盘磁盘性能。只对ESSD磁盘生效。
ImageIdString自定义镜像ID。默认使用系统提供的镜像。
PlatformString操作系统发行版。取值:
  • CentOS
  • AliyunLinux(默认值)
  • Windows
  • WindowsCore
InstanceTypesList实例规格。
SystemDiskCategoryString节点系统盘类型。取值:
  • cloud_efficiency(默认值):高效云盘。
  • cloud_ssd:SSD云盘。
  • cloud_essd:ESSD云盘。
PeriodUnitString节点池节点付费周期。当InternetChargeType指定为PrePaid时,需要指定周期。

Month:以月为计时单位。

LoginPasswordStringSSH登录密码。KeyPair和LoginPassword只能选择其中之一。

密码规则为8~30个字符,且至少同时包含大小写字母、数字和特殊符号。

InstanceChargeTypeString节点池节点付费类型。取值:
  • PrePaid:预付费。
  • PostPaid(默认值):按量付费。
SystemDiskSizeInteger节点系统盘大小。单位:GiB。

取值范围:40~500。

TagsList仅为ECS实例添加标签。更多信息,请参见Tags属性
ZoneIdsList可用区列表。

DataDisks语法

"DataDisks": [
  {
    "AutoSnapshotPolicyId": String,
    "Encrypted": Boolean,
    "Size": Integer,
    "Category": String,
    "PerformanceLevel": String
  }
]

DataDisks属性

属性名称类型必须允许更新描述约束
AutoSnapshotPolicyIdString选择自动快照策略ID。云盘会按照快照策略自动备份。
EncryptedBoolean是否对数据盘加密。取值:
  • true:对数据盘加密。
  • false(默认值):不对数据盘加密。
SizeInteger数据盘大小。单位:GiB。

取值范围:40~32768。

默认值:120。
CategoryString数据盘类型。取值:
  • cloud:普通云盘。
  • cloud_efficiency(默认值):高效云盘。
  • cloud_ssd:SSD云盘。
  • cloud_essd:ESSD云盘。
PerformanceLevelString节点数据盘磁盘性能等级。仅对ESSD磁盘生效,磁盘性能等级和磁盘大小有关。

更多信息,请参见ESSD云盘

KubernetesConfig语法

"KubernetesConfig": {
  "Runtime": String,
  "RuntimeVersion": String,
  "CpuPolicy": String,
  "Labels": List,
  "NodeNameMode": String,
  "Taints": List
}

KubernetesConfig属性

属性名称类型必须允许更新描述约束
RuntimeString容器运行时。
RuntimeVersionString容器运行时版本。
CpuPolicyString节点CPU管理策略。当集群版本在1.12.6及以上时支持以下两种策略:
  • static:允许为节点上具有某些资源特征Pod增强其CPU亲和性和独占性。
  • none(默认值):表示启用现有的默认CPU亲和性方案。
LabelsList节点标签。为Kubernetes集群节点添加标签。

更多信息,请参见Labels属性

NodeNameModeString自定义节点名。节点名称由三部分组成:前缀+节点IP地址子串+后缀。
  • 前缀和后缀均可由半角句号(.)分隔的一个或多个部分组成,每个部分可以使用小写英文字母、数字和短划线(-),节点名称首尾必须为小写英文字母和数字。
  • IP地址段长度指截取节点IP地址末尾的位数,取值范围为5~12。
TaintsList污点配置。更多信息,请参见Taints属性

Labels语法

"Labels": {
  "Value": String,
  "Key": String
}

Labels属性

属性名称类型必须允许更新描述约束
ValueString标签值。
KeyString标签键。

Taints语法

"Taints": [{
  "Value": String,
  "Effect": String,
  "Key": String
}]

Taints属性

属性名称类型必须允许更新描述约束
ValueString污点值。
EffectString调度策略。取值:
  • NoSchedule(默认值):不能容忍,但仅影响调度过程,已被调度的Pod不受影响,仅对新增加的Pod生效。
  • NoExecute:不能容忍,当污点变动时,Pod对象会被驱逐。
  • PreferNoSchedule:柔性约束,节点现存Pod不受影响。
KeyString污点名称。

NodePoolInfo语法

"NodePoolInfo": {
  "Name": String
}

NodePoolInfo属性

属性名称类型必须允许更新描述约束
NameString节点池名称。

Tags语法

"Tags": [
  {
    "Key": String,
    "Value": String
  }
]

Tags属性

属性名称类型必须允许更新描述约束
KeyString标签键。长度为1~64个字符,不能以aliyunacs:https://http://开头。
ValueString标签值。长度为0~128个字符,不能以aliyunacs:https://http://开头。

MasterDataDisks语法

"MasterDataDisks": [
  {
    "Category": String,
    "Size": Number
  }
]

MasterDataDisks属性

属性名称类型必须允许更新描述约束
CategoryStringMaster节点数据盘类型。取值:
  • cloud:普通云盘。
  • cloud_ssd:SSD云盘。
  • cloud_efficiency(默认值):高效云盘。
  • cloud_essd:ESSD云盘。
SizeNumberMaster节点数据盘大小。取值范围:40~32,768。

单位:GiB。

WorkerDataDisks语法

"WorkerDataDisks": [
  {
    "Category": String,
    "Size": Number
  }
]

WorkerDataDisks属性

属性名称类型必须允许更新描述约束
CategoryStringWorker节点数据盘类型。取值:
  • cloud:普通云盘。
  • cloud_ssd:SSD云盘。
  • cloud_efficiency(默认值):高效云盘。
  • cloud_essd:ESSD云盘。
SizeNumber数据盘大小。取值范围:40~32,768。

单位:GiB。

Addons语法

"Addons": [
  {
    "Disabled": Boolean,
    "Config": String,
    "Name": String
  }
]

Addons属性

属性名称类型必须允许更新描述约束
DisabledBoolean是否禁止默认安装。取值:
  • true:禁止。
  • false:允许。
ConfigString插件的配置。
NameString插件的名称。

Runtime语法

"Runtime": {
    "Name": String,
    "Version": String
  }

Runtime属性

属性名称类型必须允许更新描述约束
NameString容器运行时名称。取值:
  • containerd
  • docker(默认值)
  • Sandboxed-Container.runv
VersionString容器运行时版本。取值:
  • Name取值为containerd时:1.4.4。
  • Name取值为docker时:19.03.5。
  • Name取值为Sandboxed-Container.runv时:3.4.1。

返回值

Fn::GetAtt

  • ClusterId:集群ID。
  • TaskId:任务ID。系统自动分配,用户查询任务状态。
  • WorkerRamRoleName:Worker节点RAM角色名称。
  • ScalingGroupId:伸缩组ID。
  • DefaultUserKubeConfig:用户默认的Kubernetes配置,用于配置集群凭据。
  • Nodes:集群节点列表。
  • ScalingRuleId:伸缩规则ID。
  • PrivateUserKubConfig:用户专有的Kubernetes配置,用于配置集群凭据。
  • ScalingConfigurationId:伸缩配置ID。
  • APIServerSLBId:API服务器负载均衡ID。

示例

  • YAML格式

    ROSTemplateFormatVersion: '2015-09-01'
    Description: Test Create KubernetesCluster
    Parameters:
      SystemDiskCategory:
        Type: String
        Description: Category of system disk. Default is cloud_efficiency. support cloud|cloud_efficiency|cloud_ssd|cloud_essd|ephemeral_ssd.Old instances will not be changed.
        AllowedValues:
          - cloud
          - cloud_efficiency
          - cloud_ssd
          - cloud_essd
          - ephemeral_ssd
        Default: cloud_essd
      LoginPassword:
        Type: String
        Default: Text****
    Resources:
      Vpc:
        Type: ALIYUN::ECS::VPC
        Properties:
          VpcName: mytest
          CidrBlock: 192.168.XX.XX/16
      VSwitch1:
        Type: ALIYUN::ECS::VSwitch
        Properties:
          VSwitchName: mytest
          VpcId:
            Ref: Vpc
          ZoneId:
            Fn::Select:
              - '0'
              - Fn::GetAZs:
                  Ref: ALIYUN::Region
          CidrBlock: 192.168.XX.XX/24
      VSwitch2:
        Type: ALIYUN::ECS::VSwitch
        Properties:
          VSwitchName: mytest
          VpcId:
            Ref: Vpc
          ZoneId:
            Fn::Select:
              - '0'
              - Fn::GetAZs:
                  Ref: ALIYUN::Region
          CidrBlock: 192.168.XX.XX/24
      VSwitch3:
        Type: ALIYUN::ECS::VSwitch
        Properties:
          VSwitchName: mytest
          VpcId:
            Ref: Vpc
          ZoneId:
            Fn::Select:
              - '0'
              - Fn::GetAZs:
                  Ref: ALIYUN::Region
          CidrBlock: 192.168.XX.XX/24
      KubernetesCluster:
        Type: ALIYUN::CS::KubernetesCluster
        Properties:
          MasterInstanceTypes:
            - ecs.g6e.large
            - ecs.g6e.large
            - ecs.g6e.large
          MasterSystemDiskCategory:
            Ref: SystemDiskCategory
          WorkerSystemDiskCategory:
            Ref: SystemDiskCategory
          WorkerVSwitchIds:
            - Ref: VSwitch1
          VpcId:
            Ref: Vpc
          WorkerInstanceTypes:
            - ecs.g6e.large
          Name: TestKubernetesCluster
          MasterVSwitchIds:
            - Ref: VSwitch1
            - Ref: VSwitch2
            - Ref: VSwitch3
          LoginPassword:
            Ref: LoginPassword
    Outputs:
      ClusterId:
        Value:
          Fn::GetAtt:
            - KubernetesCluster
            - ClusterId
      TaskId:
        Value:
          Fn::GetAtt:
            - KubernetesCluster
            - TaskId
  • JSON格式

    {
      "ROSTemplateFormatVersion": "2015-09-01",
      "Description": "Test Create KubernetesCluster",
      "Parameters": {
        "SystemDiskCategory": {
          "Type": "String",
          "Description": "Category of system disk. Default is cloud_efficiency. support cloud|cloud_efficiency|cloud_ssd|cloud_essd|ephemeral_ssd.Old instances will not be changed.",
          "AllowedValues": [
            "cloud",
            "cloud_efficiency",
            "cloud_ssd",
            "cloud_essd",
            "ephemeral_ssd"
          ],
          "Default": "cloud_essd"
        },
        "LoginPassword": {
          "Type": "String",
          "Default": "Text****"
        }
      },
      "Resources": {
        "Vpc": {
          "Type": "ALIYUN::ECS::VPC",
          "Properties": {
            "VpcName": "mytest",
            "CidrBlock": "192.168.XX.XX/16"
          }
        },
        "VSwitch1": {
          "Type": "ALIYUN::ECS::VSwitch",
          "Properties": {
            "VSwitchName": "mytest",
            "VpcId": {
              "Ref": "Vpc"
            },
            "ZoneId": {
              "Fn::Select": [
                "0",
                {
                  "Fn::GetAZs": {
                    "Ref": "ALIYUN::Region"
                  }
                }
              ]
            },
            "CidrBlock": "192.168.XX.XX/24"
          }
        },
        "VSwitch2": {
          "Type": "ALIYUN::ECS::VSwitch",
          "Properties": {
            "VSwitchName": "mytest",
            "VpcId": {
              "Ref": "Vpc"
            },
            "ZoneId": {
              "Fn::Select": [
                "0",
                {
                  "Fn::GetAZs": {
                    "Ref": "ALIYUN::Region"
                  }
                }
              ]
            },
            "CidrBlock": "192.168.XX.XX/24"
          }
        },
        "VSwitch3": {
          "Type": "ALIYUN::ECS::VSwitch",
          "Properties": {
            "VSwitchName": "mytest",
            "VpcId": {
              "Ref": "Vpc"
            },
            "ZoneId": {
              "Fn::Select": [
                "0",
                {
                  "Fn::GetAZs": {
                    "Ref": "ALIYUN::Region"
                  }
                }
              ]
            },
            "CidrBlock": "192.168.XX.XX/24"
          }
        },
        "KubernetesCluster": {
          "Type": "ALIYUN::CS::KubernetesCluster",
          "Properties": {
            "MasterInstanceTypes": [
              "ecs.g6e.large",
              "ecs.g6e.large",
              "ecs.g6e.large"
            ],
            "MasterSystemDiskCategory": {
              "Ref": "SystemDiskCategory"
            },
            "WorkerSystemDiskCategory": {
              "Ref": "SystemDiskCategory"
            },
            "WorkerVSwitchIds": [
              {
                "Ref": "VSwitch1"
              }
            ],
            "VpcId": {
              "Ref": "Vpc"
            },
            "WorkerInstanceTypes": [
              "ecs.g6e.large"
            ],
            "Name": "TestKubernetesCluster",
            "MasterVSwitchIds": [
              {
                "Ref": "VSwitch1"
              },
              {
                "Ref": "VSwitch2"
              },
              {
                "Ref": "VSwitch3"
              }
            ],
            "LoginPassword": {
              "Ref": "LoginPassword"
            }
          }
        }
      },
      "Outputs": {
        "ClusterId": {
          "Value": {
            "Fn::GetAtt": [
              "KubernetesCluster",
              "ClusterId"
            ]
          }
        },
        "TaskId": {
          "Value": {
            "Fn::GetAtt": [
              "KubernetesCluster",
              "TaskId"
            ]
          }
        }
      }
    }

更多示例,请参见:JSON示例YAML示例