All Products
Search
Document Center

Container Service for Kubernetes:CreateClusterNodePool

Last Updated:Aug 02, 2024

Creates a node pool for a Container Service for Kubernetes (ACK) cluster. You can use node pools to facilitate node management. For example, you can schedule, configure, or maintain nodes by node pool, and enable auto scaling for a node pool. We recommend that you use a managed node pool, which can help automate specific O\\\&M tasks for nodes, such as Common Vulnerabilities and Exposures (CVE) patching and node repair. This reduces your O\\\&M workload.

Debugging

OpenAPI Explorer automatically calculates the signature value. For your convenience, we recommend that you call this operation in OpenAPI Explorer.

Authorization information

The following table shows the authorization information corresponding to the API. The authorization information can be used in the Action policy element to grant a RAM user or RAM role the permissions to call this API operation. Description:

  • Operation: the value that you can use in the Action element to specify the operation on a resource.
  • Access level: the access level of each operation. The levels are read, write, and list.
  • Resource type: the type of the resource on which you can authorize the RAM user or the RAM role to perform the operation. Take note of the following items:
    • The required resource types are displayed in bold characters.
    • If the permissions cannot be granted at the resource level, All Resources is used in the Resource type column of the operation.
  • Condition Key: the condition key that is defined by the cloud service.
  • Associated operation: other operations that the RAM user or the RAM role must have permissions to perform to complete the operation. To complete the operation, the RAM user or the RAM role must have the permissions to perform the associated operations.
