You can call the CreateCluster operation to create a 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
Table 1. Request body 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 (-). The name 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 when the cluster fails to be created. Valid values:
Default value: |
timeout_mins | Long | No | 60 | The timeout period during which a resource must be created. Unit: minutes. Default value: 60. |
kubernetes_version | String | No | 1.30.1-aliyun.1 | The Kubernetes version of the cluster. The Kubernetes versions supported by Container Service are the same as the Kubernetes versions supported by open source Kubernetes. 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 supported by ACK, see Support for Kubernetes versions. |
runtime | Array of runtime | No | {"name": " | The container runtime that you want to use. The This parameter specifies the following information:
|
region_id | String | Yes | cn-beijing | The region ID of the cluster. |
key_pair | String | Yes | demo-key | The name of the key pair. You must set this parameter or |
login_password | String | Yes | HelloWorld123 | The password for SSH logon. You must set this parameter or |
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 Simple 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 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 at least 40 and no less than the image size. Default value: |
container_cidr | String | No | 172.20.0.0 | The CIDR block of pods. This CIDR block cannot overlap with the CIDR block of the VPC in which the cluster is deployed. If the VPC is automatically created by the system, the default CIDR block of pods is 172.16.0.0/16. Important
|
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 In ACK Edge clusters, 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. Supported network plug-ins are Flannel and Terway. Select one of the plug-ins for the cluster.
Volume plug-in: optional. This parameter specifies the volume plug-in that you want to use. The Specify the Log Service component: optional. Note If Simple 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: optional. By default, the event center feature is enabled. You can use event centers to store and query events, and configure alert rules. You can use the Logstores that are associated with event centers for free within 90 days. For more information, see Create and use an event center. To enable the event center feature, 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 configuration of the data disk that is mounted to worker nodes. The configuration includes 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 each node. This number is determined by the specified pod CIDR block. This parameter takes effect only if the cluster uses the Flannel plug-in. Default value: |
worker_instance_types | Array of String | Yes | ecs.n4.large | The Elastic Compute Service (ECS) 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 with the instance type of the highest priority, the system attempts to create worker nodes with 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 |
is_enterprise_security_group | Boolean | No | true | Specifies whether to create an advanced security group. This parameter takes effect only if 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. If a cluster uses the Terway network plug-in, we recommend that you specify an advanced security group for the cluster.
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 value: For more information, see the introduction to ACK Edge Pro 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
Table 2. Response body parameters
Parameter | Type | Example | Description |
cluster_id | String | cb95aa626a47740afbf6aa099b650**** | The cluster ID. |
request_id | String | 687C5BAA-D103-4993-884B-C35E4314A1E1 | The request ID. |
task_id | String | T-5a54309c80282e39ea00002f | The task ID. |
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":"containerd", // The name of the container runtime.
"version":"1.6.20" // 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, see Service error codes.