Create and manage node pools

Updated at:

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.

  1. Log on to the ACK console. In the left navigation pane, click Clusters.

  2. On the Clusters page, click the name of your cluster. In the left navigation pane, click Nodes > Node Pools.

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.

Note

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.

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

    Note
    • Only 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.

    Important
    • If 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.

      Important

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

      View related configurations

      Parameter

      Description

      Modifiable

      Auto Repair

      ACK automatically monitors node status and performs self-recovery tasks when a node becomes abnormal. If you select Restart Faulty Node, the self-recovery process may involve operations such as draining the node and replacing disks. For information on trigger conditions and related events, see Enable node self-recovery.

      ✓

      Auto CVE Patching

      Fix OS CVE vulnerabilities in the node pool. You can configure the security vulnerability fix level.

      Cloud resources and billing: imageSecurity Center

      ✓

    • 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: imageVPC

    ✗

    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.

    imageVPC

    ✓

    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.

    Important

    Changing 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: imageECS Instance, imageGPU-accelerated Instance

    ✓

    Operating System

    Marketplace Image is in phased release.

    The default OS image used when the node pool scales out nodes.

    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.

    Custom performance and encryption for ESSDs

    • You can customize the performance level (PL). The larger the disk capacity, the higher the PL you can select (PL2 is available for capacities of 460 GiB or more, and PL3 for 1260 GiB or more). For more information, see ESSDs.

    • Among system disks, only ESSDs 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.

    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: imageECS 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.

    ESSD AutoPL support

    • Provisioned performance: You can flexibly configure the provisioned performance of the cloud disk without changing its storage capacity, decoupling disk capacity from performance.

    • Performance burst: When your business faces sudden data read/write pressure, the cloud disk temporarily increases its performance to handle peak demand until the business stabilizes.

    ESSD support

    You can customize the performance level (PL). The larger the disk capacity, the higher the PL you can select (PL2 is available for capacities of 460 GiB or more, and PL3 for 1260 GiB or more). For more information, see ESSDs.

    • 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/container is mounted to it. /var/lib/kubelet and /var/lib/containerd are 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: imageECS 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: imageECS 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.

    Advanced settings

    Parameter

    Description

    Modifiable

    Resource Group

    Assigns the node pool to a selected resource group for easier permission management and cost allocation.

    A resource can belong to only one resource group.

    ✓

    Scaling Mode

    This requires node pool Auto Scaling to be enabled and the Scaling Mode to be set to Auto.
    • Standard: Scales by creating and releasing ECS instances.

    • Swift: Scales by creating, stopping, and then restarting ECS instances. This allows for faster scaling by restarting stopped instances when needed.

      You are not charged for computing resources when an ECS instance is stopped, only for storage fees (except for instance families with local storage capabilities, such as big data and local SSD types). For billing details and related notes on the ECS instance stop mode, see Economical mode.

    ✗

    Scaling Policy

    Configure how the node pool selects instances during node scaling.

    • Priority-based Policy: Scales based on the priority of the vSwitches configured for the cluster (vSwitch priority decreases from top to bottom). If an instance cannot be created in the zone of a higher-priority vSwitch, the next-priority vSwitch is automatically used.

    • Cost Optimization: Scales based on the vCPU unit price from low to high.

      If the node pool uses Preemptible Instance, spot instances are prioritized. You can also configure the Percentage of On-Demand Instances (%). If spot instance types cannot be created due to inventory or other reasons, pay-as-you-go instances are automatically used as a supplement.

    • Distribution Balancing: Distributes ECS instances evenly across multiple zones, but only in multi-zone scenarios. If the distribution becomes unbalanced due to insufficient inventory or other reasons, you can perform a rebalancing operation.

    ✓

    Use Pay-as-you-go Instances When Spot Instances Are Insufficient

    This requires the billing method to be set to Spot Instance.

    When enabled, if not enough spot instances can be created due to price, inventory, or other reasons, ACK will automatically try to create on-demand instances as a supplement.

    Cloud resources and billing: imageECS Instance

    ✓

    Enable Supplemental Spot Instance

    This requires the billing method to be set to Spot Instance.

    When enabled, upon receiving a system message that a spot instance is about to be reclaimed (5 minutes before reclamation), ACK will attempt to scale out a new instance as compensation.

    • Compensation successful: ACK drains the old node and removes it from the cluster.

    • Compensation failed: ACK does not drain the old node. The instance will still be reclaimed and released after 5 minutes. When inventory is restored or price conditions are met, ACK will automatically purchase an instance to maintain the desired number of nodes. For more information, see Best practices for spot instance node pools.

    The proactive release of spot instances can cause business disruptions. To improve the compensation success rate, we recommend also enabling Use Pay-as-you-go Instances When Spot Instances Are Insufficient.

    Cloud resources and billing: imageECS Instance

    ✓

    ECS Tags

    Add tags to the ECS instances automatically created by ACK to identify cloud resources. Each ECS instance can be bound with up to 20 tags. To increase this limit, submit a request on the Quota Center platform. Because ACK and Auto Scaling (ESS) occupy some tags, you can specify up to 17 custom tags for an instance.

    Expand to see tag usage details

    • ACK occupies two ECS tags by default.

      • ack.aliyun.com:<your_cluster_id>

      • ack.alibabacloud.com/nodepool-id:<your_nodepool_id>

    • ESS occupies one ECS tag by default: acs:autoscaling:scalingGroupId:<your_nodepool_scaling_group_id>.

    • After enabling node autoscaling, Auto Scaling will occupy two additional ECS tags by default, so the node pool will occupy two more ECS tags: k8s.io/cluster-autoscaler:true and k8s.aliyun.com:true.

    • After enabling node autoscaling, the component records the node's labels and taints through ECS tags to pre-check the scheduling behavior of scaled-out nodes.

      • Each label of the node is converted to k8s.io/cluster-autoscaler/node-template/label/<label_key>:<label_value>.

      • Each taint of the node is converted to k8s.io/cluster-autoscaler/node-template/taint/<taint_key>/<taint_value>:<taint_effect>.

    ✓

    Taints

    Add key-value taints to the node. A valid taint key consists of an optional prefix and a name. If a prefix is present, it is separated from the name by a forward slash (/).

    Expand to see detailed instructions

    • Key: The name must be 1 to 63 characters long, start and end with an alphanumeric character [a-z0-9A-Z], and can contain letters, numbers, hyphens (-), underscores (_), and periods (.).

      If you specify a prefix, it must be a DNS subdomain, which is a series of DNS labels separated by periods (.), not exceeding 253 characters, and ending with a forward slash (/).

    • Value: The taint value can be empty, up to 63 characters long, must start and end with an alphanumeric character [a-z0-9A-Z], and can contain letters, numbers, hyphens (-), underscores (_), and periods (.).

    • Effect:

      • NoSchedule: No new pods that do not tolerate this taint will be scheduled to the node, but running pods are not affected.

      • NoExecute: Not only will no new pods that do not tolerate this taint be scheduled to the node, but any running pods on the node that do not tolerate this taint will be evicted.

      • PreferNoSchedule: ACK will try to avoid scheduling pods to nodes with taints they do not tolerate, but it is not enforced.

    ✓

    Node Labels

    Add key-value labels to the node. A valid Key consists of an optional prefix and a name. If a prefix is present, the prefix and name are separated by a forward slash (/).

    Expand to see detailed instructions

    • Key: The name must be 1 to 63 characters long, start and end with an alphanumeric character [a-z0-9A-Z], and can contain letters, numbers, hyphens (-), underscores (_), and periods (.).

      If you specify a prefix, it must be a DNS subdomain, which is a series of DNS labels separated by periods (.), not exceeding 253 characters, and ending with a forward slash (/).

      The following prefixes are reserved by Kubernetes core components and cannot be specified

      • kubernetes.io/

      • k8s.io/

      • prefixes ending with kubernetes.io/ and k8s.io/. For example, test.kubernetes.io/.

        The following are exceptions:

        • kubelet.kubernetes.io/

        • node.kubernetes.io

        • prefixes ending with kubelet.kubernetes.io/.

        • prefixes ending with node.kubernetes.io.

    • Value: Can be empty, up to 63 characters long, must start and end with an alphanumeric character [a-z0-9A-Z], and can contain letters, numbers, hyphens (-), underscores (_), and periods (.).

    ✓

    Set to Unschedulable

    Newly added nodes will be set as unschedulable by default when they are registered with the cluster. You need to manually adjust the node scheduling status in the node list.

    This configuration only takes effect for clusters of versions earlier than 1.34. For more information, see Kubernetes 1.34 version guide.

    ✓

    Container Image Acceleration

    This feature is only supported for containerd runtimes of version 1.6.34 and later.

    Newly added nodes will automatically detect if a container image supports on-demand loading. If it does, it will use on-demand loading by default to accelerate container startup, reducing application startup time. For more information, see Use on-demand loading of container images to accelerate container startup.

    ✓

    [Deprecated] CPU policy

    Specify the kubelet's CPU management policy for the node.

    • None: The default policy.

    • Static: Allows pods with certain resource characteristics on the node to be granted enhanced CPU affinity and exclusivity.

    We recommend using custom kubelet configurations for node pools.

    ✗

    Custom Node Name

    By default, node names are automatically generated. If you need a unified naming convention for easier node management and O&M identification, you can enable this configuration. When enabled, the node name, ECS instance name, and hostname will all change.

    Method 3 is only applicable to Lingjun node pools, and Lingjun node pools only support Method 3.

    Method 1: Full IP address + prefix/suffix

    • Description: The node name consists of a prefix, the node's IP address, and a suffix. When enabled, the node name, ECS instance name, and ECS instance hostname will also change.

    • Example: The node's IP address is 192.XX.YY.55, the specified prefix is aliyun.com, and the suffix is test.

      • Linux node: The node name, ECS instance name, and ECS instance hostname are all aliyun.com192.XX.YY.55test.

      • Windows node: Its hostname is fixed to the IP address, using - to replace the . in the IP address, and does not include the prefix and suffix.

        Therefore, the ECS instance hostname is 192-XX-YY-55, and the node name and ECS instance name are both aliyun.com192.XX.YY.55test.

    Method 2: Specified number of IP address digits + prefix/suffix

    Whitelisting
    • Description: The node name consists of a prefix, a specified number of digits from the node's IP address, and a suffix. When enabled, the node name, ECS instance name, and ECS instance hostname will change accordingly.

    • Example: The node's IP address is 192.XX.YY.55, the prefix is aliyun.com, the suffix is test, and the number of IP address digits to truncate is 6. The resulting node name is aliyun.com0YY055test.

      Important

      When the custom node name format depends on truncating part of the IP address, if the VPC CIDR block is large and the number of truncated IP digits (lenOfIP) is insufficient, it may cause node name conflicts, leading to node scale-out failures in node instant scaling scenarios.

      Set the number of IP address digits to truncate based on the following recommendations for your VPC CIDR block:

      • For large-scale CIDR blocks such as 10.0.0.0/8 and 172.16.0.0/12, we recommend setting lenOfIP to at least 9.

      • For the 192.168.0.0/16 CIDR block, we recommend setting lenOfIP to at least 6.

    Method 3: Sync instance hostname (only supported for Lingjun node pools)

    Whitelisted feature, not applicable to non-Lingjun node pools
    • Description: Directly syncs the hostname of a Lingjun node to its NodeName.

    • Example: If the instance hostname is test, the node's NodeName will be test.

    Method 4: Incremental ID + prefix/suffix (only supported for ECS node pools)

    Whitelist Feature. After enabling this method, you cannot enable node scaling (i.e., Scaling Mode set to Auto) at the same time. Node pools with autoscaling already enabled cannot be switched to this method.
    • Description: The node name consists of a prefix, an incremental ID, and a suffix, in the format auto_increment,name_prefix(AUTO_INCREMENT)[begin_number,bits]name_suffix (no space between [begin_number,bits]). The parameters are described below. For more information about the rules, see Fixed increment sorting.

      • beginNumber: The starting number, with a value range of [0, 999999]. The specified starting value takes effect on the first scale-out. If not set, it defaults to 0. For subsequent scale-outs, the starting value increments from the maximum existing number in the scaling group.

      • bits: The number of digits for the number, with a value range of [1, 6]. If the number of digits in beginNumber exceeds the value of bits, bits defaults to 6. If beginNumber or bits is not set, they default to 0 and 6, respectively. We recommend setting bits to at least 3 to avoid reaching the numbering limit. If the limit is reached and you still need to scale out, the scale-out will fail and stop. You will need to reset the naming rule.

      The system increments sequentially by default. However, if a scaled-out ECS instance fails to start, it will be removed and a new one will be scaled out, which may result in non-consecutive numbers.
    • Example: The naming format is auto_increment,start(AUTO_INCREMENT)[1,3]end, beginNumber is 1, and bits is 3. The node names are generated in sequence:

      • 1st instance: start001end

      • 2nd instance: start002end

      • ...

    ✗

    Worker RAM Role

    Supported only for ACK managed clusters. Can only be specified when creating a new node pool

    Specify a Worker RAM role at the node pool level to reduce the security risks associated with all nodes sharing a single Worker RAM role.

    • Default Role: Use the default Worker RAM role created for the cluster.

    • Custom: Use the specified role as the Worker RAM role. If left empty, the default role will be used. For more information, see Use a custom Worker RAM role.

    ✗

    Instance Metadata Access Mode

    Only supported for clusters of version 1.28 and later

    Configure the metadata access mode for ECS instances. You can access the Metadata Service from within an ECS instance to retrieve instance metadata, including instance ID, VPC information, NIC information, and other instance attributes. For more information, see Instance metadata.

    • Normal Mode and Security Hardening Mode: Supports accessing the instance metadata service using both normal and reinforced modes.

    • Security Hardening Mode: Only supports accessing the instance metadata service using reinforced mode. For more information, see Use reinforced mode only to access ECS instance metadata.

    ✗

    Pre-defined Custom Data

    Before a node joins the cluster, the specified pre-customization User-Data script will be run.

    For example, if you specify the pre-customization data as touch /tmp/pre-script, the combined script on the node will be executed in the following order.

    #!/bin/bash
    # The input instance pre-customization data is executed here
    touch /tmp/pre-script
    
    # The ACK node initialization script is executed here
    For information on how this configuration takes effect during node initialization, see Node initialization process overview.

    ✓

    User Data

    After a node joins the cluster, the specified instance User-Data script will be run.

    For example, if you specify the instance user data as touch /tmp/post-script, the combined script on the node will be executed in the following order.

    #!/bin/bash
    # The ACK node initialization script is executed here
    
    # The input instance user data is executed here
    touch /tmp/post-script
    For information on how this configuration takes effect during node initialization, see Node initialization process overview.
    Successful cluster creation or node scale-out does not guarantee that the instance user data script executed successfully. You can log on to the node and run grep cloud-init /var/log/messages to view the execution logs.

    ✓

    CloudMonitor Agent

    You can view and monitor the running status of nodes and applications in the Cloud Monitor console.

    This configuration only applies to new nodes in the node pool, not existing ones.

    To enable it for existing nodes, install it through the Cloud Monitor console.

    Cloud resources and billing: imageCloud Monitor

    ✓

    Public IP

    ACK will assign an IPv4 public IP address to the node.

    This configuration only applies to new nodes in the node pool, not existing ones. If existing nodes need to access the public network, you need to configure and bind an EIP. For more information, see Associate an EIP with a cloud resource.

    Cloud resources and billing: imageECS public network

    ✓

    Custom Security Group

    Specify a basic or advanced security group for the node pool. ACK does not configure additional access rules for the security group by default. You must manage the security group rules yourself to avoid access issues. For more information, see Configure cluster security groups.

    Each ECS instance has a limit on the number of security groups it can join. Ensure you have a sufficient security group quota.

    ✗

    RDS Whitelist

    Add the node IP addresses to the whitelist of an RDS instance.

    ✓

    Deployment Set

    After creating a deployment set in the ECS console, assign it to the node pool. This ensures that the nodes scaled out by the node pool are distributed across different physical servers, improving high availability.

    A deployment set supports a maximum of 20 × number of zones nodes by default (the number of zones is determined by the vSwitches). The maximum number of nodes in the node pool will be limited. Ensure that the quota in the deployment set is sufficient.

    To enable this later, see Best practices for node pool deployment sets.

    ✓

    Resource Pool Policy

    The resource pool policy used when adding new nodes (only supported when Instance Configuration Mode is set to Specify Instance Type). Resource pools include private pools generated after Elastic Assurance or Capacity Reservation (Immediate or Timed) services take effect, along with public pools, for node startup selection.

    • Private Pool First: Prioritizes the use of the specified private pool. If no private pool is specified or the specified private pool has insufficient capacity, it will automatically match an open-type private pool. If no suitable private pool is found, the instance will be created from the public pool.

    • Private Pool Only: You must specify a private pool ID. If the specified private pool has insufficient capacity, the node will fail to start.

    • Do Not Use: Do not use a resource pool policy.

    ✓

    [Deprecated] Private pool type

    This configuration item is deprecated. Switch to using Resource Pool Policy to specify a private pool.

    The private pool resources available for the currently selected zone and instance type. Types include the following:

    • Open: The instance will automatically match an open-type private capacity pool. If no suitable private pool is found, it will start using public pool resources.

    • Do Not Use: The instance will not use any private pool capacity and will start directly using public pool resources.

    • Specified: You need to further select a private pool ID to specify that the instance will only start using the capacity of that private pool. If the private pool is unavailable, the instance will fail to start.

    ✓

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

