Create and manage node pools
ACK uses node pools to group and manage nodes. A node pool is a logical group of nodes that share the same properties, such as instance type, operating system, labels, and taints. You can create multiple node pools with different configurations in a single cluster to streamline node management.
Before creating a node pool, read Node pools to learn about the basics, use cases, related features, and billing.
Procedure
You can create, edit, delete, and view node pools on the node pool page of the target cluster.
-
Log on to the ACK console. In the left navigation pane, click Clusters.
-
On the Clusters page, click the name of your cluster. In the left navigation pane, click .
Create a node pool
You can configure a node pool on the console, including its basic, network, and storage configurations. Note that some settings, especially those related to node pool availability and network configuration, cannot be changed after the node pool is created. Creating a node pool does not affect the nodes and services in other node pools.
Besides the console, ACK also lets you create node pools using the API and Terraform. See Create a node pool and Create an auto-scaling node pool with Terraform.
On the Node Pool page, click Create Node Pool. In the Create Node Pool dialog box, configure the settings.
After creating a node pool, you can modify its configuration items on the Edit Node Pool page. The Modification Supported column indicates whether an item can be modified after creation.
indicates an item cannot be modified, while
indicates it can be.Basic configuration
Parameter
Description
Modifiable
Node Pool Name
Enter a custom name for the node pool.
✓
Confidential computing
NoteOnly allowlisted users can configure confidential computing. To apply, submit a ticket.
This parameter is available only when the container runtime is set to containerd.
Specifies whether to enable confidential computing. Confidential computing is a cloud-native, one-stop container platform that provides hardware-based encryption for users with stringent security requirements. It ensures the security, integrity, and confidentiality of data in use (during computation) and simplifies the development, delivery, and management of trusted or confidential applications. For more information, see ACK-TEE Confidential Computing.
✗
Container Runtime
For information on how to choose, see Comparison of containerd, sandboxed containers, and Docker runtimes.
containerd (Recommended): The community standard, supporting version 1.20 and later.
Sandboxed Container: Provides a strongly isolated environment based on lightweight virtualization technology. For usage procedures and limits, see Create and manage a sandboxed container node pool.
Docker (Discontinued): Only supports version 1.22 and earlier. Creation is no longer supported.
✗
Scaling Mode
Manual: ACK adjusts the number of nodes in the node pool according to the configured Expected Number of Nodes to always maintain the number of nodes at the Expected Number of Nodes. For more information, see Manually scale a node pool.
Auto: When the cluster's capacity planning cannot meet application pod scheduling needs, ACK automatically scales node resources based on the configured minimum and maximum number of instances. For clusters of version 1.24 and later, node instant scaling is enabled by default. For clusters earlier than version 1.24, node autoscaling is enabled by default. For more information, see Node scaling.
ImportantIf you enable scale-in, the system will automatically remove nodes based on resource usage, which may cause business interruptions. We recommend configuring the scaling policy appropriately and setting up graceful shutdown for your application containers.
During automatic scale-in, local data on the node will be destroyed along with the node. Do not use methods such as HostPath to write business data to the host directory.
✓
Managed configuration
ACK offers three managed configurations with varying levels of automation for node pools.
Intelligent hosting: When intelligent hosting is enabled, ACK automatically scales the node pool based on workload demands. ACK also manages operational tasks, including operating system and software version upgrades, and fixing security vulnerabilities.
ImportantFor information about the capacity limits, operational boundaries, and storage specifications for intelligent hosting node pools, see Usage notes.
This feature is available only in ACK Managed Cluster Pro clusters that run Kubernetes 1.30 or later.
Managed node pool: Select your desired automation capabilities and specify a cluster maintenance window.
Disabled: Disables automation capabilities. You must manually manage the nodes and the node pool.
To compare managed configuration capabilities and considerations, see Comparison of managed configuration capabilities and considerations.
Network configuration
Parameter
Description
Modifiable
Network configuration
VPC
The cluster's VPC is selected by default and cannot be changed after the node pool is created.
Cloud resources and billing:
VPC✗
vSwitch
During scaling, nodes scale in or out in the availability zones of the selected vSwitches based on the scaling policy. For high availability, select vSwitches in two or more different availability zones.
To create a vSwitch, see Create and manage vSwitches.
✓
Instance and image configuration
Parameter
Description
Modification supported
Billing Method
The default billing method for nodes scaled out by the node pool.
Pay-As-You-Go: Can be enabled and released on demand.
Subscription: Requires configuring the Duration and Auto Renewal.
Preemptible Instance: Currently only supports spot instances with a protection period. You must also configure the Instance Price Cap.
When the real-time price of the specified instance type is lower than the maximum bid for a single instance, the instance will be created successfully. After the protection period (1 hour), the system checks the real-time price and inventory of the instance type every 5 minutes. If the market price is higher than your bid or the inventory is insufficient, the spot instance will be released. For usage recommendations, see Best practices for spot instance node pools.
To ensure node pool uniformity, you cannot change a Pay-As-You-Go or Subscription node pool to a Preemptible Instance node pool, or vice versa.
ImportantChanging the billing method of a node pool affects only new nodes added during scale-outs. This change does not affect the billing method of existing nodes. To change the billing method for existing nodes, see Convert a pay-as-you-go instance to a subscription instance.
✓
Instance configurations
When a node pool scales out, it allocates instances from the configured ECS instance family. To improve the success rate of scale-outs, select multiple instance types across multiple zones to avoid unavailability or stock shortages. The specific instance type for scale-out is determined by the configured Scaling Policy.
To ensure business stability and accurate resource scheduling, do not mix GPU and non-GPU instance types in the same node pool.
You can configure the instance types used for scale-out in the following two ways:
Specific types: Specify instance types based on dimensions such as vCPU, memory, instance family, and CPU architecture (the instance's CPU architecture must be consistent with the OS image architecture).
When using Terway, you can view the maximum number of pods per node for the target instance type in the instance type list.
Generalization configuration: Select a list of instance types to use or exclude based on attributes (such as vCPU and memory) to further improve the scale-out success rate.
You can refer to the elasticity strength recommendations in the console or view the node pool elasticity strength after the node pool is created.
For information about unsupported instance types and node configuration recommendations, see ECS instance type configuration recommendations.
Cloud resources and billing:
ECS Instance,
GPU-accelerated Instance✓
Operating System
Marketplace Image is in phased release.
The default OS image used when the node pool scales out nodes.
Public Image: Use public images of operating systems such as Alibaba Cloud Linux 3 Container-Optimized Edition, ContainerOS, Alibaba Cloud Linux 3, Ubuntu, and Windows. For image details, cgroup version information, and usage limits, see Operating system.
Custom Image: Use a custom OS image. For more information, see How do I create a custom image based on an existing ECS instance and use it to create a node?.
Marketplace Image: Use an Alibaba Cloud Marketplace image.
Cloud resources and billing:
ECS Alibaba Cloud Marketplace image
To upgrade or change the OS later, see Change the operating system.
Alibaba Cloud Linux 2 and CentOS 7 are no longer maintained and are not supported in clusters of version 1.30 or later. Use a supported operating system. We recommend Alibaba Cloud Linux 3 Container-Optimized Edition or ContainerOS.
✓
Security Hardening
When creating a node, ACK applies the selected security baseline policy.
Disable: No security hardening is performed on the ECS instance.
MLPS Security Hardening: Alibaba Cloud provides baseline check standards and scanning tools for the Alibaba Cloud Linux MLPS 2.0 Level 3 edition image that meet classified protection compliance requirements. While ensuring native image compatibility and performance, it has been adapted for MLPS 2.0 compliance, meeting the requirements of GB/T 22239-2019 Information Security Technology - Basic Requirements for Classified Protection of Cybersecurity. For more information, see Instructions for using ACK MLPS 2.0 security hardening.
However, in this mode, the root user cannot log on remotely via SSH. You can connect to the instance via VNC in the ECS console and create a regular user that supports SSH logon.
OS Security Hardening: Only supports Alibaba Cloud Linux 2 or Alibaba Cloud Linux 3.
✗
Logon Type
When you select MLPS Security Hardening, only Password is supported.
ContainerOS only supports Key Pair or Later. If you want to use a key pair, you must start an administrative container after configuring the key pair. For specific operations, see O&M for ContainerOS nodes.
When creating a node, ACK pre-installs the specified key pair or password into the instance.
Set at creation:
Key Pair: Alibaba Cloud SSH key pairs are a secure and convenient logon authentication method, consisting of a public key and a private key. They are only supported for Linux instances.
Configure both the Username (root or ecs-user) and the required Key Pair.
Password: Configure the Username (root or ecs-user) and a password.
Later: After the instance is created, you can attach a key pair or reset the logon password of the instance. For more information, see Attach an SSH key pair and Reset the logon password of an instance.
✓
Storage
Parameter
Description
Modifiable
System Disk
Select a cloud disk type based on your business needs, including ESSD AutoPL, enterprise SSD (ESSD), ESSD Entry, and previous-generation cloud disks (standard SSD and ultra disk). Configure the capacity and IOPS.
The available system disk types depend on the selected instance family. Disk types that are not displayed are not supported.
You can select More Disk Categories to configure disk types different from the System Disk to improve the success rate of scale-outs. When creating a node, ACK selects the first matching type in the specified order of disk types.
Cloud resources and billing:
ECS Elastic Block Storage✓
Data Disk
Select a cloud disk type based on your business needs, including ESSD AutoPL, enterprise SSD (ESSD), ESSD Entry, and previous-generation cloud disks (standard SSD and ultra disk). Configure the capacity and IOPS.
The available data disk types depend on the selected instance family. Disk types that are not displayed are not supported.
When you attach a data disk, all cloud disk types support Encrypted. When you select a key, Alibaba Cloud uses the default service key (Default Service CMK) for encryption. You can also select a custom key (Bring-Your-Own-Key, or BYOK) that you have created in KMS.
During node creation, the last data disk is automatically formatted, and
/var/lib/containeris mounted to it./var/lib/kubeletand/var/lib/containerdare mounted to/var/lib/container.To customize the mount directory, adjust the data disk's initialization configuration. You can select at most one data disk as the directory for the container runtime. For more information, see Can I customize the mount directory for data disks in an ACK node pool?
In scenarios that require container image acceleration or rapid loading of large models, you can also create data disks from snapshots to improve system response speed and processing capabilities.
You can select Add Data Disk Type to configure disk types different from the Data Disk to improve the success rate of scale-outs. When creating a node, ACK selects the first matching type in the specified order of disk types.
An ECS instance can have up to 64 data disks attached. The specific limit varies by instance type. You can call the DescribeInstanceTypes operation to query the cloud disk quantity limit (
DiskQuantity) for the corresponding instance type.Cloud resources and billing:
ECS Elastic Block Storage✓
Elastic Ephemeral Disk
This is a whitelisted feature. Submit a ticket to apply
Elastic ephemeral disks provide high-performance, cost-effective temporary data storage for ECS instances. They are suitable for storing temporary data (such as intermediate results of temporary computations, cached data, and temporary files) and for high-performance computing (HPC) scenarios with high IOPS and throughput requirements.
This feature is only available in some regions and for some ECS instance types. For more information, see Region limits and Instance type limits.
You can choose whether to initialize the elastic ephemeral disk and customize its mount directory.
Cloud resources and billing:
ECS Elastic Block Storage✓
Instance count
Parameter
Description
Modifiable
Expected Number of Nodes
The total number of nodes that the node pool should maintain. We recommend configuring at least two nodes to ensure that cluster components run properly. You can adjust the desired node count to scale the node pool in or out. For more information, see Scale a node pool.
If you do not need to create nodes, you can set this to 0 and then manually adjust it or add existing nodes later.
✓
Advanced settings
Expand Advanced Options (Optional) to configure settings such as scaling policies, resource groups, ECS tags, and taints.
Click Confirm Configuration.
On the Confirm Configuration page, click Equivalent Code in the lower-left corner to generate sample Terraform or SDK parameters for the current node pool configuration.
In the node pool list, a node pool's Status is Initializing during creation and changes to Active upon successful creation.
Edit a node pool
After a node pool is created, you can adjust its settings in the ACK console, such as vSwitches, billing method, instance types, system disks, and enabling or disabling auto scaling. For a list of editable settings, see the parameter descriptions in Create a node pool.
Editing a node pool does not affect its existing nodes or the workloads running on them. After the configuration is updated, new nodes added to the node pool use the new configuration by default.
Configuration updates to a node pool apply only to new nodes. The settings of existing nodes remain unchanged, except when you use features such as Synchronize ECS tags of existing nodes and Synchronize labels and taints of existing nodes.
When you switch the Scaling Mode of a node pool:
From Manual to Auto: This enables auto scaling. You must also set the minimum and maximum number of instances.
From Auto to Manual: This disables auto scaling. The minimum number of instances is set to 0, and the maximum number of instances is set to 2000. The system automatically sets the desired number of nodes to the current number of nodes in the node pool.
Use the steps in this section to update the node pool configuration. If you modify nodes in other ways, node pool upgrades will overwrite those changes.
On the node pools page, find the node pool to edit and click Edit in the Actions column.
On the Edit Node Pool page, modify the settings, and then follow the on-screen instructions to complete the configuration.
While the node pool is being updated, its Status on the node pools page is Updating. When the update is complete, the Status changes to Active.
View a node pool
You can view the basic information and monitoring data for a node pool, as well as details about the nodes and a history of scaling activities in the pool.
Click the name of the target node pool to view the following information:
The Basic Information tab displays information about the cluster, the node pool, and the node configuration. If auto scaling is enabled for the cluster, this tab also shows the auto scaling configuration.
The Monitoring tab is integrated with Alibaba Cloud Prometheus Service to display the resource utilization of the node pool, including metrics such as CPU, memory, and disk usage, as well as the average CPU and memory utilization of the nodes.
The Node Management tab lists all nodes in the node pool and allows you to remove nodes, perform O&M tasks, drain nodes, and manage scheduling. Click Export to save detailed node information as a CSV file.
The Scaling Activities tab displays a history of recent scaling activities for node instances, including the resulting instance count and a description for each activity. If a scaling activity fails, you can view the failure reason. For information about common error codes related to scale-out and scale-in failures, see Manually scale a node pool.
Delete a node pool
The release rules for nodes vary by billing method. Before you delete a node pool, check whether an expected number of nodes is set for the pool. This setting directly affects the node release behavior.
Node pool | Release rules |
Node pool with expected number of nodes enabled |
|
Node pool with expected number of nodes disabled |
|
(Optional) Click the target node pool name. On the Basic Information tab, check if Desired number of nodes is configured. If this setting is not enabled, the Desired number of nodes field displays a hyphen (-).
In the Actions column of the target node pool, click
>Delete. Read the confirmation message carefully, and then click OK.ImportantA node's system disk and data disks share its lifecycle. When a node is released, its cloud disks are also released, and all data on them is permanently lost. To keep your data safe, use a PersistentVolume (PV) to decouple the data lifecycle from the node lifecycle.
Related operations
After a node pool becomes active, you can perform the following operations in the node pool list.
Action | Description | Related documentation |
Sync Node Pool | Synchronizes node pool data if node information is inconsistent. | None |
Details | Displays the configuration details of the node pool. | None |
Scaling |
Important
| |
Edit | Lets you modify a node pool's configuration, such as its VSwitches, managed node pool settings, billing method, instance types, and whether auto scaling is enabled. | See Edit a node pool above. |
Monitoring | Integrates with Alibaba Cloud Prometheus Service to display the resource utilization of the node pool, including metrics such as CPU and memory usage, disk usage, and the average CPU and memory utilization of nodes. | See View a node pool above. |
Add Existing Nodes | Lets you add existing ECS instances to an ACK cluster as worker nodes or re-add worker nodes that have been removed from a node pool. This feature has important limitations and considerations. For more information, see the related documentation. | |
Configure Logon Method | Lets you set the logon method for nodes. You can choose between a key pair and a password. | See Instance and image configuration above. |
Managed Configuration | Enables automated operations for the node pool, such as node auto-healing, automatic upgrades for Kubelet and the container runtime, and automatic OS CVE fixes. | See Basic configuration above. |
Clone | Creates a new node pool by cloning the configuration of an existing one. | None |
Delete | Deletes a node pool that is no longer in use to reduce costs. The way nodes are released depends on whether a desired number of nodes is configured for the node pool and the billing method of the nodes. | See Delete a node pool above. |
Kubelet Configuration | Lets you customize Kubelet parameters for nodes at the node pool level to adjust their behavior, such as reserving resources to manage cluster-wide resource usage. | |
Containerd Configuration | Lets you customize Containerd parameters for nodes at the node pool level. For example, you can configure multiple mirrors for a specified image repository or skip TLS certificate verification for it. | |
OS Configuration | Lets you customize OS parameters for nodes at the node pool level to tune system performance. | |
Kubelet Upgrade | Upgrades the Kubelet and Containerd versions for nodes in the node pool. | |
Change OS | Changes the operating system type or upgrades the operating system version for nodes. | |
Fix CVE (OS) | Fixes OS CVEs in batches to improve cluster stability, security, and compliance. Some CVE fixes require a node restart. For more information about the feature and its considerations, see the related documentation. | |
Node Recovery | When a node in a managed node pool becomes unhealthy, ACK automatically attempts to recover it. However, complex failures may require manual intervention. For details about the checks and specific recovery actions that ACK provides, see the related documentation. |
Managed configuration capability comparison
Managed configuration | Disabled | Managed node pool | Intelligent management | |
Node pool configuration | Instance type | Manual configuration | Manual configuration | Configurable, with intelligent instance type recommendations. |
Billing method | Manual configuration | Manual configuration | Pay-as-you-go only. | |
Operating system | Manual configuration | Manual configuration | Supports only the container-optimized operating system ContainerOS. | |
System disk | Manual configuration | Manual configuration | Recommended default: 20 GiB. | |
Data disk | Manual configuration | Manual configuration | ContainerOS uses one data disk for temporary storage. The size is configurable. | |
Auto scaling | Can be enabled and configured manually. | Can be enabled and configured manually. | Instant node elasticity is enabled by default. Manual configuration is supported. | |
Automatic response to ECS system events | Not supported | Enabled by default | Enabled by default | |
Node self-healing | Not supported | Can be enabled and configured manually. | Enabled by default | |
Automatic kubelet and containerd upgrades | Manually configured using the automatic cluster upgrade feature. | Enabled by default | ||
Automatic OS CVE vulnerability fixes | Not supported | Can be enabled and configured manually. | Enabled by default | |
FAQ
Use a custom image to create nodes
After you create an ECS instance, you can customize it by installing software or deploying application environments. You can then create a custom image from the instance. New instances created from this image include your custom configurations, saving you from configuring each instance repeatedly.
Log on to the ECS instance and run the following commands to delete the specified files. For instructions on logging on to an instance, see Log on to a Linux instance by using Workbench.
chattr -i /etc/acknode/nodeconfig-* rm -rf /etc/acknode systemctl disable ack-reconfig rm -rf /etc/systemd/system/ack-reconfig.service rm -rf /usr/local/bin/reconfig.sh rm -rf /var/lib/cloud systemctl stop kubelet systemctl disable kubelet rm -rf /etc/systemd/system/kubelet.service rm -rf /etc/systemd/system/kubelet.service.d/10-kubeadm.confCreate a custom image from the ECS instance. For notes and step-by-step instructions, see Create a custom image from an instance.
Configure the node pool, set Operating system type to Custom image, and then continue the process to create the node pool.
Create custom images based on operating systems supported by ACK clusters. For more information, see Operating system.
Do not create a custom image from an ECS instance that is currently running in an ACK cluster. To use it, first remove it from the cluster. For more information, see Remove a node.
Predefined behavior in a custom image may affect cluster node initialization, container operation, node OS upgrades, and automatic node recovery in managed node pools. Before using in a production environment, ensure it has been rigorously tested and validated.
Related documentation
You can remove a node when it is no longer needed. For more information, see Remove a node.
ACK reserves a portion of node resources to ensure that kube components and system processes can run. For more information, see Node resource reservation policy.
If your cluster has insufficient capacity to schedule application Pods, enable node scaling to automatically expand your node resources. For more information, see Node scaling.
The maximum number of Pods per worker node depends on the network plugin and is usually fixed. To increase the number of available Pods, you can scale out the node pool, upgrade the instance type, or rebuild the cluster with a new Pod CIDR block. For more information, see Adjust the number of Pods per node.
>Delete. Read the confirmation message carefully, and then click OK.