All Products
Search
Document Center

Container Service for Kubernetes:Node pool overview

Last Updated:Nov 20, 2023

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, compares regular node pools with managed node pools, and describes the features, billing, terms, and lifecycle of node pools.

Table of contents

Introduction

Container Service for Kubernetes (ACK) introduces node pools to improve the efficiency of node management. A node pool is a collection of nodes in an ACK cluster. You can create one or more node pools of different types and configurations for each ACK cluster. The configurations of a node pool consist of node attributes, such as the node type, zone, labels, and taints. You can configure these attributes when you create the node pool or modify the attributes after the node pool is created. For more information about how to create a node pool, see Create a node pool.

You can scale out a node pool to add one or more Elastic Compute Service (ECS) nodes with the same configuration. For more information about how to scale out a node pool, see Scale a node pool. You can also add existing nodes to a node pool. For more information about how to add an existing node, see Add existing ECS instances to an ACK cluster.

By creating node pools, you can easily manage and maintain cluster nodes. For example, you can manage node configurations, maintain nodes, configure auto scaling, create managed node pools, and Schedule an application pod to a specific node pool. For more information about the features provided by node pools, see Compare regular node pools and managed node pools.

After you create node pools, you can deploy and manage different types of nodes in the cluster.

  • You can create node pools that run different operating systems, such as CentOS, Windows, and Alibaba Cloud Linux, in a cluster.

  • You can create node pools that use different container runtimes, such as Sandboxed-Container and Docker, in a cluster.

  • You can create node pools that use different billing methods, such as pay-as-you-go, subscription, and pay-by-preemptible-instance, in a cluster.

  • You can create multiple node pools that have auto scaling enabled in a cluster.

nodepool

Introduction to regular node pools and managed node pools

Node pool type

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

Note

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 information, see Managed node pool overview.

Comparison of features

Feature

Regular node pool

Managed node pool

O&M

Managed by users.

Partially managed by ACK.

O&M time window

No O&M time window needs to be set.

An O&M time window must be set. Managed node pools will automatically perform O&M activities, such as CVE vulnerability patching, during the specified O&M time window.

Node repair

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 anomalies. For more information about automatic node repair, see Auto repair of managed node pools.

CVE vulnerability patching

Manually triggered.

Automatically triggered.

Note

CVE vulnerability patching is an advanced feature provided by Security Center. To use CVE vulnerability patching, you must purchase Security Center Enterprise Edition or higher. ACK does not charge additional fees. For more information, see Vulnerability fixes.

Component update

Manually performed.

Automatically performed.

Minor kubelet version update

Manually performed.

Automatically performed.

Fast ContainerOS node scale-out

Not supported.

Supported.

ContainerOS nodes can be quickly scaled out. Compared with scaling out 1,000 CentOS nodes which requires 330 seconds for 90% of the nodes to be ready, it requires only 53 seconds if you use ContainerOS nodes.

Note

ContainerOS is an operating system that Alibaba Cloud provides for containerized development. ContainerOS is fully compatible with Kubernetes. For more information about ContainerOS, see ContainerOS overview.

Operating systems

The following operating systems are supported:

  • Alibaba Cloud Linux

  • CentOS

  • Windows

The following operating systems are supported:

  • Alibaba Cloud Linux

  • CentOS

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 scale-out 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 to an elastic node pool.

    For information, see Auto scaling of nodes.

Features of node pools

The following table describes the features provided by node pools.

Feature

Description

Create a node pool

Create a node pool. You need to specify the configuration of the node pool.

Modify a node pool

Modify the configuration of a node pool.

Important

In most cases, after you modify a node pool, the modified configuration applies only to newly added nodes. Only in certain cases such as synchronizing the existing node labels and taints, the modified configuration also applies to the existing nodes in the cluster. Node pool O&M operations, such as node pool upgrades, node repairing, vulnerability patching, and kubelet configuration customization, will modify the configuration of the existing nodes in the node pool.

