Node Pool Overview

Last updated: 2020-09-18 17:01:04

    Introduction

    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.

    • When a Pod in the cluster cannot be scheduled due to insufficient resources, scale-out will be triggered automatically, reducing labor costs.
    • When a scale-in condition is met, such as when a node is idle, scale-in will be triggered automatically, reducing resource costs.

    The following figure shows the overall architecture of a node pool.

    Generally, all nodes in a node pool share the following attributes:

    • Node operating system
    • Launch parameters of Kubernetes components for nodes
    • Custom launch script for nodes
    • Kubernetes Label and Taints settings for nodes

    In addition, TKE extends the following attributes for a node pool:

    • Node pool-level operating system
    • Maximum number of Pods for each node in a specific node pool

    Use Cases

    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.

    Use Case Effect
    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.

    Features and Notes

    Feature Description Notes
    Create Add a node pool We recommend that you do not create more than 20 node pools for a single cluster.
    Delete
    • When you delete a node pool, you can select whether to terminate nodes in the node pool.
    • Retained nodes do not belong to any scaling group or node pool.
    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:
    • The Pod and the cluster belong to the same VPC.
    • The Pod is not used by other clusters and has the same model and billing mode configurations as the node pool.
    You can also add a node-without-pool to a node pool if the Pods in the node have the same model and billing mode configurations as the node pool.
    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
    • You can convert an existing scaling group into a node pool. After conversion, the node pool fully inherits the features of the original scaling group and the information about the scaling group will not be displayed.
    • After all existing scaling groups in a cluster have been converted into node pools, this feature is disabled.
    This operation is irreversible. Be sure you understand the features of node pools before conversion.

    Relevant Operations

    You can log in to the Tencent Kubernetes Engine console and perform node pool-related operations according to the following documents:

    Was this page helpful?

    Was this page helpful?

    • Not at all
    • Not very helpful
    • Somewhat helpful
    • Very helpful
    • Extremely helpful
    Send Feedback
    Help