Important
  • 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.

  1. On the node pools page, find the node pool to edit and click Edit in the Actions column.

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

  • Deleting the node pool releases pay-as-you-go nodes.

  • Deleting the node pool does not automatically release subscription nodes.

    To release subscription nodes, first convert them to pay-as-you-go (see Convert subscription to pay-as-you-go) and then release them from the ECS console.

  • Deleting a node pool removes all its nodes from the API server.

Node pool with expected number of nodes disabled

  • Existing nodes that were manually or automatically added to the node pool and subscription nodes are not released. All other nodes are released.

    To release subscription nodes, first convert them to pay-as-you-go (see Convert subscription to pay-as-you-go) and then release them from the ECS console.

  • Released nodes are removed from the API server, while unreleased nodes remain registered with the API server.

  1. (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 (-).

  2. In the Actions column of the target node pool, click image>Delete. Read the confirmation message carefully, and then click OK.

    Important

    A 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

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

Important
  • If 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.

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.

Add existing nodes

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.

Customize Kubelet configurations for a node pool

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.

Customize containerd configurations for a node pool

OS Configuration

Lets you customize OS parameters for nodes at the node pool level to tune system performance.

Manage OS parameters for a node pool

Kubelet Upgrade

Upgrades the Kubelet and Containerd versions for nodes in the node pool.

Upgrade a node pool

Change OS

Changes the operating system type or upgrades the operating system version for nodes.

Change the operating system

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.

Fix OS CVEs for a node pool

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.

Enable node auto-healing

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.

Automated O&M capabilities

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.

  1. 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.conf
  2. Create a custom image from the ECS instance. For notes and step-by-step instructions, see Create a custom image from an instance.

  3. Configure the node pool, set Operating system type to Custom image, and then continue the process to create the node pool.

Important
  • 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.