OperationAccess levelResource typeCondition keyAssociated operation
cs:CreateClusterNodePoolcreate
  • Cluster
    acs:cs:{#regionId}:{#accountId}:cluster/{#ClusterId}
    none
none

Request syntax

POST /clusters/{ClusterId}/nodepools

Request parameters

ParameterTypeRequiredDescriptionExample
ClusterIdstringYes

The ID of the cluster.

c61da77e8bfbc4c4c999af2b51b65****
bodyobjectNo

The request body.

nodepool_infoobjectNo

The configurations of the node pool.

namestringYes

The name of the node pool.

cluster-demo
typestringNo

The type of the node pool. Valid values:

  • ess: regular node pool, which supports the managed node pool feature and auto scaling feature.
  • edge: edge node pool.
  • lingjun: Lingjun node pool.
ess
resource_group_idstringNo

The ID of the resource group. Instances that are added to the node pool belong to this resource group.

rg-acfmyvw3wjmb****
auto_scalingobjectNo

The configurations of auto scaling.

enablebooleanNo

Specifies whether to enable auto scaling for the node pool. Valid values:

  • true
  • false: If you set this parameter to false, other parameters of auto_scaling object do not take effect.

Default value: false.

true
typestringNo

The type of instances that are automatically scaled. This parameter takes effect only if enable is set to true. Valid values:

  • cpu: regular instance
  • gpu: GPU-accelerated instance
  • gpushare: shared GPU-accelerated instance
  • spot: preemptible instance

Default value: cpu.

Note You cannot modify this parameter after the node pool is created.
cpu
max_instanceslongNo

The maximum number of instances that can be automatically scaled. The number of nodes in the node pool cannot be greater than this value. This parameter takes effect only if enable is set to true. Valid values: [min_instances, 2000]. Default value: 0.

10
min_instanceslongNo

The minimum number of instances that can be automatically scaled. The number of nodes in the node pool cannot be smaller than this value. This parameter takes effect only if enable is set to true. Valid values: [0, max_instances]. Default value: 0.

1
is_bond_eipdeprecatedbooleanNo

This parameter is discontinued.

Specifies whether to associate an elastic IP address (EIP) with the node pool. Valid values:

  • true
  • false

Default value: false.

**

Important This parameter is discontinued. Use internet_charge_type and internet_max_bandwidth_out.

true
eip_internet_charge_typedeprecatedstringNo

This parameter is discontinued.

The billing method of the EIP. Valid values:

  • PayByBandwidth: pay-by-bandwidth
  • PayByTraffic: pay-by-data-transfer

Default value: PayByBandwidth.

**

Important This parameter is discontinued. Use internet_charge_type and internet_max_bandwidth_out.

PayByBandwidth
eip_bandwidthdeprecatedlongNo

This parameter is discontinued.

The maximum bandwidth of the EIP. Unit: Mbit/s.

**

Important This parameter is discontinued. Use internet_charge_type and internet_max_bandwidth_out.

5
managementobjectNo

The configurations of the managed node pool feature.

enablebooleanNo

Specifies whether to enable the managed node pool feature. Valid values:

  • true
  • false: If you set this parameter to false, other parameters of management do not take effect.

Default value: false.

false
auto_repairbooleanNo

Specifies whether to enable auto node repair. This parameter takes effect only if enable is set to true.

  • true
  • false

If enable is set to true, the default value of this parameter is true. If enable is set to false, the default value of this parameter is false.

false
auto_repair_policyobjectNo

The auto node repair policy.

restart_nodebooleanNo

Specifies whether to allow node restart. This parameter takes effect only if auto_repair is set to true. Valid values:

  • true
  • false

If auto_repair is set to true, the default value of this parameter is true. If auto_repair is set to false, the default value of this parameter is false.

true
auto_vul_fixbooleanNo

Specifies whether to enable auto CVE patching. This parameter takes effect only if enable is set to true.

  • true
  • false

If enable is set to true, the default value of this parameter is true. If enable is set to false, the default value of this parameter is false.

true
auto_vul_fix_policyobjectNo

The auto CVE patching policy.

restart_nodebooleanNo

Specifies whether to allow node restart. This parameter takes effect only if auto_vul_fix is set to true. Valid values:

  • true
  • false If auto_vul_fix is set to true, the default value of this parameter is false. If auto_vul_fix is set to false, the default value of this parameter is false.
true
vul_levelstringNo

The level of CVEs that can be automatically patched. Separate multiple levels with commas (,). Example: asap,later. Valid values:

  • asap: high
  • later: medium
  • nntf: low

If auto_vul_fix is set to true, the default value of this parameter is asap.

asap,nntf
auto_upgradebooleanNo

Specifies whether to enable auto node update. This parameter takes effect only if enable is set to true.

  • true
  • false

If enable is set to true, the default value of this parameter is true. If enable is set to false, the default value of this parameter is false.

true
auto_upgrade_policyobjectNo

The auto node update policy.

auto_upgrade_kubeletbooleanNo

Specifies whether to allow auto update of the kubelet. This parameter takes effect only if auto_upgrade is set to true. Valid values:

  • true
  • false

If auto_upgrade is set to true, the default value of this parameter is true. If auto_upgrade is set to false, the default value of this parameter is false.

true
upgrade_configdeprecatedobjectNo

The configurations of auto update. This parameter takes effect only if enable is set to true.

auto_upgradedeprecatedbooleanNo

Specifies whether to enable auto update. Valid values:

  • true
  • false

**

Important This parameter is discontinued. Use the preceding auto_upgrade parameter.

false
surgelongNo

The number of additional nodes.

0
surge_percentagelongNo

The percentage of additional nodes to the total nodes in the node pool. You must specify this parameter or the surge parameter.

0
max_unavailablelongNo

The maximum number of unavailable nodes. Valid values: 1 to 1000.

Default value: 1

1
scaling_groupobjectNo

The configurations of the scaling group that is used by the node pool.

vswitch_idsarrayYes

Th vSwitch IDs. You can specify one to eight vSwitch IDs.

Note To ensure high availability, we recommend that you select vSwitches in different zones.
stringNo

The vSwitch ID.

vsw-wz9mfnhmssud6eicu****
instance_typesarrayYes

The instance types of nodes in the node pool. A node that is added to the node pool is assigned one of the specified instance types that is the most appropriate. You can specify 1 to 10 instance types.

Note To ensure high availability, we recommend that you specify multiple instance types.
stringNo

The instance type.

ecs.d1ne.2xlarge
instance_charge_typestringYes

The billing method of the nodes in the node pool. Valid values:

  • PrePaid: subscription
  • PostPaid: pay-as-you-go

Default value: PostPaid.

PrePaid
periodlongNo

The subscription duration of the nodes in the node pool. This parameter takes effect and is required if you set instance_charge_type to PrePaid.

  • If period_unit is set to Week, the valid values of period are 1, 2, 3, and 4.
  • If period_unit is set to Month, the valid values of period are 1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 24, 36, 48, and 60.
1
period_unitstringNo

The billing cycle of the nodes in the node pool. This parameter takes effect and is required if you set instance_charge_type to PrePaid. Valid values:

  • Month: The subscription duration is measured in months.
  • Week: The subscription duration is measured in weeks.

Default value: Month.

Month
auto_renewbooleanNo

Specifies whether to enable auto-renewal for the nodes in the node pool. This parameter takes effect only if you set instance_charge_type to PrePaid. Valid values:

  • true
  • false

Default value: true.

true
auto_renew_periodlongNo

The duration of the auto-renewal. This parameter takes effect and is required only if you set instance_charge_type to PrePaid and auto_renew to true. Valid values if period_unit is set to Month: 1, 2, 3, 6, and 12.

Default value: 1.

1
spot_strategystringNo

The bidding policy of preemptible instances. Valid values:

  • NoSpot: non-preemptible.
  • SpotWithPriceLimit: specifies the highest bid.
  • SpotAsPriceGo: automatically submits bids based on the up-to-date market price.

For more information, see Use preemptible instances.

NoSpot
spot_price_limitarray<object>No

The instance type of preemptible instance and the price cap for the instance type.

objectNo
instance_typestringNo

The instance type of preemptible instance.

ecs.c6.large
price_limitstringNo

The price cap of a preemptible instance of the type.

0.39
image_typestringNo

The type of the operating system image. You must specify this parameter or the platform parameter. Valid values:

  • AliyunLinux: Alinux2
  • AliyunLinux3: Alinux3
  • AliyunLinux3Arm64: Alinux3 ARM
  • AliyunLinuxUEFI: Alinux2 UEFI
  • CentOS
  • Windows
  • WindowsCore: Windows Core
  • ContainerOS
AliyunLinux
image_idstringNo

The custom image ID. By default, the image provided by the system is used.

aliyun_2_1903_x64_20G_alibase_20200529.vhd
system_disk_categorystringNo

The system disk type. Valid values:

  • cloud_efficiency: ultra disk
  • cloud_ssd: standard SSD
  • cloud_essd: Enterprise SSD (ESSD)

Default value: cloud_efficiency.

cloud_efficiency
system_disk_categoriesarrayNo

The system disk types. The system attempts to create system disks of a disk type with a lower priority if the disk type with a higher priority is unavailable. Valid values: cloud: disk cloud_efficiency: ultra disk cloud_ssd: standard SSD cloud_essd: ESSD

stringNo

The system disk type.

cloud_essd
system_disk_sizelongNo

The size of the system disk. Unit: GiB.

Valid values: 20 to 20,248.

120
system_disk_performance_levelstringNo

The performance level (PL) of the system disk. This parameter takes effect only for an ESSD. Valid values:

  • PL0: moderate maximum concurrent I/O performance and low I/O latency
  • PL1: moderate maximum concurrent I/O performance and low I/O latency
  • PL2: high maximum concurrent I/O performance and low I/O latency
  • PL3: ultra-high maximum concurrent I/O performance and ultra-low I/O latency
Note Disks support all of the preceding PLs. However, when you create a disk, the available PLs vary based on the Elastic Compute Service (ECS) instance type that you selected. For more information, see Overview of ECS instance families.
PL1
system_disk_encryptedbooleanNo

Specifies whether to encrypt the system disk. Valid values: true false

false
system_disk_kms_key_idstringNo

The ID of the Key Management Service (KMS) key that is used to encrypt the system disk.

0e478b7a-4262-4802-b8cb-00d3fb40****
system_disk_encrypt_algorithmstringNo

The encryption algorithm that is used to encrypt the system disk. Set the value to aes-256.

aes-256
system_disk_bursting_enabledbooleanNo

Specifies whether to enable the burst feature for the system disk. Valid values:

  • true
  • false

This parameter is available only if SystemDiskCategory is set to cloud_auto. For more information, see ESSD AutoPL disks.

true
system_disk_provisioned_iopslongNo

The preset IOPS of the system disk. Valid values: 0 to min{50,000, 1,000 × Capacity - Baseline IOPS}. Baseline IOPS = min{1,800 + 50 × Capacity, 50,000}.

This parameter is available only if SystemDiskCategory is set to cloud_auto. For more information, see ESSD AutoPL disks.

1000
data_disksarrayNo

The configurations of the data disks that are mounted to the nodes in the node pool.

data_diskNo

The configuration of data disks.

security_group_idsarrayNo

The security group IDs. You must specify this parameter or the security_group_id parameter. We recommend that you specify security_group_ids. If you specify both security_group_id and security_group_ids, security_group_ids is used.

stringNo

The security group ID. You must specify this parameter or the security_group_id parameter. We recommend that you specify security_group_ids. If you specify both security_group_id and security_group_ids, security_group_ids is used.

sg-wz9a8g2mt6x5llu0****
key_pairstringNo

The name of the key pair. You must specify this parameter or the login_password parameter.

Note If you want to create a managed node pool, you must specify key_pair.
np-key-name
login_passwordstringNo

The password for SSH logon. You must specify 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.

Hello1234
login_as_non_rootbooleanNo

Specifies whether a non-root user can log on to the ECS instance that is added to the node pool.

true
cis_enableddeprecatedbooleanNo

Specifies whether to enable Center for Internet Security (CIS) reinforcement. CIS reinforcement can be enabled only if Alibaba Cloud Linux 2 or Alibaba Cloud Linux 3 is installed on nodes.

false
soc_enabledbooleanNo

Specifies whether to enable reinforcement based on classified protection. You can enable reinforcement based on classified protection only if Alibaba Cloud Linux 2 or Alibaba Cloud Linux 3 is installed on nodes. Alibaba Cloud provides standards for baseline check and a scanner to ensure the compliance of Alibaba Cloud Linux 2 and Alibaba Cloud Linux 3 images with the level 3 standards of classified protection.

false
internet_charge_typestringNo

The billing method of the public IP address. Valid values:

  • PayByBandwidth: pay-by-bandwidth
  • PayByTraffic: pay-by-data-transfer
PayByTraffic
internet_max_bandwidth_outlongNo

The maximum outbound bandwidth of the public IP address. Unit: Mbit/s. Valid values: 1 to 100.

5
tagsarray<object>No

The tag that you want to add only to ECS instances.

The tag key must be unique and can be up to 128 characters in length. The tag key and value cannot start with aliyun or acs: or contain https:// or http://.

objectNo
keystringNo

The tag key.

node-k-1
valuestringNo

The tag value.

node-v-1
desired_sizelongNo

The expected number of nodes in the node pool.

0
multi_az_policystringNo

The ECS instance scaling policy for the multi-zone scaling group. Valid values:

  • PRIORITY: ECS instances are created based on the VSwitchIds.N parameter. If Auto Scaling fails to create an ECS instance in the zone of the vSwitch that has the highest priority, Auto Scaling attempts to create the ECS instance in the zone of the vSwitch that has a lower priority.

  • COST_OPTIMIZED: ECS instances are created based on the vCPU unit price in ascending order. Preemptible instances are preferably created when preemptible instance types are specified in the scaling configurations. You can specify CompensateWithOnDemand to specify whether to automatically create pay-as-you-go instances if preemptible instances cannot be created due to insufficient resources.

    **

    Note COST_OPTIMIZED takes effect only if multiple instance types are specified or at least one preemptible instance type is specified.

  • BALANCE: ECS instances are evenly distributed across multiple zones specified by the scaling group. If the distribution of ECS instances across zones is not balanced due to reasons such as insufficient inventory, you can call the RebalanceInstances operation to evenly distribute the ECS instances across zones.

Default value: PRIORITY.

COST_OPTIMIZED
scaling_policystringNo

The scaling mode of the scaling group. Valid values:

  • release: the standard mode. ECS instances are created and released based on the resource usage.
  • recycle: the swift mode. ECS instances are created, stopped, or started during scaling events. This reduces the time required for the next scale-out event. When the instance is stopped, you are charged only for the storage service. This does not apply to ECS instances that are attached with local disks.

Default value: release.

release
on_demand_base_capacitylongNo

The minimum number of pay-as-you-go instances that must be kept in the scaling group. Valid values: 0 to 1000. If the number of pay-as-you-go instances is smaller than the value of this parameter, Auto Scaling preferably creates pay-as-you-go instances.

0
on_demand_percentage_above_base_capacitylongNo

The percentage of pay-as-you-go instances among the extra instances that exceed the number specified by on_demand_base_capacity. Valid values: 0 to 100.

20
spot_instance_poolslongNo

The number of instance types that are available for creating preemptible instances. Auto Scaling creates preemptible instances of multiple instance types that are available at the lowest cost. Valid values: 1 to 10.

5
spot_instance_remedybooleanNo

Specifies whether to enable the supplementation of preemptible instances. If the supplementation of preemptible instances is enabled, when the scaling group receives a system message that a preemptible instance is to be reclaimed, the scaling group attempts to create a new instance to replace this instance. Valid values:

  • true
  • false
false
compensate_with_on_demandbooleanNo

Specifies whether to automatically create pay-as-you-go instances to meet the required number of ECS instances if preemptible instances cannot be created due to reasons such as the cost or insufficient inventory. This parameter takes effect if you set multi_az_policy to COST_OPTIMIZED. Valid values:

  • true
  • false
true
deploymentset_idstringNo

The deployment set ID.

ds-bp1d19mmbsv3jf6xxxxx
rds_instancesarrayNo

The ApsaraDB RDS instances.

stringNo

The ID of the ApsaraDB RDS instance.

rds-****
private_pool_optionsobjectNo

The configurations of the private node pool.

idstringNo

The ID of the private node pool.

eap-bp67acfmxazb4****
match_criteriastringNo

The type of the private node pool. This parameter specifies the type of private node pool that is used to create instances. A private node pool is generated when an elasticity assurance or a capacity reservation service takes effect. The system selects a private node pool to launch instances. Valid values:

  • Open: uses open private pool. The system selects an open private pool to start instances. If no matching open private node pool is available, the resources in the public node pool are used.
  • Target: uses the specified private node pool. The system uses the resources of the specified private pool to start instances. If the specified private pool is unavailable, instances cannot be started.
  • None: No private pool is used. The resources of private pools are not used to start instances.
Open
security_group_iddeprecatedstringNo

The ID of the security group to which you want to add the node pool. You must specify this parameter or the security_group_ids parameter. We recommend that you specify security_group_ids.

sg-wz9a8g2mt6x5llu0****
platformdeprecatedstringNo

The operating system distribution. Valid values:

  • CentOS
  • AliyunLinux
  • Windows
  • WindowsCore

Default value: AliyunLinux.

AliyunLinux
node_configobjectNo

The node configurations.

kubelet_configurationkubelet_configNo

The parameter settings of the kubelet.

kubernetes_configobjectNo

The cluster configurations.

labelsarrayNo

The labels that you want to add to the nodes in the cluster.

tagNo

The configuration of labels.

taintsarrayNo

The taint configurations.

taintNo

The taints.

runtimestringNo

The container runtime.

docker
runtime_versionstringNo

The version of the container runtime.

19.03.5
cpu_policystringNo

The CPU management policy of the nodes in the node pool. The following policies are supported if the version of the cluster is Kubernetes 1.12.6 or later:

  • static: allows pods with specific resource characteristics on the node to be granted enhanced CPU affinity and exclusivity.
  • none: specifies that the default CPU affinity is used.

Default value: none.

none
user_datastringNo

The user-defined data on nodes.

dGhpcyBpcyBhIGV4YW1wbGU=
unschedulablebooleanNo

Specifies whether the nodes are schedulable after a scale-out operation is performed.

true
cms_enabledbooleanNo

Specifies whether to install the CloudMonitor agent on ECS nodes. After the CloudMonitor agent is installed on ECS nodes, you can view the monitoring information about the instances in the CloudMonitor console. We recommend that you install the CloudMonitor agent. Valid values:

  • true
  • false

Default value: false.

true
node_name_modestringNo

The custom node name. A custom node name consists of a prefix, a node IP address, and a suffix.

  • The prefix and suffix can contain multiple parts that are separated by periods (.). Each part can contain lowercase letters, digits, and hyphens (-). A custom node name must start and end with a digit or lowercase letter.
  • The node IP address is the complete private IP address of the node.

Set the parameter to a value that is in the customized,aliyun,ip,com format. The value consists of four parts that are separated by commas (,). customized and ip are fixed content. aliyun is the prefix and com is the suffix. Example: aliyun.192.168.xxx.xxx.com.

customized,aliyun,ip,com
tee_configobjectNo

The configurations of confidential computing for the cluster.

tee_enablebooleanNo

Specifies whether to enable confidential computing for the cluster.

true
interconnect_configdeprecatedobjectNo

This parameter is discontinued.

The configurations of the edge node pool.

cen_idstringNo

This parameter is discontinued.

The ID of the Cloud Enterprise Network (CEN) instance that is associated with the enhanced edge node pool.

cen-ey9k9nfhz0f*******
ccn_idstringNo

This parameter is discontinued.

The ID of the Cloud Connect Network (CCN) instance that is associated with the enhanced edge node pool.

ccn-qm5i0i0q9yi*******
ccn_region_idstringNo

This parameter is discontinued.

The region in which the CCN instance that is associated with the enhanced edge node pool resides.

cn-shanghai
bandwidthlongNo

This parameter is discontinued.

The bandwidth of the enhanced edge node pool. Unit: Mbit/s.

10
improved_periodstringNo

This parameter is discontinued.

The subscription duration of the enhanced edge node pool. Unit: months.

1
countdeprecatedlongNo

This parameter is discontinued. Use desired_size.

The number of nodes in the node pool.

1
max_nodesdeprecatedlongNo

The maximum number of nodes that can be created in the edge node pool. The value of this parameter must be greater than or equal to 0. A value of 0 indicates that the number of nodes in the node pool is limited only by the quota of nodes in the cluster. In most cases, this parameter is set to a value greater than 0 for edge node pools. This parameter is set to 0 for node pools whose types are ess or default edge node pools.

10
interconnect_modestringNo

The network type of the edge node pool. This parameter takes effect only if you set the type parameter of the node pool to edge. Valid values:

  • basic: basic.
  • private: dedicated. Only Kubernetes 1.22 and later support this value.
basic

Response parameters

ParameterTypeDescriptionExample
object

The configurations of the node pool.

nodepool_idstring

The node pool ID.

np31da1b38983f4511b490fc62108a****
task_idstring

The ID of the task.

T-613b19bbd160ad492800****
request_idstring

The request ID.

0527ac9a-c899-4341-a21a-****

Examples

Sample success responses

JSONformat

{
  "nodepool_id": "np31da1b38983f4511b490fc62108a****",
  "task_id": "T-613b19bbd160ad492800****",
  "request_id": "0527ac9a-c899-4341-a21a-****"
}

Error codes

For a list of error codes, visit the Service error codes.

Change history

Change timeSummary of changesOperation
2024-07-09The internal configuration of the API is changed, but the call is not affectedView Change Details
2024-06-13The internal configuration of the API is changed, but the call is not affectedView Change Details
2024-06-13The internal configuration of the API is changed, but the call is not affectedView Change Details
2024-04-22The internal configuration of the API is changed, but the call is not affectedView Change Details
2024-04-19The internal configuration of the API is changed, but the call is not affectedView Change Details
2024-01-19The response structure of the API has changedView Change Details
2023-12-13The internal configuration of the API is changed, but the call is not affectedView Change Details
2023-10-17The internal configuration of the API is changed, but the call is not affectedView Change Details
2023-09-01The response structure of the API has changedView Change Details
2023-08-08The internal configuration of the API is changed, but the call is not affectedView Change Details
2020-09-24The internal configuration of the API is changed, but the call is not affectedView Change Details
2020-09-24The internal configuration of the API is changed, but the call is not affectedView Change Details