All Products
Search
Document Center

Container Service for Kubernetes:Create an ACK Edge cluster

Last Updated:Mar 19, 2024

You can call the CreateCluster operation to create an Container Service for Kubernetes (ACK) edge cluster.

Debugging

OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer. OpenAPI Explorer dynamically generates the sample code of the operation for different SDKs.

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 (-). It cannot start with a hyphen (-).

cluster_type

String

Yes

ManagedKubernetes

The type of the cluster. Set the value to ManagedKubernetes to create an ACK Edge cluster.

disable_rollback

Boolean

No

true

Specifies whether to perform a rollback if the cluster fails to be created. Valid values:

  • true: performs a rollback if the system fails to create the cluster

  • false: does not perform a rollback if the system fails to create the cluster

Default value: false

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 containerd and docker runtimes are supported.

This parameter specifies the following information:

  • name: the name of the container runtime

  • version: the version of the container runtime

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 parameter.

login_password

String

Yes

HelloWorld123

The password for SSH logon. You must set this parameter or the key_pair parameter. The password must be 8 to 30 characters in length, and must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters.

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 SLS. This parameter takes effect only for ACK Serverless clusters.

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 the VPC can access the Internet, set the value to false.

  • If the VPC does not provide access to the Internet, the following values are valid:

    • true: configures SNAT rules. This enables the cluster to access the Internet from the VPC.

    • false: does not configure SNAT rules. In this case, the cluster cannot access the Internet.

If your applications deployed in the cluster need to access the Internet, we recommend that you set the value to true.

Default value: false

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:

  • cloud_efficiency: ultra disk

  • cloud_ssd: standard SSD

Default value: cloud_ssd

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: 120

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:

  • true: installs the CloudMonitor agent

  • false: does not install the CloudMonitor agent

Default value: false

endpoint_public_access

Boolean

No

true

Specifies whether to enable Internet access for the API server. Valid values:

  • true: enables Internet access for the API server

  • false: disables Internet access for the API server. The API server is accessible only within the internal network

Default value: true

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:

  • name: required. This parameter specifies the name of the component.

  • config: optional. If this parameter is left empty, no configurations are specified.

  • disabled: optional. This parameter specifies whether to disable automatic installation.

Network plug-in: required. The Flannel and Terway plug-ins are supported. Select one of the plug-ins for the cluster.

  • Specify the Flannel plug-in in the following format: [{"name":"flannel","config":""}].

  • Specify the Terway plug-in in the following format: [{"name": "terway-eniip","config": ""}].

Volume plug-in: optional. The Container Storage Interface (CSI) plug-ins is supported.

Specify the CSI plug-in in the following format: [{"name":"csi-plugin","config": ""},{"name": "csi-provisioner","config": ""}].

Log Service component: optional.

Note

If Log Service is disabled, you cannot use the cluster auditing feature.

  • To use an existing Log Service project, specify the component in the following format: [{"name": "logtail-ds","config": "{\"IngressDashboardEnabled\":\"true\",\"sls_project_name\":\"your_sls_project_name\"}"}].

  • To create a Log Service project, specify the component in the following format: [{"name": "logtail-ds","config": "{\"IngressDashboardEnabled\":\"true\"}"}].

Ingress controller: optional. By default, the nginx-ingress-controller component is installed in ACK dedicated clusters.

  • To install nginx-ingress-controller and enable Internet access, specify the Ingress controller in the following format: [{"name":"nginx-ingress-controller","config":"{\"IngressSlbNetworkType\":\"internet\"}"}].

  • If you do not want to install nginx-ingress-controller, specify the Ingress controller in the following format: [{"name": "nginx-ingress-controller","config": "","disabled": true}].

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.

  • key: the key of the label

  • value: the value of the label

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 vpc_id and vswitch_ids empty or make sure that the vSwitches that are specified by the vswitch_ids parameter belong to the VPC that is specified by the vpc_id parameter.

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:

  • true: enables deletion protection for the cluster. This way, the cluster cannot be deleted in the ACK console or by calling API operations.

  • false: disables deletion protection for the cluster. This way, the cluster can be deleted in the ACK console or by calling API operations.

Default value: false

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: 25

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:

  • PrePaid: subscription

  • PostPaid: pay-as-you-go

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 parameter. Nodes in the cluster are automatically added to the specified security group.

is_enterprise_security_group

Boolean

No

true

Specifies whether to create an advanced security group. This parameter takes effect only if you leave the security_group_id parameter empty.

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.

  • true: creates an advanced security group

  • false: does not create an advanced security group

Default value: true

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:

  • ack.pro.small: ACK Edge Pro cluster

  • ack.standard: ACK basic cluster

Default valid: ack.standard. If you leave this parameter empty, an ACK Edge Basic cluster is created.

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

Table 2. Response body 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.