Overview
Nodes are the basic components of a cluster. Nodes added to the cluster can be virtual machines or physical servers. Each node contains the basic components required to run Pods, including Kubelet, Kube-proxy, Container Runtime, etc.
Users with platform management permissions can manage the nodes in the cluster.
Caution: Adding or removing nodes for an access cluster is not supported.
Type of node
-
Controller Node: Responsible for running components such as kube-apiserver, kube-scheduler, kube-controller-manager, etcd, container network, and some management components of the platform in the cluster.
-
When allowing applications to be deployed on controller nodes, controller nodes can also be used as compute nodes.
-
At least 1 control node can be added, 2 is not supported, and if the number is greater than or equal to 3, it is a high-availability cluster (high-availability clusters are recommended to be set to an odd number, and 3 or 5 is recommended).
-
When the number of controller nodes is greater than or equal to 3, the cluster has multi-backup disaster recovery capability, making it a highly available cluster.
-
-
Compute node: Responsible for hosting the business container groups running on the cluster. The required number of compute nodes in the cluster can usually be planned based on the business volume.
Linux node availability check
If you need to build your own cluster, please refer to the table below to check whether the relevant configurations of all nodes in the cluster meet the requirements. Make sure that all necessary conditions are met, otherwise the cluster deployment may fail.
| Check item | Necessary conditions |
|---|---|
| SSH Connection Check | Check if the password or private key for SSH is correct; SSH connection timeout error; SSH connection other errors. |
| Host SSH User Permission Check | The username of the host must be ROOT and the password must be correct; or a SUDO user without a password. |
| Check SSHD | The UseDNS and UsePAM parameters in the /etc/ssh/sshd_config configuration file must be set to no. |
| Operating System and Kernel Version | Refer to Supported Operating Systems and CPU Models . |
| Kernel Modules | Modules iptable_nat, br_netfilte, and nf_conntrack must exist. |
| Kernel Network Modules | Network kernel modules require: |
| Kernel Parameters | ipv6.disable=0 needs to be configured. |
| Check System Tools | The following system tools must exist on the host: ip, ss, tar, swapoff, modprobe, sysctl, md5sum, and either scp or sftp. |
| Access tmp Directory | The account must have permission to execute ls and cat commands in the /tmp directory. |
| CPU / Memory | At least 2 cores for CPU; at least 2G for memory. |
| Check Hostname | Get the hostname of the host, which can only start or end with a-z or 0-9, and consist of a-z, 0-9, -, and . (excluding consecutive - or .), with a maximum length of 36 characters. Moreover, the hostname of any two clusters cannot be the same. |
| Check kubelet Service | The file /etc/systemd/system/kubelet.service cannot exist. |
| Swap Partition | Turn it off. |
| ETCD Directory | The data directory is empty. |
| Firewall | Turn it off. |
| SELinux | Turn it off. |
| Apparmor | 1. The Apparmor service is not turned off, and the file /sys/module/apparmor/parameters/enabled does not exist or exists and is set to Y. 2. Turn off the Apparmor service. |
| Default Route | The server has a default route or a route pointing to the address 0.0.0.0. |
| Port Availability | Check if the following listening ports are occupied: |
| Network Interface Card | Both the cluster and host configured network interface cards exist. |
| Hardware architecture | The hardware architecture (X86, ARM) of the node must be the same as that of the cluster. |
| /etc/hosts | There should be no duplicate IP addresses in the hosts file. |
| Time zone | The time zone of all hosts must be the same. |
| Host time | The synchronization error between all hosts must be less than 10 seconds. |
| IP address | The IP address must exist. If IPv6 address is enabled, the IPv6 address must also exist and meet the following conditions: 127.0.0.1, 0:0:0:0:0:0:0:0 or ::. 224.0.0.0 to 239.255.255.255, or an IPv6 address starting with FF. 169.254.0.0/16* address block, fe80::/10* address block. 255.255.255.255. |
| IP segment | The IP address of the required network segment 172.16.x.x - 172.32.x.x for Docker must not be occupied. If the IP address of this network segment is already occupied and cannot be changed, modify the Docker configuration file on all nodes to add the bip parameter to avoid Docker using the occupied IP address. |
| Node connectivity | The node and its SSH port can be accessed normally. |
| Node access to the platform | The node can access the platform through the platform address. |
| Whether the node can access the platform mirror repository | The node can access the platform’s mirror repository. |
| Whether the node IP is in any of the configured network segments | For non-underlay scenarios with the default subnet, the node IP is not in any of the configured network segments (default subnet segment, container subnet segment, Service subnet segment, Join subnet segment). |
| Check DNS | The /etc/resolv.conf file must exist, have a configuration item for nameserver, and not allow addresses starting with 127 to be configured. |
| Check pki directory | The pki directory can be empty or not exist. |
| Check cri directory space | Check the current available size of the specified directory /var/lib/containerd or /var/lib. |
| Check timeout | Check that the default timeout is around 110s. |
| Check non-existent directories | The /var/log/pods directory cannot exist. |
| /usr/bin service | If the “docker”, “containerd”, “runc” services exist, they must be in the /usr/bin directory. |
Supported operating systems and CPU models
| Architecture | CPU Model | Supported Operating System | Version Information | Remarks | |
|---|---|---|---|---|---|
| Promised Support | Test Verification | ||||
| ARM | Kunpeng 920 | Kylin |
Kylin Linux Advanced Server Release V10
Kernel version: Only the kernel version that comes with the official operating system is allowed, and it must be consistent with the test-verified kernel version (e.g., A.B.C). The part after "-" can be inconsistent. |
|
Flannel network plugin is not supported. Network issues occasionally occur in the operating systems of versions [Kylin V10], [Kylin V10-SP1], and [Kylin V10-SP2]. Only supported for use after upgrading legacy projects. Please use version [Kylin V10-SP3] for new projects. |
| x86 | - | Kylin |
Kylin Linux Advanced Server Release V10
Kernel version: Only the kernel version that comes with the official operating system is allowed, and it must be consistent with the test-verified kernel version (e.g., A.B.C). The part after "-" can be inconsistent. |
|
Flannel network plugin is not supported. Network issues occasionally occur in the operating systems of versions [Kylin V10], [Kylin V10-SP1], and [Kylin V10-SP2]. Only supported for use after upgrading legacy projects. Please use version [Kylin V10-SP3] for new projects. |
| Ubuntu |
Ubuntu 20.04, 22.04 Kernel version: Only the kernel version that comes with the official operating system is allowed, and it must be consistent with the test-verified kernel version (e.g., A.B.C). The part after "-" can be inconsistent. HWE versions of Ubuntu are not supported |
|
|||
| Redhat |
Redhat 7.8, 8.0~8.6 Kernel version: Only the kernel version that comes with the official operating system is allowed, and it must be consistent with the test-verified kernel version (e.g., A.B.C). The part after "-" can be inconsistent. |
|
|
||
| CentOS |
CentOS 7.6, 7.7, 7.8, 7.9 3.10.0-1127 ≤ Kernel version < 3.11 |
CentOS 7.6, 7.7, 7.8, 7.9 Kernel version: 3.10.0-1160, 3.10.0-1127 |
|
||