To facilitate the grouping, management, and operation of cloud-based ECS nodes, ACK One registered clusters provide the node pool feature that helps you manage Elastic Compute Service (ECS) instances that are added to the clusters in groups. A node pool is a logical collection of one or multiple nodes. You can manage and maintain the nodes in a node pool in a centralized manner. For example, you can centrally upgrade and configure auto scaling for the nodes in a node pool. You can also group computing resources into different node pools to achieve resource isolation. For example, you can create separate node pools for different types of workloads or create different node pools to manage nodes with different attributes.
Node pool
You can consider a node pool as a configuration template that is applied to all nodes that are added to the node pool. You can create one or more node pools of different types and configurations in a Container Service for Kubernetes (ACK) cluster. The configurations of a node pool consist of node attributes, such as the node specifications, zones, operating system, labels, and taints. You can configure node attributes when you create a node pool or modify node attributes after the node pool is created. For more information, see Create a node pool.
You can use a single node pool to reduce management and configuration complexity. You can also use multiple node pools to implement fine-grained resource isolation and manage a hybrid deployment of different node types.
Single node pool | Multiple node pools |
Manage compute resources for multiple teams or workloads through a single node pool to simplify operations and maintenance. A single node pool supports the following features.
Instances with different operating systems and CPU architectures (Arm and x86) cannot be mixed. | Create multiple node pools to provide independent compute resources for different workloads or teams. This helps avoid resource contention and potential security risks. This is suitable for the following scenarios.
|
When you use multiple node pools, you can use scheduling policies to define the priority of different node pools to optimize resource and cost management. For example:
Control the provisioning priority of compute resources with different costs, such as spot instances and subscription instances, to reduce overall costs.
Allocate different instance types based on workload requirements, such as the required ratio of x86 to Arm architectures.
Node pool creation procedure
Basic features of node pools
The node pools in ACK One registered clusters provide the following features to facilitate node management.
Feature | Description |
| |
| |
| |
You can use labels and taints to manage and schedule resources in Kubernetes clusters. Labels can be used to identify and classify Kubernetes resources, such as nodes. Taints can be used by nodes to repel specific pods. | |
You can remove nodes that are no longer needed from a node pool. To prevent unexpected issues during node removal, we recommend that you remove nodes based on the standard removal procedure. |
Node pool billing
The use of node pools and their automated O&M capabilities is free of charge. However, you are charged for the cloud resources within the node pool, such as ECS instances, by the corresponding cloud services.
For more information about the billing of ECS instances, see Billing overview.
To change the billing method of existing nodes in a node pool, see Change the billing method of an instance from pay-as-you-go to subscription. Changing the billing method of a node pool affects only new nodes that are scaled out. It does not change the billing method of existing nodes in the node pool.
For more information about the billing of scaling groups, see Auto Scaling billing.
Glossary
Before you use node pools, we recommend that you familiarize yourself with the following concepts and terms.
Scaling group: When you scale a node pool in or out, ACK performs scale-out and node removal operations using the Auto Scaling (ESS) service. Each node pool has a one-to-one relationship with an Auto Scaling scaling group. A scaling group is a collection of one or more ECS instances (worker nodes).
Scaling configuration: A node pool uses a scaling configuration to manage node configurations. A scaling configuration is a template that is used to create ECS instances during elastic scaling. When a scaling activity is triggered, Auto Scaling uses the specified scaling configuration to automatically create ECS instances.
Scaling activity: Every scale-in, scale-out, node addition, or node removal in a node pool triggers a scaling activity. After a scaling activity is triggered, all scaling actions are automatically performed by the system and the relevant records are saved. You can view the scaling activity history of a node pool.
Replace the system disk: Some operations in a node pool, such as automatically adding existing nodes and changing the container runtime, initialize the node by replacing its system disk. The instance properties of the node, such as node name, instance ID, and IP address, do not change, but the data on the node's system disk is deleted. Data disks that are attached to the node are not affected.
When ACK replaces a system disk, it drains the node. This process evicts the pods on the node to other available nodes and adheres to the Pod Disruption Budget (PDB). To ensure high service availability, we recommend that you use a multi-replica deployment to distribute workloads across multiple nodes and configure PDBs for critical services. This helps control the number of pods that can be disrupted at the same time.
In-place upgrade: An upgrade method that serves as an alternative to replacing the system disk. This method directly updates and replaces the required components on the node. An in-place upgrade does not replace the system disk or reinitialize the node, and the data on the node is not affected.