Creating a Node Pool
Scenario
This section describes how to create a node pool and perform operations on the node pool. For details about how a node pool works, see Node Pool Overview.
Procedure
- Log in to the CCE console.
- Click the cluster name to access the cluster console. Choose Nodes in the navigation pane. In the right pane, click the Node Pools tab.
- In the upper right corner of the page, click Create Node Pool.
Basic Settings
Table 1 Basic settings Parameter
Description
Node Pool Name
Name of a node pool. By default, the name is in the format of Cluster name-nodepool-Random number. If you do not want to use the default name format, you can customize the name.
Enterprise Project
This parameter is available only for enterprise users who have enabled an enterprise project, and the cluster version must be v1.21.15-r0, v1.23.14-r0, v1.25.9-r0, v1.27.6-r0, v1.28.4-r0, or later.
After an enterprise project is selected, nodes will be created in the node pool within that project. To manage clusters and other resources like nodes, load balancers, and node security groups, you can use enterprise projects.
Node Configuration
You can configure the flavor and OS of a cloud server, on which your containerized applications run.Table 2 Node configuration parameters Parameter
Description
Node Type
Select a node type based on service requirements. Then, you can select a proper flavor from the node flavor list.
CCE standard clusters support the following node types:- ECS (VM): A VM ECS is used as a cluster node.
CCE Turbo clusters support the following node types:- ECS (VM): A VM ECS is used as a cluster node. A CCE Turbo cluster supports only the cloud servers that allow multiple network interfaces. Select a server type displayed on the CCE console.
- ECS (PM): A QingTian-backed bare metal server is used as a cluster node.
Specifications
Select a node flavor based on service requirements. The available node flavors vary depending on regions. For details, see the CCE console.
Container Runtime (Original Container Engine)
CCE supports Docker or containerd as the container runtime. Available runtimes vary by cluster type, version, and OS. Select the runtime shown on the CCE console. For details, see Mapping Between Node OSs and Container Runtimes.
OS
Select an OS type. Different types of nodes support different OSs.- Public image: Select a public image for the node.
- Private image: Select a private image for the node.
- Shared image: You can select an image shared by other users. This option is supported by BMS and PM nodes.
NOTE:Service container runtimes share the kernel and underlying calls of nodes. To ensure compatibility, select a Linux distribution version that is the same as or close to that of the final service container image for the node OS.
Security Hardening
Classified Protection of Cybersecurity (DJCP) checks identity authentication, access control, security audit, intrusion prevention, and malicious code prevention and hardens security.
This feature is available only when the cluster version is v1.23.12-r0, v1.25.7-r0, v1.27.4-r0, v1.28.2-r0, or later.
Login Mode
- Password
The default username is root. Enter the password for logging in to the node and confirm the password.
Be sure to remember the password as you will need it when you log in to the node.
- Key Pair
Select the key pair used to log in to the node. Private key pairs are accessible only to you. Account key pairs are shared with all users in the account.
A key pair is used for identity authentication when you remotely log in to the node. If no key pair is available, click Create Key Pair.
- Image password (supported for ECSs or PMs whose OSs are private images)
Retain the password of the selected image. To use this option, ensure that you have set a password for the selected image.
Storage Settings
Configure storage resources on a node for the containers running on it. Select a disk type and configure its size based on service requirements. For details about EVS disks, see Disk Types and Performance.Table 3 Configuration parameters Parameter
Description
System Disk
System disk used by the node OS. The value ranges from 40 GiB to 1,024 GiB. The default value is 50 GiB. For clusters v1.28 and later, the minimum system disk size is 20 GiB. However, approximately 15 GiB is reserved for the node OS image, component installation packages, and system component logs. Therefore, the usable space equals the total capacity minus the reserved space. Insufficient disk space can compromise node stability, so configure disk alarms to monitor free capacity.
System Disk Encryption: System disk encryption safeguards your data. Snapshots generated from encrypted disks and disks created using these snapshots automatically inherit the encryption setting. System disk encryption is supported only on VM-type ECSs.- Not encrypted is selected by default.
- If you select Enable (key name) for System Disk Encryption, choose an existing key. If no key is available, click View Key List and create a key. After the key is created, click the refresh icon next to the text box.
- If you select Enable (key ID) for System Disk Encryption, enter a KMS key (which can be shared by others) in the current region.
System Component Storage
Select a disk for storing system components.
- Data Disk: added for storing container runtime and kubelet components by default. The disk size ranges from 20 GiB to 32,768 GiB. The default value is 100 GiB. This data disk cannot be detached. Otherwise, the node will be unavailable.
- System Disk: stores CCE resources such as downloaded images, ephemeral storage for containers, and container stdout logs. If the system disk is fully occupied, it will negatively affect the stability of the node.
NOTE:In clusters v1.23.18-r0, v1.25.13-r0, v1.27.10-r0, v1.28.8-r0, v1.29.4-r0 and later, you can select the storage location of system components. If the CCE Node Problem Detector add-on is required in the cluster, install v1.19.2 or a later version. For details about this add-on, see CCE Node Problem Detector.
Data Disk
- A default data disk must be available for storing container runtime and kubelet components if System Component Storage is set to Data Disk. This data disk cannot be detached. Otherwise, the node will be unavailable.
- Default data disk: used for container runtime and kubelet components. The disk size ranges from 20 GiB to 32,768 GiB. The default value is 100 GiB.
- Other common data disks: You can set the data disk size to a value ranging from 10 GiB to 32768 GiB. The default value is 100 GiB.
- If System Component Storage is set to System Disk, you do not need to add a default data disk. In this case, all data disks are common ones. You can set the data disk size to a value ranging from 10 GiB to 32,768 GiB. The default value is 100 GiB.
NOTE:- If the node flavor is disk-intensive or ultra-high I/O, one data disk can be a local disk.
- Local disks may break down and do not ensure data reliability. Store your service data in EVS disks, which are more reliable than local disks.
Advanced Settings
Adding data disks
By default, non-default data disks are created as raw disks without any processing. The number of data disks that can be attached to a node varies by node flavor. For details, see the console.
Network Settings
Configure networking resources to allow node and containerized application access.Table 4 Configuration parameters Parameter
Description
VPC
The VPC to which the cluster belongs by default, which cannot be changed.
Node Subnet
The node subnet selected during cluster creation is used by default. You can choose another subnet instead.
- Multiple subnets: You can select multiple subnets in the same VPC for nodes. Newly added nodes will preferentially use the IP addresses from the top-ranking subnet.
- Single subnet: Only one subnet is configured for your node pool. If the IP addresses of a single subnet are insufficient, configure multiple subnets. Otherwise, a node pool scale-out may fail.
CAUTION:If you delete a subnet from the VPC, update the node pool's subnet configuration promptly. Otherwise, scale-out will fail repeatedly because no valid subnets are available.
Node IP
Random allocation is supported.
EIP
A cloud server can access the Internet only after an EIP is bound to it. To enable Internet access, bind an EIP to the server.
The default value is Do not use. If you select Auto assign, configure the following parameters:
- EIP Type
- Dynamic BGP: In a network using dynamic BGP, changes can be quickly addressed by adjusting configurations via the routing protocol, ensuring stability and optimal performance.
- Static BGP: In a network using static BGP, changes cannot be quickly addressed, and network configurations cannot be promptly adjusted, negatively affecting user experience.
- Billed By
- Bandwidth: Dedicated bandwidth, which is billed based on bandwidth size.
- Traffic: Dedicated bandwidth, which is billed by traffic you have actually used.
- Bandwidth Size: Select the bandwidth size (in Mbit/s) based on service requirements.
For details about automatically assigned EIPs, see EIP Billing and Lifecycle.
Associate Security Group
Security group used by the nodes created in the node pool. For better network performance, select no more than five security groups.
When a cluster is created, a node security group named {Cluster name}-cce-node-{Random ID} is created and used by default.
Traffic needs to pass through certain ports in the node security group to ensure node communications. Ensure that you have enabled these ports if you select another security group.
NOTE:After a node pool is created, its associated security group cannot be changed.
Payment SettingsTable 5 Payment parameters Parameter
Description
Autopay
After this function is enabled, CCE will automatically process the order and charge you each time a yearly/monthly node is added to a node pool. CCE will automatically apply any applicable discounts during payment and apply charges in the specified order. For details about the deduction sequence and rules, see Automatic Payments.
Advanced Settings
Configure advanced node capabilities such as labels, taints, and startup command.Table 6 Advanced configuration parameters Parameter
Description
Resource Tag
You can add resource tags to classify resources.
You can create predefined tags on the TMS console. These tags are available to all resources that support tags. You can use these tags to improve the tag creation and resource migration efficiency.
CCE will automatically create the CCE-Dynamic-Provisioning-Node=Node ID tag.
Kubernetes Label
A key-value pair added to a Kubernetes object (such as a pod). After specifying a label, click Add for more. A maximum of 20 labels can be added.
Labels can be used to distinguish nodes. With workload affinity settings, container pods can be scheduled to a specified node. For more information, see Labels and Selectors.
Kubernetes Taint
This parameter is left blank by default. You can add taints to configure anti-affinity for the node. A maximum of 20 taints are allowed for each node. Each taint contains the following parameters:- Taint Key: A key must contain 1 to 63 characters, starting and ending with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed. A DNS subdomain name can be used as a key prefix.
- Taint Value: A value must contain 1 to 63 characters, starting and ending with a letter or digit. Only letters, digits, hyphens (-), underscores (_), and periods (.) are allowed.
- Effect: Available options are NoSchedule, PreferNoSchedule, and NoExecute.
For details, see Managing Node Taints.
NOTE:For a cluster v1.19 or earlier, the workload may have been scheduled to a node before the taint is added. To avoid such a situation, select a cluster v1.19 or later.
Synchronization for Existing Nodes
After the options are selected, changes to resource tags and Kubernetes labels/taints in a node pool will be synchronized to all existing nodes in that pool.
New Node Scheduling
Default scheduling policy for the nodes newly added to a node pool. If you select Unschedulable, newly created nodes in the node pool will be labeled as unschedulable. In this way, you can perform some operations on the nodes before pods are scheduled to these nodes.
Scheduled Scheduling: After scheduled scheduling is enabled, new nodes will be automatically scheduled after the custom time expires.
- Disabled: By default, scheduled scheduling is not enabled for new nodes. To manually enable this function, go to the node list. For details, see Configuring a Node Scheduling Policy in One-Click Mode.
- Custom: the default timeout for unschedulable nodes. The value ranges from 0 to 99 in the unit of minutes.
NOTE:- If auto scaling of node pools is also required, ensure the scheduled interval is less than 15 minutes. If a node added through Autoscaler cannot be scheduled for longer than 15 minutes, Autoscaler determines that the scale out failed and triggers another scale out. Additionally, if the node cannot be scheduled for longer than 20 minutes, the node will be scaled in by Autoscaler.
- After this function is enabled, nodes will be tainted with node.cloudprovider.kubernetes.io/uninitialized during a node pool creation or update.
Max. Pods
Maximum number of pods that can run on the node, including the default system pods.
This limit prevents the node from being overloaded with pods.
This number is also decided by other factors. For details, see Maximum Number of Pods That Can Be Created on a Node.
ECS Group
An ECS group logically groups ECSs. The ECSs in the same ECS group comply with the same policy associated with the ECS group.
Anti-affinity: ECSs in an ECS group are deployed on different physical hosts to improve service reliability.
Select an existing ECS group, or click Create Cloud Server Group to create one. After the ECS group is created, click the refresh icon.
Pre-installation Script
Installation script command, in which CJK characters are not allowed. The script command will be Base64-transcoded. The characters in both the pre-installation and post-installation scripts are centrally calculated, and the total number of characters after transcoding cannot exceed 10,240.
A pre-installation script runs before Kubernetes is installed. If it fails, the Kubernetes installation will also fail.
Post-installation Script
Installation script command, in which CJK characters are not allowed. The script command will be Base64-transcoded. The characters in both the pre-installation and post-installation scripts are centrally calculated, and the total number of characters after transcoding cannot exceed 10,240.
The script will be executed after Kubernetes software is installed, which does not affect the installation.CAUTION:Do not use the reboot command in the post-installation script to restart the system immediately. Instead, use the shutdown -r 1 command to restart the system with a one-minute delay.
Agency
If you need to share cloud server resources with other accounts or delegate a more professional person or team to manage the resources, you can create an agency on IAM and grant the agency the permissions to manage cloud server resources. The delegated account can log in to the cloud system and switch to your account to manage resources. You do not need to share security credentials (such as passwords) with other accounts, ensuring the security of your account.
If you have created an agency, choose the agency from the drop-down list. If no agency is available, click Create Agency on the right to create one. For details about agencies, see Account Delegation.
Custom Prefix and Suffix
The custom name prefix and suffix of a node in a node pool. After the configuration, the nodes in the node pool will be named with the configured prefix and suffix. For example, if the prefix is prefix- and the suffix is -suffix, the nodes in the node pool will be named in the format of "prefix-Node pool name with five-digit random characters-suffix".
NOTICE:- A node name consists of a maximum of 56 characters in the format of "Prefix-Node pool name with five-digit random characters-Suffix".
- Both prefix and suffix can contain lowercase letters, digits, periods (.), and hyphens (-). A period must be immediately preceded or followed by a lowercase letter or digit. The prefix must start with a lowercase letter; the suffix must end with a lowercase letter or digit.
- A node name does not support the combination of a period (.) and special characters (such as .., .-, or -.).
- This function is available only in clusters of v1.28.1, v1.27.3, v1.25.6, v1.23.11, v1.21.12, or later.
- Click Next: Confirm.
- Read the instructions, select the check box for confirmation, and click Submit.
Helpful Links
- By default, a node pool has 0 nodes upon creation. You can specify a flavor and add the desired number of nodes. For details, see Scaling a Node Pool.
- If your application workloads have obvious peaks and troughs, enable node scaling to automatically scale in and out node resources, improving resource utilization. For details, see Creating a Node Auto Scaling Policy.
- CCE needs to reserve certain node resources for the kubelet component and system processes. For details, see Node Resource Reservation Rules.
- To configure the data disk space of a node based on service requirements, see Space Allocation of a Data Disk.
- The maximum number of pods supported by each node varies based on parameter settings. For details, see Maximum Number of Pods That Can Be Created on a Node.
- To automatically execute scripts for custom settings when creating a node, see Executing the Pre- or Post-installation Script During Node Creation.
- To remove a node from a node pool, do not delete the node directly. Instead, adjust the number of nodes in the node pool. For details, see Scaling a Node Pool.
- If your node pool malfunctions, locate the fault by referring to What Should I Do If a Node Pool Is Abnormal?