ALIYUN::CS::ManagedKubernetesCluster is used to create an ACK managed cluster.
Syntax
{
"Type": "ALIYUN::CS::ManagedKubernetesCluster",
"Properties": {
"CloudMonitorFlags": Boolean,
"ProxyMode": String,
"WorkerDataDisk": Boolean,
"SnatEntry": Boolean,
"VSwitchIds": List,
"WorkerSystemDiskCategory": String,
"VpcId": String,
"Tags": List,
"WorkerSystemDiskSize": Number,
"WorkerInstanceTypes": List,
"WorkerDataDisks": List,
"LoginPassword": String,
"ContainerCidr": String,
"NumOfNodes": Number,
"Name": String,
"Taint": List,
"KeyPair": String,
"Addons": List,
"DisableRollback": Boolean,
"ServiceCidr": String,
"KubernetesVersion": String,
"SecurityGroupId": String,
"EndpointPublicAccess": Boolean,
"ClusterSpec": String,
"TimeoutMins": Number,
"PodVswitchIds": List,
"EncryptionProviderKey": String,
"Runtime": Map,
"SocEnabled": Boolean,
"UserData": String,
"CisEnabled": Boolean,
"OsType": String,
"IsEnterpriseSecurityGroup": Boolean,
"Platform": String,
"AutoRenewPeriod": Number,
"LoadBalancerSpec": String,
"AutoRenew": Boolean,
"ChargeType": String,
"FormatDisk": Boolean,
"Period": Number,
"NodeCidrMask": String,
"PeriodUnit": String,
"KeepInstanceName": Boolean,
"DeletionProtection": Boolean
}
}
Properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
CloudMonitorFlags | Boolean | No | No | Specifies whether to install CloudMonitor agents. | Default value: false. Valid values:
|
Runtime | Map | No | No | The container runtime. | The Runtime property consists of the following fields:
Example: For more information about how to select a container runtime, see Comparison of Docker, containerd, and Sandboxed-Container.
For more information about the Runtime property, see Runtime properties. |
ProxyMode | String | No | No | The kube-proxy mode. | Default value: iptables. Valid values:
|
SnatEntry | Boolean | No | No | Specifies whether to configure SNAT rules for the virtual private cloud (VPC). | Valid values:
|
WorkerSystemDiskCategory | String | No | No | The category of the system disk that you attach to the worker node. | Default value: cloud_efficiency. Valid values:
|
VpcId | String | Yes | No | The ID of the VPC. | If you do not specify this property, the system automatically creates a VPC whose
CIDR block is 192.168.0.0/16.
You must specify the VpcId and VSwitchIds properties or leave both properties empty. |
Tags | List | No | Yes | The tags of the cluster. | You can specify up to 20 tags.
For more information, see Tags properties. |
WorkerInstanceTypes | List | Yes | No | The Elastic Compute Service (ECS) instance types of worker nodes. | For more information, see Instance family. |
WorkerDataDisks | List | No | No | The configurations of the data disks that you attach to worker nodes. The configurations include disk categories and disk sizes. | This property takes effect only when you attach data disks to worker nodes.
For more information, see WorkerDataDisks properties. |
LoginPassword | String | No | No | The password for SSH logon. | The password must be 8 to 30 characters in length, and must contain letters, digits,
and special characters. The following special characters are supported: ( ) ' ~ ! @ # $ % ^ & ∗ - + = | { } [ ] : ; < > , . ? / _ .
You must specify the LoginPassword or KeyPair property. |
ContainerCidr | String | No | No | The CIDR block of the container. | The CIDR block of the container cannot overlap with the CIDR block of the VPC. If you use the VPC that is automatically created by the system, the CIDR block 172.16.0.0/16 is used by default. |
NumOfNodes | Number | No | No | The number of worker nodes. | Valid values: 0 to 300.
Default value: 3. |
Name | String | Yes | No | The name of the cluster. | The name must be 1 to 63 characters in length, and can contain letters, digits, and hyphens (-). |
WorkerSystemDiskSize | Number | No | No | The size of the system disk that you attach to the worker node. | Default value: 120.
Unit: GiB. |
Taint | List | No | No | The taints that you add to nodes to ensure that pods are appropriately scheduled. | If you apply tolerations to pods, the pods can be scheduled to nodes that have matching taints. |
WorkerDataDisk | Boolean | No | No | Specifies whether to attach a data disk to the worker node. | Default value: false. Valid values:
|
Addons | List | No | No | The components that you use for the cluster. | Valid values:
|
DisableRollback | Boolean | No | No | Specifies whether to roll back the resources when the cluster fails to be created. | Default value: true. Valid values:
|
ServiceCidr | String | No | No | The CIDR block of the Container Service for Kubernetes (ACK) service. | The CIDR block of the service cannot overlap with the CIDR block of the VPC or the CIDR block of the container. If you use the VPC that is automatically created by the system, the CIDR block 172.19.0.0/20 is used by default. |
KubernetesVersion | String | No | No | The Kubernetes version of the cluster. ACK supports all open source Kubernetes versions. We recommend that you use the latest version. | You can create clusters of the latest two versions. For more information about Kubernetes versions that are supported by ACK, see Overview of Kubernetes versions supported by ACK. |
SecurityGroupId | String | No | No | The ID of the security group to which the ECS instances in the cluster belong. | None. |
KeyPair | String | No | No | The name of the key pair. | You must specify the LoginPassword or KeyPair property. |
EndpointPublicAccess | Boolean | No | No | Specifies whether to allow the cluster to access the API server over the Internet. | Default value: false. Valid values:
|
ClusterSpec | String | No | No | The type of the ACK managed cluster. | Default value: ack.standard. Valid values:
|
TimeoutMins | Number | No | No | The timeout period during which you can create the cluster. | Default value: 60.
Unit: minutes. |
PodVswitchIds | List | No | No | The IDs of pod vSwitches. | For each vSwitch that you allocate to a node, you must specify at least one pod vSwitch
in the same zone as the node vSwitch. The pod vSwitch cannot overlap with the node
vSwitch.
We recommend that you use the vSwitch of which the mask of the CIDR block is no greater than 19 bits in length. Note You must specify this property when you use the Terway component for the cluster.
|
EncryptionProviderKey | String | No | No | The ID of the key that is managed by Key Management Service (KMS). | The key is used to encrypt data disks. You can use KMS only for ACK Pro clusters. |
VSwitchIds | List | Yes | No | The vSwitch IDs of worker nodes. | You can specify one to three vSwitch IDs. |
SocEnabled | Boolean | No | No | Specifies whether to enable reinforcement based on classified protection. | Default value: false. Valid values:
|
UserData | String | No | No | The user data that you pass when you create the ECS instance. | The data must be 16 KB in size. You do not need to convert the data to Base64-encoded strings. If the user data contains special characters, you must add the escape character (\) before each special character. |
CisEnabled | Boolean | No | No | Specifies whether to enable Center for Internet Security (CIS) reinforcement. | Default value: false. Valid values:
|
OsType | String | No | No | The type of the OS. | Default value: Linux. Valid values:
|
IsEnterpriseSecurityGroup | Boolean | No | No | Specifies whether to create an advanced security group. | This parameter takes effect when you leave the SecurityGroupId property empty. Default
value: false. Valid values:
|
Platform | String | No | No | The distribution of the OS. | Default value: CentOS. Valid values:
|
AutoRenewPeriod | Number | No | No | The auto-renewal cycle of the cluster. | This property takes effect when you set the ChargeType property to PrePaid and the
AutoRenew property to true. Valid values:
Default value: 1. |
LoadBalancerSpec | String | No | No | The specification of the Server Load Balancer (SLB) instance. | Valid values:
|
AutoRenew | Boolean | No | No | Specifies whether to enable auto-renewal for the cluster. | This property takes effect when you set the ChargeType property to PrePaid. Default
value: true. Valid values:
|
ChargeType | String | No | No | The billing method of the cluster. | Default value: PostPaid. Valid values:
|
FormatDisk | Boolean | No | No | Specifies whether to attach the data disk to a node that is created based on an existing ECS instance. | Default value: false. Valid values:
|
Period | Number | No | No | The subscription duration of the cluster that you purchase. | This parameter takes effect and is required when you set the ChargeType property to
PrePaid. Valid values:
|
NodeCidrMask | String | No | No | The maximum number of IP addresses that are assigned to nodes. | The value varies based on the CIDR block that you specify for pods. This parameter
takes effect only when you use the Flannel component for the cluster.
Default value: 25. |
PeriodUnit | String | No | No | The unit of the subscription duration of the cluster that you purchase. | This property takes effect when you set the ChargeType property to PrePaid. Default
value: Month. Valid values:
|
KeepInstanceName | Boolean | No | No | Specifies whether to retain the name of the existing ECS instance that is used in the cluster. | Default value: true. Valid values:
|
DeletionProtection | Boolean | No | No | Specifies whether to enable deletion protection. | After you enable deletion protection, you cannot delete the cluster by using the ACK
console or by calling the ACK API. Default value: false. Valid values:
|
Tags syntax
"Tags": [
{
"Key": String,
"Value": String
}
]
Tags properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
Key | String | Yes | No | The key of the tag. | The key must be 1 to 64 characters in length. The key cannot start with aliyun , acs: , https:// , or http:// .
|
Value | String | No | No | The value of the tag. | The value must be 0 to 128 characters in length. The value cannot start with aliyun , acs: , http:// , or https:// .
|
WorkerDataDisks syntax
"WorkerDataDisks": [
{
"Category": String,
"Size": Number
}
]
WorkerDataDisks properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
Category | String | Yes | No | The category of the data disk that you attach to the worker node. | Default value: cloud_efficiency. Valid values:
|
Size | Number | Yes | No | The size of the data disk. | Valid values: 40 to 32768.
Unit: GiB. |
Addons syntax
"Addons": [
{
"Version": String,
"Config": String,
"Name": String,
"Disabled": Boolean
}
]
Addons properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
Version | String | No | No | The version of the component. | By default, the latest version is used. |
Config | String | No | No | The configurations of the component. | None. |
Name | String | Yes | No | The name of the component. | None. |
Disabled | Boolean | No | No | Specifies whether to disable automatic installation for the component. | Default value: true. Valid values:
|
Runtime syntax
"Runtime": {
"Name": String,
"Version": String
}
Runtime properties
Property | Type | Required | Editable | Description | Constraint |
---|---|---|---|---|---|
Name | String | Yes | No | The name of the container runtime. | Default value: docker. Valid values:
|
Version | String | No | No | The version of the container runtime. | Valid values:
|
Return values
- ClusterId: the ID of the cluster.
- TaskId: the ID of the task. The task ID is automatically assigned by the system and can be used to query the status of the task.
- WorkerRamRoleName: the name of the RAM role for the worker node.
- DefaultUserKubeConfig: the default configurations of user credentials for the cluster.
- ScalingRuleId: the ID of the scaling rule.
- ScalingGroupId: the ID of the scaling group.
- PrivateUserKubConfig: the private configurations of user credentials for the cluster.
- ScalingConfigurationId: the ID of the scaling configuration.
- Nodes: the nodes in the cluster.
- APIServerSLBId: the ID of the SLB instance that is used by the API server.
Examples
JSON
format
{
"ROSTemplateFormatVersion": "2015-09-01",
"Description": "Test Create ManagedKubernetesCluster",
"Parameters": {
"WorkerInstanceTypes": {
"Type": "Json",
"Default": [
"ecs.c5.large"
]
},
"WorkerSystemDiskCategory": {
"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": "Admin123"
},
"Name": {
"Type": "String",
"Default": "mytest"
}
},
"Resources": {
"Vpc": {
"Type": "ALIYUN::ECS::VPC",
"Properties": {
"VpcName": "mytest",
"CidrBlock": "192.168.0.0/16"
}
},
"VSwitch": {
"Type": "ALIYUN::ECS::VSwitch",
"Properties": {
"VSwitchName": "mytest",
"VpcId": {
"Ref": "Vpc"
},
"ZoneId": {
"Fn::Select": [
"0",
{
"Fn::GetAZs": {
"Ref": "ALIYUN::Region"
}
}
]
},
"CidrBlock": "192.168.1.0/24"
}
},
"ManagedKubernetesCluster": {
"Type": "ALIYUN::CS::ManagedKubernetesCluster",
"Properties": {
"VSwitchIds": [
{
"Ref": "VSwitch"
}
],
"VpcId": {
"Ref": "Vpc"
},
"ClusterSpec": "ack.pro.small",
"WorkerInstanceTypes": {
"Ref": "WorkerInstanceTypes"
},
"WorkerSystemDiskCategory": {
"Ref": "WorkerSystemDiskCategory"
},
"LoginPassword": {
"Ref": "LoginPassword"
},
"Name": {
"Ref": "Name"
}
}
}
},
"Outputs": {
"ClusterId": {
"Value": {
"Fn::GetAtt": [
"ManagedKubernetesCluster",
"ClusterId"
]
}
},
"TaskId": {
"Value": {
"Fn::GetAtt": [
"ManagedKubernetesCluster",
"TaskId"
]
}
}
}
}
To view more examples, visit ManagedKubernetesCluster.json and ManagedKubernetesCluster.yml.