ALIYUN::CS::ManagedKubernetesCluster is used to create a Container Service for Kubernetes (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,
"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,
"ZoneIds": List,
"ResourceGroupId": String,
"NodePools": List,
"NodeNameMode": String
}
}
Properties
Property | Type | Required | Editable | Description | Constraint |
CloudMonitorFlags | Boolean | No | No | Specifies whether to install CloudMonitor agents. | 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. | Valid values:
|
SnatEntry | Boolean | No | No | Specifies whether to configure SNAT rules for the virtual private cloud (VPC) in which you want to deploy the cluster. |
|
WorkerSystemDiskCategory | String | No | No | The system disk category of worker nodes. | Valid values:
|
VpcId | String | Yes | No | The VPC ID. | 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 |
Tags | List | No | Yes | The tags of the cluster. | You can specify up to 20 tags. For more information, see Tags properties. |
WorkerInstanceTypes | List | No | Yes | The Elastic Compute Service (ECS) instance types of worker nodes. | For more information, see Overview of instance families. |
WorkerDataDisks | List | No | Yes | The configurations of the data disks that you want to attach to worker nodes. The configurations include disk categories and disk sizes. | This property takes effect only if 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. Special characters include Note You can specify only one of the LoginPassword and KeyPair properties. |
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. |
ZoneIds | List | No | No | The IDs of the zones to which the vSwitches of worker nodes belong. | None. |
ResourceGroupId | String | No | Yes | The ID of the resource group to which the cluster belongs. | None. |
NumOfNodes | Number | No | Yes | The number of worker nodes. | Valid values: 0 to 300. Default value: 3. |
Name | String | Yes | No | The cluster name. | The name must be 1 to 63 characters in length, and can contain letters, digits, and hyphens (-). |
WorkerSystemDiskSize | Number | No | No | The system disk size of worker nodes. | 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 data disks to worker nodes. | Valid values:
|
Addons | List | No | No | The add-on components that you want to use for the cluster. | Valid values:
For more information, see Addons properties. |
DisableRollback | Boolean | No | No | Specifies whether to perform a rollback if the cluster fails to be created. | Valid values:
|
ServiceCidr | String | No | No | The CIDR block of the ACK service. | The CIDR block of the ACK service cannot overlap with the CIDR block of the VPC or 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 two latest versions. For more information about the Kubernetes versions 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 can specify the LoginPassword or KeyPair property. |
EndpointPublicAccess | Boolean | No | No | Specifies whether to allow the cluster to access the API server over the Internet. | Valid values:
|
ClusterSpec | String | No | No | The type of the ACK managed cluster. | Valid values:
|
TimeoutMins | Number | No | No | The timeout period that is allowed to 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 that is deployed in the same zone as the node vSwitch. The pod vSwitch cannot overlap with the node vSwitch. We recommend that you use a vSwitch whose mask of the CIDR block is less than or equal to 19 bits in length. Note This property is required if 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. | Valid values:
|
UserData | String | No | No | The user data that you want to pass when you create ECS instances. | The data must be 16 KB in size. You do not need to convert the data into Base64-encoded strings. If the user data contains special characters, you must add an escape character (\) before each special character. |
OsType | String | No | No | The OS type | Valid values:
|
IsEnterpriseSecurityGroup | Boolean | No | No | Specifies whether to create an advanced security group. | This property takes effect when you leave the SecurityGroupId property empty. Valid values:
|
Platform | String | No | No | The release version of the OS. | Valid values:
|
AutoRenewPeriod | Number | No | No | The auto-renewal period. | This property takes effect when you set the ChargeType property to PrePaid and the AutoRenew property to true.
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. Valid values:
|
ChargeType | String | No | No | The billing method. | 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. | Valid values:
|
Period | Number | No | No | The subscription duration of the cluster. | This property takes effect when you set the ChargeType property to PrePaid.
Default value: 1. |
NodeCidrMask | String | No | No | The maximum number of IP addresses that can be assigned to nodes. | The value is determined by the CIDR block that you specify for pods. This property takes effect only if you install the Flannel component in the cluster. Default value: 25. |
PeriodUnit | String | No | No | The unit of the subscription duration. | This property takes effect when you set the ChargeType property to PrePaid. Valid values:
|
KeepInstanceName | Boolean | No | No | Specifies whether to retain the name of an existing ECS instance that is used in the cluster. | 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 calling specific ACK API operations. Valid values:
|
NodePools | List | No | No | The information about the node pools. | For more information, see NodePools properties. |
NodeNameMode | String | No | No | The custom name of the node. | A node name consists of a prefix, an IP address substring, and a suffix.
For example, if the node IP address is 192.168.XX.XX, the prefix is |
NodePools syntax
"NodePools": [
{
"ScalingGroup": Map,
"KubernetesConfig": Map,
"NodePoolInfo": Map,
"Count": Integer
}
]
NodePools properties
Property | Type | Required | Editable | Description | Constraint |
ScalingGroup | Map | Yes | No | The configurations of the scaling group that is used by the node pool. | For more information, see ScalingGroup properties. |
KubernetesConfig | Map | No | No | The configurations of the cluster. | For more information, see KubernetesConfig properties. |
NodePoolInfo | Map | No | No | The configurations of the node pool. | For more information, see NodePoolInfo property. |
Count | Integer | No | No | The number of nodes in the node pool. | None. |
ScalingGroup syntax
"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 properties
Property | Type | Required | Editable | Description | Constraint |
RdsInstances | List | No | No | The IDs of the ApsaraDB RDS instances. | None. |
IsEnterpriseSecurityGroup | Boolean | No | No | Specifies whether to automatically create an enterprise-class security group. | Valid values:
|
VSwitchIds | List | Yes | No | The IDs of the vSwitches. | None. |
InternetMaxBandwidthOut | Integer | No | No | The maximum outbound bandwidth of the public IP address of the node. | Unit: Mbit/s. Valid values: 1 to 100. |
DataDisks | List | No | No | The configurations of the data disks that are attached to the nodes in the node pool. | For more information, see DataDisks properties. |
Period | Integer | No | No | The subscription duration of the nodes in the node pool. | This property takes effect only when you set the InternetChargeType property to PrePaid. Valid values if the PeriodUnit property is set to Month: 1, 2, 3, 6, and 12. Default value: 1. |
InternetChargeType | String | No | No | The billing method of the nodes in the node pool. | Valid values:
|
KeyPair | String | No | No | The name of the key pair that is used for password-free logon. | You can specify the KeyPair or LoginPassword property. |
SystemDiskPerformanceLevel | String | No | No | The performance level (PL) of the system disks for nodes. | This property takes effect only for ESSDs. |
ImageId | String | No | No | The ID of the custom image. | By default, the image that is provided by ACK is used. |
Platform | String | No | No | The OS distribution. | Valid values:
|
InstanceTypes | List | Yes | No | The instance types. | None. |
SystemDiskCategory | String | No | No | The system disk category of the node. | Valid values:
|
PeriodUnit | String | No | No | The unit of the subscription duration of the nodes in the node pool. | This property is required if you set the InternetChargeType property to PrePaid. A value of Month indicates that the subscription duration is measured in months. |
LoginPassword | String | No | No | The password for SSH logon. | You can specify the KeyPair or LoginPassword property. The password must be 8 to 30 characters in length, and must contain uppercase letters, lowercase letters, digits, and special characters. |
InstanceChargeType | String | No | No | The billing method of the nodes in the node pool. | Valid values:
|
SystemDiskSize | Integer | Yes | No | The size of the system disk. | Unit: GiB. Valid values: 40 to 500. |
Tags | List | No | No | The tags of the ECS instances. | For more information, see Tags properties. |
ZoneIds | List | No | No | The zone IDs. | None. |
DataDisks syntax
"DataDisks": [
{
"AutoSnapshotPolicyId": String,
"Encrypted": Boolean,
"Size": Integer,
"Category": String,
"PerformanceLevel": String
}
]
DataDisks properties
Property | Type | Required | Editable | Description | Constraint |
AutoSnapshotPolicyId | String | No | No | The ID of the automatic snapshot policy. | The system automatically backs up cloud disks based on the specified automatic snapshot policy. |
Encrypted | Boolean | No | No | Specifies whether to encrypt the data disk. | Valid values:
|
Size | Integer | No | No | The size of the data disk. | Unit: GiB. Valid values: 40 to 32768. Default value: 120. |
Category | String | No | No | The category of the data disk. | Valid values:
|
PerformanceLevel | String | No | No | The PL of the data disks for nodes. | This property takes effect only for ESSDs. The PL of a data disk varies based on the disk size. For more information, see ESSDs. |
KubernetesConfig syntax
"KubernetesConfig": {
"Runtime": String,
"RuntimeVersion": String,
"CpuPolicy": String,
"Labels": List,
"NodeNameMode": String,
"Taints": List
}
KubernetesConfig properties
Property | Type | Required | Editable | Description | Constraint |
Runtime | String | Yes | No | The container runtime. | None. |
RuntimeVersion | String | Yes | No | The version of the container runtime. | None. |
CpuPolicy | String | No | No | The CPU management policy of the node. | Valid values if the Kubernetes version of the cluster is 1.12.6 or later:
|
Labels | List | No | No | The labels that you want to add to the nodes. | You can add labels to the nodes in the cluster. For more information, see the "Labels properties" section. |
NodeNameMode | String | No | No | The custom name of the node. | A node name consists of a prefix, an IP address substring, and a suffix.
For example, if the node IP address is 192.168.XX.XX, the prefix is |
Taints | List | No | No | The taints. | For more information, see Taints properties. |
Labels syntax
"Labels": {
"Value": String,
"Key": String
}
Labels properties
Property | Type | Required | Editable | Description | Constraint |
Value | String | Yes | No | The label value. | None. |
Key | String | Yes | No | The label key. | None. |
Taints syntax
"Taints": [{
"Value": String,
"Effect": String,
"Key": String
}]
Taints properties
Property | Type | Required | Editable | Description | Constraint |
Value | String | Yes | No | The taint value. | None. |
Effect | String | No | No | The scheduling policy of the taint. |
|
Key | String | Yes | No | The taint key. | None. |
NodePoolInfo syntax
"NodePoolInfo": {
"Name": String
}
NodePoolInfo property
Property | Type | Required | Editable | Description | Constraint |
Name | String | Yes | No | The name of the node pool. | None. |
Tags syntax
"Tags": [
{
"Key": String,
"Value": String
}
]
Tags properties
Property | Type | Required | Editable | Description | Constraint |
Key | String | Yes | No | The tag key. | The tag key must be 1 to 64 characters in length and cannot start with |
Value | String | Yes | No | The tag value. | The tag value can be up to 128 characters in length and cannot start with |
WorkerDataDisks syntax
"WorkerDataDisks": [
{
"Category": String,
"Size": Number
}
]
WorkerDataDisks properties
Property | Type | Required | Editable | Description | Constraint |
Category | String | Yes | Yes | The data disk category for worker nodes. | Valid values:
|
Size | Number | Yes | Yes | 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 addon plug-in. | By default, the latest version is used. |
Config | String | No | No | The configurations of the add-on plug-in. | None. |
Name | String | Yes | No | The name of the addon plug-in. | None. |
Disabled | Boolean | No | No | Specifies whether to disable automatic installation for the component. | 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. | Valid values:
|
Version | String | No | No | The version of the container runtime. |
|
Return values
Fn::GetAtt
ClusterId: the cluster ID.
TaskId: the task ID. 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 that is assumed by 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
For more examples, visit ManagedKubernetesCluster.json and ManagedKubernetesCluster.yml.