You can call the CreateCluster operation to create an Container Service for Kubernetes (ACK) edge cluster.
Debugging
Request syntax
POST /clusters HTTP/1.1
Content-Type:application/json
{
"name" : "String",
"cluster_type" : "String",
"disable_rollback" : Boolean,
"timeout_mins" : Long,
"kubernetes_version" : "String",
"runtime" : {
"name" : "String",
"version" : "String"
},
"region_id" : "String",
"key_pair" : "String",
"login_password" : "String",
"num_of_nodes" : Long,
"profile" : "String",
"logging_type" : "String",
"snat_entry" : Boolean,
"vswitch_ids" : [ "String" ],
"worker_system_disk_category" : "String",
"worker_system_disk_size" : Long,
"container_cidr" : "String",
"cloud_monitor_flags" : Boolean,
"endpoint_public_access" : Boolean,
"service_cidr" : "String",
"addons" : [ {
"name" : "String",
"config" : "String",
"disabled" : Boolean
} ],
"tags" : [ {
"key" : "String",
"value" : "String"
} ],
"vpcid" : "String",
"worker_data_disks" : [ {
"category" : "String",
"size" : Long,
"encrypted" : "String",
"auto_snapshot_policy_id" : "String"
} ],
"deletion_protection" : Boolean,
"node_cidr_mask" : "String",
"worker_instance_types" : [ "String" ],
"worker_instance_charge_type" : "String",
"security_group_id" : "String",
"is_enterprise_security_group" : Boolean,
"rds_instances" : [ "String" ]
}
Request parameters
Parameter | Type | Required | Example | Description |
name | String | Yes | demo-edge-cluster | The name of the cluster. The name must be 1 to 63 characters in length, and can contain digits, letters, and hyphens (-). It cannot start with a hyphen (-). |
cluster_type | String | Yes | ManagedKubernetes | The type of the cluster. Set the value to |
disable_rollback | Boolean | No | true | Specifies whether to perform a rollback if the cluster fails to be created. Valid values:
Default value: |
timeout_mins | Long | No | 60 | The timeout period in minutes during which a resource must be created. Default value: 60. |
kubernetes_version | String | No | 1.16.9-aliyun.1 | The Kubernetes version of the cluster. ACK supports all open source Kubernetes versions. We recommend that you specify the latest Kubernetes version. If you do not set this parameter, the latest Kubernetes version is used. You can create clusters of the latest two Kubernetes versions in the ACK console. You can create clusters of earlier Kubernetes versions by calling API operations. For more information about the Kubernetes versions that are supported by ACK, see Overview of Kubernetes versions supported by ACK. |
runtime | Runtime | No | {"name": "docker", "version": "19.03.15"} | The container runtime that you want to use. The This parameter specifies the following information:
|
region_id | String | Yes | cn-beijing | The ID of the region in which you want to deploy the cluster. |
key_pair | String | Yes | demo-key | The name of the key pair. You must set this parameter or the |
login_password | String | Yes | HelloWorld123 | The password for SSH logon. You must set this parameter or the |
num_of_nodes | Long | Yes | 1 | The number of worker nodes. Valid values: 0 to 100. |
profile | String | Yes | Edge | Specifies whether the cluster is an ACK Edge cluster. Default value: Edge. |
logging_type | String | No | SLS | Specifies whether to enable Log Service for the cluster. Set the value to |
snat_entry | Boolean | No | true | Specifies whether to configure SNAT rules for the virtual private cloud (VPC) in which you want to deploy the cluster.
If your applications deployed in the cluster need to access the Internet, we recommend that you set the value to Default value: |
vswitch_ids | Array of String | Yes | vsw-2ze48rkq464rsdts1**** | The IDs of vSwitches. You can specify one to three vSwitches. |
worker_system_disk_category | String | Yes | cloud_efficiency | The type of system disk that you want to use for the worker nodes. Valid values:
Default value: |
worker_system_disk_size | Long | Yes | 100 | The size of the system disk that you want to use for worker nodes. Unit: GiB. Valid values: 40 to 500 The value of this parameter must be equal to or larger than the larger value between 40 and the size of the OS image. Default value: |
container_cidr | String | Yes | 172.20.0.0 | The CIDR block of pods. This CIDR block cannot overlap with the CIDR block of the VPC in which you want to deploy the cluster. If the VPC is automatically created by the system, the default CIDR block of pods is 172.16.0.0/16. Note This parameter is required if the cluster uses Flannel as the network plug-in. |
cloud_monitor_flags | Boolean | No | true | Specifies whether to install the CloudMonitor agent. Valid values:
Default value: |
endpoint_public_access | Boolean | No | true | Specifies whether to enable Internet access for the API server. Valid values:
Default value: Important Edge nodes interact with the control plane in the cloud over the Internet. Therefore, you must enable Internet access for the API server when you create an ACK Edge cluster. |
service_cidr | String | Yes | 172.21.0.0 | The CIDR block of Services. This CIDR block cannot overlap with the CIDR block of pods or the CIDR block of the VPC in which you want to deploy the cluster. If the VPC is automatically created by the system, the default CIDR block of Services is 172.19.0.0/20. |
addons | Array of addon | No | [{"name":"flannel","config":""},{"name":"logtail-ds-docker","config":""},{"name":"alibaba-log-controller","config":"{"IngressDashboardEnabled":"false"}"}] | The components that you want to install in the cluster. Parameter description:
Network plug-in: required. The Flannel and Terway plug-ins are supported. Select one of the plug-ins for the cluster.
Volume plug-in: optional. The Specify the Log Service component: optional. Note If Log Service is disabled, you cannot use the cluster auditing feature.
Ingress controller: optional. By default, the nginx-ingress-controller component is installed in ACK dedicated clusters.
Event center: The event center feature is optional. By default, the event center feature is enabled. You can use Kubernetes event centers to store and query events, and configure alerts. You can use the Logstores that are associated with Kubernetes event centers for free within 90 days. For more information, see Create and use an event center. To enable the Kubernetes event center, specify the component in the following format: [{"name":"ack-node-problem-detector","config":"{\"sls_project_name\":\" your_sls_project_name\"}"}]. |
tags | Array of tag | No | [{"key": "env", "value": "prod"}] | The labels that you want to add to the cluster.
|
vpcid | String | Yes | vpc-2zeik9h3ahvv2zz95**** | The VPC in which you want to deploy the cluster. You must specify a VPC when you create the cluster. Note Leave both |
worker_data_disks | Array of data_disk | No | The configurations of the data disks that you want to mount to worker nodes. The configurations include the disk type and disk size. | |
deletion_protection | Boolean | No | true | Specifies whether to enable deletion protection for the cluster. If deletion protection is enabled, the cluster cannot be deleted in the ACK console or by calling API operations. Valid values:
Default value: |
node_cidr_mask | String | No | 25 | The maximum number of IP addresses that can be assigned to nodes. This number is determined by the node CIDR block. This parameter takes effect only if the cluster uses Flannel as the network plug-in. Default value: |
worker_instance_types | Array of String | Yes | ecs.n4.large | The instance types of worker nodes. You must specify at least one instance type. For more information, see Overview of instance families. Note The instance types are listed in descending order of priority. If the system fails to create worker nodes based on the instance type of the highest priority, the system attempts to create worker nodes by using the instance type of the next highest priority. |
worker_instance_charge_type | String | Yes | PrePaid | The billing method of worker nodes. Valid values:
Default value: PostPaid |
security_group_id | String | No | sg-bp1bdue0qc1g7k**** | The ID of the existing security group that you want to use for the cluster. You must set this parameter or the |
is_enterprise_security_group | Boolean | No | true | Specifies whether to create an advanced security group. This parameter takes effect only if you leave the Note To use a basic security group, make sure that the sum of the number of nodes in the cluster and the number of pods that use Terway does not exceed 2,000. Therefore, we recommend that you specify an advanced security group for a cluster that uses Terway as the network plug-in.
Default value: |
rds_instances | rds_instances | No | rm-2zev748xi27xc**** | The names of the ApsaraDB RDS instances. |
cluster_spec | String | No | ack.pro.small | The type of ACK managed cluster. Valid values:
Default valid: For more information, see Introduction to professional edge Kubernetes clusters. |
resource_group_id | String | No | rg-acfm3mkrure**** | The ID of the resource group to which the cluster belongs. You can use this parameter to isolate different clusters. |
Response syntax
HTTP/1.1 200
Content-Type:application/json
{
"cluster_id" : "String",
"request_id" : "String",
"task_id" : "String"
}
Response parameters
Parameter | Type | Example | Description |
cluster_id | String | cb95aa626a47740afbf6aa099b650**** | The ID of the cluster. |
request_id | String | 687C5BAA-D103-4993-884B-C35E4314A1E1 | The ID of the request. |
task_id | String | T-5a54309c80282e39ea00002f | The ID of the task. |
Examples
Sample requests
POST /clusters
<Common request headers>
{
"name":"ACK edge cluster",
"cluster_type":"ManagedKubernetes",
"disable_rollback":true,
"timeout_mins":60,
"kubernetes_version":"1.14.8-aliyunedge.1",
"region_id":"cn-zhangjiakou",
"snat_entry":true,
"cloud_monitor_flags":true,
"endpoint_public_access":true,
"deletion_protection":true,
"node_cidr_mask":"25",
"tags":[
{
"key":"tag-k",
"value":"tag-v"
}
],
"addons":[
{
"name":"logtail-ds-docker"
},
{
"name":"alibaba-log-controller",
"config":"{\"IngressDashboardEnabled\":\"false\"}"
},
{
"name":"flannel"
},
{
"name":"alicloud-monitor-controller"
}
],
"profile":"Edge", // Specifies that the cluster is an ACK edge cluster.
"logging_type" : "SLS",
"worker_instance_types":[
"ecs.hfc6.large"
],
"runtime":{ // The configuration of the container runtime.
"name":"docker", // The name of the container runtime.
"version":"19.03.15" // The version of the container runtime.
},
"num_of_nodes":1,
"worker_system_disk_category":"cloud_ssd",
"worker_system_disk_size":40,
"worker_data_disks":[
{
"category":"cloud_efficiency",
"size":"40",
"encrypted":"false",
"auto_snapshot_policy_id":"",
}
],
"worker_instance_charge_type":"PostPaid",
"vpcid":"vpc-8vb435kr467tnfj42****",
"container_cidr":"172.20.0.0/16",
"service_cidr":"172.21.0.0/20",
"vswitch_ids":[
"vsw-8vbhdhn461i65p32g****"
],
"login_password":"Hello1234",
"key_pair": "sin-name",
"security_group_id":"sg-8vb7grbyvlb10j0i****",
"is_enterprise_security_group":true,
"rds_instances": ["rm-xx","rm-xx"]
}
Sample success responses
XML
format
<cluster_id>cb95aa626a47740afbf6aa099b650****</cluster_id>
<task_id>T-5a54309c80282e39ea00002f</task_id>
<request_id>687C5BAA-D103-4993-884B-C35E4314A1E1</request_id>
JSON
format
{
"cluster_id": "cb95aa626a47740afbf6aa099b650****",
"task_id": "T-5a54309c80282e39ea00002f",
"request_id": "687C5BAA-D103-4993-884B-C35E4314A1E1"
}
Error codes
For a list of error codes, visit the Error Center.