The node pool feature is currently in beta. To join the beta test, please submit a ticket.
To help you better manage nodes in a Kubernetes cluster, TKE introduced the concept of a node pool. Basic node pool features allow you to conveniently and quickly create, manage, and terminate nodes and dynamically scale nodes in and out.
The following figure shows the overall architecture of a node pool.
Generally, all nodes in a node pool share the following attributes:
In addition, TKE extends the following attributes for a node pool:
When you need to use a large-scale cluster, we recommend that you use a node pool to manage nodes to improve the usability of the large-scale cluster. The following table describes multiple use cases for managing large-scale clusters and shows the effect of node pools in each use case.
|A cluster includes many heterogeneous nodes with different model configurations.||A node pool allows you to manage the nodes by groups in a unified manner.|
|A cluster needs to frequently scale nodes in and out.||A node pool reduces operating costs.|
|The scheduling rules for applications in a cluster are complex.||Node pool labels allow you to quickly specify service scheduling rules.|
|Routine maintenance is required for nodes in a cluster.||A node pool allows you to conveniently upgrade the Kubernetes version and the Docker version.|
|Create||Add a node pool||We recommend that you do not create more than 20 node pools for a single cluster.|
||When you delete a node pool, if you select to terminate nodes, the nodes will not be retained. You can create new nodes later if required.|
|Enable auto scaling||When auto scaling is enabled for a node pool, the number of nodes in the node pool is automatically adjusted according to the workload of the cluster.||Do not enable or disable auto scaling in the Scaling Group console.|
|Disable auto scaling||When auto scaling is disabled for a node pool, the number of nodes in the node pool is not automatically adjusted according to the workload of the cluster.|
|Adjust node pool size||You can directly adjust the number of nodes in a node pool. If you decrease the number of nodes, a random node in a scaling group will be removed.||It’s not recommended to manually adjust the size of a node pool when auto scaling is enabled.|
|Adjust node pool configurations||You can modify the node pool name, the number range of nodes in a scaling group, and the Kubernetes Label and Taints attributes for nodes in the node pool.||Modifications of the Label and Taints attributes take effect for all the nodes in a node pool and may cause Pods to be rescheduled.|
|Add an existing node||You can add a non-clustered Pod to a node pool if the following requirements are met:
||In normal cases, we recommend that you directly create a node pool instead of adding an existing node to a node pool.|
|Remove a node||You can remove a manually added node from a node pool and retain the t in the cluster. Nodes cannot be directly removed from a scaling group.||We recommend that you add or remove nodes in a node pool by adjusting the size of the node pool.|
|Convert a scaling group into a node pool||
||This operation is irreversible. Be sure you understand the features of node pools before conversion.|
You can log in to the Tencent Kubernetes Engine console and perform node pool-related operations according to the following documents: