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. This topic introduces node pools and describes the types, usage notes, and limits of node pools.

Introduction

A node pool contains one or more nodes that have the same configurations in a cluster. A default node pool is automatically created based on the number of nodes and node configurations that you specify when you create a cluster. You can add node pools of different sizes and types to the cluster. You can create and update node pools. This does not affect the cluster.

In most cases, the following configurations are the same for nodes in a node pool:
  • The type and version of the operating system.
  • The type and version of the container runtime.
  • The billing method of the node. The pay-as-you-go and subscription billing methods are supported. Elastic node pools also support preemptible instances.
  • The instance type of the node.
  • The CPU management policy of the node.
  • The labels and taints of the node.
  • The user-defined data on the node.
nodepool
The following table describes the terms that are related to node pools.
Term Description
Scaling group A scaling group is a logical group of Elastic Compute Service (ECS) instances. Scaling groups are used to manage and automatically scale nodes. Node pools manage nodes based on scaling groups. The resources in a node pool, including ECS instances and scaling groups, must belong to the same Alibaba Cloud account. For more information, see Overview.
Note You must use node pools to configure and manage nodes. Do not use scaling groups to configure or manage nodes. Otherwise, some node pool features may become unavailable.
Replace system disk You can initialize a node by replacing the system disk of the node. After the system disk is replaced, the attributes of the IaaS resources that are attached to the node remain unchanged, such as the node name, the related instance ID, and the node IP address. However, the original data on the system disk is deleted. Then, the node is initialized again. The data disks that are mounted to the node are not affected.
Notice Do not use system disks to persist data. We recommend that you use data disks instead.
In-place upgrade You can directly replace components on a node as required. This is an alternative to replacing the system disk of a node. In-place upgrades do not replace system disks, initialize nodes, or destroy the data on nodes.

Usage notes

Before you use node pools, take note of the following items:
  • You can create multiple node pools in a Container Service for Kubernetes (ACK) cluster. Regular node pools and managed node pools are supported. For more information about node pool types, see Node pool types.
  • A default node pool is automatically created based on the number of nodes and configurations that you specify when you create a cluster. You cannot delete the default node pool. If you call API operations to scale out node pools or add ECS instances without specifying node pools, the nodes or instances that you add are grouped to the default node pool. For more information about how to scale out node pools and add existing ECS instances to a cluster by calling API operations, see ScaleClusterNodePool and Add existing instances to a node pool.
    Note In an existing ACK dedicated cluster that is deployed across three zones, the system creates three default node pools because three scaling groups are created when you create the cluster.
  • You can use node pools to deploy and manage different types of nodes in a cluster.
    • You can create multiple node pools in a cluster and add nodes that run different operating systems to these node pools. The supported operating systems are CentOS, Windows, and AliyunLinux.
    • You can create node pools of different container runtimes in a cluster. Sandboxed-Container and Docker are supported.
    • You can create node pools that use different billing methods in a cluster. Supported billing methods are pay-as-you-go, subscription, and pay-by-preemptible-instance.
    • You can create multiple node pools that have auto scaling enabled in a cluster.
  • Nodes in different node pools can use different configurations.
    • Resource-related configurations: node specifications, vSwitches, system disks, data disks, security groups, and logon types.
    • Node-related configurations: user-defined data, CPU management policies, labels, and taints.

Limits

  • Node pools are available only in ACK clusters whose Kubernetes versions are 1.12.6-aliyun.1 or later.
  • The maximum number of node pools that can be created in a cluster varies by cluster type. For more information, see Quota limits.

Billing

Each node pool corresponds to a scaling group. No fees are charged for node pools. However, you are charged for the cloud resources that are used by node pools, such as ECS instances.

For more information about the billing of scaling groups, see Billing.

Note If you want to change the billing method of existing nodes in a node pool, log on to the ECS console. For more information, see Change the billing method of an ECS instance from pay-as-you-go to subscription.

Node pool types

ACK provides regular node pools and managed node pools.

Node pool type Description
Regular node pool A regular node pool contains one or more nodes that have the same configurations in a cluster. Each regular node pool corresponds to a scaling group. When you scale a regular node pool, ACK uses Auto Scaling to add or remove nodes. You can create and manage multiple regular node pools based on your requirements.
Notice Some system components are installed in the default node pool. When the system automatically scales the default node pool, the system components may become unstable. If you want to use the auto scaling feature, we recommend that you create a new node pool that has auto scaling enabled.
Managed node pool Managed node pools can automate O&M tasks for specific nodes. For example, managed node pools can automatically patch Common Vulnerabilities and Exposures (CVE) vulnerabilities or fix specific anomalies. This reduces your O&M work.

For more information, see Overview.

Comparison of regular node pools and managed node pools

Item Regular node pool Managed node pool
O&M Managed by users Partially managed by ACK
Scaling Manually performed Manually performed
Auto scaling Can be enabled Can be enabled
Billing method Pay-as-you-go or subscription Pay-as-you-go or subscription
Node update
  • Nodes must be manually updated.
  • Only kubelet versions can be updated.
  • Update is implemented by using in-place upgrades.
  • Nodes must be manually updated.
  • Various updates are supported, such as kubelet version update and CVE vulnerability fixing.
  • Update is implemented by replacing system disks
Node exception fixing Manually performed Automatically performed
Note Managed node pools help simplify your O&M work. However, you may still need to manually fix some complicated node exceptions. For more information about automatic node repair, see Auto repair.
Key management Key pairs and passwords are supported. Only key pairs are supported.
Operating system The following operating systems are supported:
  • CentOS
  • Alibaba Cloud Linux
  • Windows
The following operating systems are supported:
  • ContainerOS
  • CentOS
  • Alibaba Cloud Linux
  • Windows
Note
  • You must remove all nodes in a node pool before you can delete the node pool.
  • You can enable auto scaling for a node pool only when you create the node pool. After auto scaling is enabled for a node pool, the node pool has the following characteristics:
    • Manual scaling is not supported.
    • The pay-by-preemptible-instance billing method is supported.
    • Standard CPU instances, GPU-accelerated instances, and shared GPU-accelerated instances are supported in scaling activities.
    • You can disable auto scaling to convert an elastic node pool into a regular node pool. However, you cannot convert a regular node pool into an elastic node pool.
    For more information, see Auto scaling of nodes.