Scale a node pool

Modify the desired number of nodes in a node pool.

  • If you increase the value, nodes are added to the node pool.

  • If you decrease the value, nodes in the node pool are released in descending order of creation time.

Add existing ECS instances to an ACK cluster

Add existing nodes that do not belong to any clusters to a node pool. However, this feature has limits. For more information about the limits on adding existing nodes, see Limits.

Remove a node

Remove one or more specified nodes from a node pool. The removed nodes no longer belong to the cluster or node pool. You can specify whether to drain a node and release the instance before you remove a node.

Node pool updates

Update the operating system image, runtime, and kubelet for all nodes in a node pool. To reduce the negative impact on cluster workloads, we recommend that you update the nodes in batches. After the update is complete, nodes that are newly added to the node pool all use the updated configuration.

Note

Managed node pools can automatically complete the update within the O&M time window.

Repair nodes in a node pool

Repair abnormal nodes in a node pool. Nodes are repaired one after one.

Note

Managed node pools can automatically repair abnormal nodes.

CVE Patching

Patch vulnerabilities in the nodes of a node pool. To reduce the negative impact on cluster workloads, we recommend that you patch the nodes in batches.

Note

Managed node pools can automatically patch vulnerabilities within the O&M time window.

Customize the kubelet configurations of a node pool

Modify the kubelet configuration of the nodes in a node pool. The modified kubelet configuration also applies to nodes that are newly added to the node pool.

Auto scaling of nodes

Auto Scaling can add regular instances, GPU-accelerated instances, and preemptible instances to node pools based on the actual loads and scaling policy. You can specify multiple zones, instance types, and scaling modes to meet the requirements of different scenarios and reduce the cost.

Billing of node pools

Node pools are free of charge. However, you must pay for the cloud resources, such as ECS instances, used in node pools.

Note

If you want to change the billing method of the 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.

Terms related to node pools

Term

Description

scaling group

Node pools use scaling groups to manage nodes. A scaling group is a collection of ECS instances. These instances are considered logical resources used for auto scaling and management purpose. 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 information, see Overview.

Important

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.

scaling configuration

Node pools use the scaling configuration to manage the configurations of nodes. The scaling configuration is used by ECS instances as a scaling template when auto scaling is enabled. When Auto Scaling triggers a scale-out activity, Auto Scaling creates ECS instances based on the scaling configuration.

Important

Do not use the Auto Scaling console or call the Auto Scaling API to modify the scaling configuration in case some node pool features become unavailable. We recommend that you configure and manage nodes by using node pools.

scaling activity

Scaling activities are triggered when a node pool is scaled in or out. After a scaling activity is triggered, the system will automatically complete the scaling operation and generate a record. You can view the historical scaling activities of a node pool in the console.

replace system disks

When the system performs certain node pool-related operations, it initializes the nodes in the node pool by replacing the system disk of the nodes. For example, the system replaces the system disk of the nodes when automatically adding existing nodes to a node pool or updating the image used by the nodes. The Infrastructure as a Service (IaaS) attributes of the nodes, such as the node name, instance ID, and IP address, remain unchanged after the nodes are initialized. However, the data in the system disk of the nodes will be deleted in order to initialize the nodes. The data disks that are mounted to the nodes are not affected.

Important

Do not use system disks to persist data. We recommend that you use data disks instead.

in-place upgrade

You can upgrade the 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.

node pool lifecycle

The following figure describes the states of a node pool and the transitions between the states

transitions between node pool states

State

Description

Initializing

The node pool is being initialized.

Active

The node pool is created.

Failed

The node pool failed to be created.

Scaling out

The node pool is being scaled out or nodes are being added to the node pool.

Updating

The configuration of the node pool is being updated.

Removing

Nodes are being removed from the node pool.

Upgrading

The node pool is being upgraded.

Repairing

Node repair is being performed on the node pool.

Deleted (invisible to users)

The node pool is deleted.

References