Node Preprocessing
Before installing the global cluster, all nodes (control plane nodes and worker nodes) must complete preprocessing.
TOC
Supported OS and Kernel Versions
The following table lists the supported operating systems, their validated versions, and the corresponding tested kernel versions.
Only the kernel version shipped with the official operating system is supported. The kernel version must match the tested version (for example, A.B.C); the suffix after the dash (“-”) may differ.
If the OS, kernel version, or CPU architecture does not meet the requirements, please contact technical support.
x86
- RHEL 7.8:
3.10.0-1127.el7.x86_64 - RHEL 8.0:
4.18.0-80.el8.x86_64 - RHEL 8.6:
4.18.0-372.9.1.el8.x86_64
RHEL 7.8 does not support Calico Vxlan IPv6.
ARM
- Kylin V10 SP3:
4.19.90-52.22.v2207.ky10.aarch64
- Kylin V10, V10-SP1, and V10-SP2 have known kernel issues that may cause NodePort network access failures; it is recommended to upgrade to Kylin V10-SP3.
- ARM architecture only supports
Kunpeng 920. For other models, please contact technical support.
Execute the Quick Configuration Script
The installation package provides a script for quickly configuring nodes.
Unzip the installation package to obtain the init.sh script file in the res directory. Copy the script file to the nodes and ensure that you have root privileges.
Execute the script:
init.sh cannot guarantee that all of the following checks are properly handled. You still need to continue with the steps below.
Node Checks
The following lists all the checks that must be completed on the nodes. Depending on the node's role, the required checks will vary. For example, some checks apply only to control plane nodes.
Checks are divided into two categories:
- ✅ Indicates a check that must pass.
- ⚠️ Indicates a check that must be met in specific scenarios. Please determine whether the corresponding conditions are met according to the instructions. If they are, you must resolve them.
The following is the list of checks:
-
OS and Kernel
- ✅ The machine's grub boot configuration must have the
transparent_hugepage=neverparameter. - ✅ CentOS 7.x system machine's grub boot configuration must have the
cgroup.memory=nokmemparameter. - ✅ Check whether the kernel modules
ip_vs,ip_vs_rr,ip_vs_wrr, andip_vs_share enabled. - ⚠️ When the kernel version is lower than 4.19.0 (or RHEL is lower than 4.18.0), check whether the kernel modules
nf_conntrack_ipv4and (for IPv6)nf_conntrack_ipv6are enabled. - ⚠️ If the
globalcluster plans to useKube-OVNCNI, the kernel modulesgeneveandopenvswitchmust be enabled. - ✅ Disable apparmor/selinux and firewall.
- ✅ Disable
swap.
- ✅ The machine's grub boot configuration must have the
-
Users and Permissions
- ✅ The node's SSH user has
rootprivileges and can usesudowithout the password. - ✅ The
UseDNSandUsePAMparameters in/etc/ssh/sshd_configmust be set tono. - ✅ Executing
systemctl show --property=DefaultTasksMaxreturnsinfinityor a very large value; otherwise, adjust/etc/systemd/system.conf.
- ✅ The node's SSH user has
-
Node Network
- ✅
hostnamemust comply with the following rules:- No more than 36 characters.
- Starts and ends with a letter or number.
- Contains only lowercase letters, numbers,
-, and., but cannot contain.-,.., or-..
- ✅
localhostin/etc/hostsmust resolve to127.0.0.1. - ✅ The
/etc/resolv.conffile must exist and containnameserverconfigurations, but must not contain addresses starting with 172 (disable systemd-resolved). - ⚠️ The
/etc/resolv.conffile should not configure search domains (if you must configure them, see Configure Search Domain). - ✅ The machine's IP address cannot be a loopback, multicast, link-local, all-0, or broadcast address.
- ✅ Executing
ip routemust return a default route or a route pointing to0.0.0.0. - ✅ The nodes must not occupy the following ports:
- Control plane nodes:
2379,2380,6443,10249~10256 - Node where the installer is located:
8080,12080,12443,16443,2379,2380,6443,10249~10256 - Worker nodes:
10249~10256
- Control plane nodes:
- ✅ If the
globalcluster uses Kube-OVN or Calico, ensure that the following ports are not occupied:- Kube-OVN:
6641,6642 - Calico:
179
- Kube-OVN:
- ⚠️ Ensure that the IP addresses in the network segment
172.16.x.x~172.32.x.xrequired by Docker are not occupied. If the IPs in this network segment are occupied and cannot be changed, please contact technical support.
- ✅
-
Software and Directory Requirements:
- ✅ Must have the following installed:
ip,ss,tar,swapoff,modprobe,sysctl,md5sum, andscporsftp. - ⚠️ If you plan to use local storage TopoLVM or Rook, you need to install
lvm2. - ✅ The
/etc/systemd/system/kubelet.servicefile is not allowed to exist. - ✅
/tmpmount parameters must not containnoexec. - ✅ Remove packages that conflict with
globalcluster components (see Remove Conflicting Packages). - ✅ The following files must be deleted if they exist:
/var/lib/docker/var/lib/containerd/var/log/pods/var/lib/kubelet/pki
- ✅ Must have the following installed:
-
Cross-Node Checks
- ✅ There must be no network firewall restrictions between nodes in the
globalcluster. - ✅ The
hostnameof each node in the cluster must be unique. - ✅ The time zones of all nodes must be unified, and the time synchronization error must be ≤ 10 seconds.
- ✅ There must be no network firewall restrictions between nodes in the
Appendix
Remove Conflicting Packages
Before installation, applications may already be running in the docker/containerd environment on the nodes, or software conflicting with the global cluster may have been installed. Therefore, it is necessary to check and uninstall conflicting packages.
- To avoid application interruption or data loss, be sure to confirm whether there are conflicting software packages. When a conflict is found, please develop an application switching plan and back up your data before uninstalling.
- After uninstalling conflicting packages, you still need to check whether there are other potentially conflicting binary files in directories such as
/usr/local/bin/(such as software related to docker, containerd, runc, podman, container network, container runtime, or Kubernetes).
The following commands can be used for reference.
Check:
Uninstall:
Configure Search Domain
In Linux OS, the /etc/resolv.conf file is used to configure DNS client domain name resolution settings. The search line specifies the domain search path for DNS queries.
Configuration Requirements
- Number of Domains: The number of domains in the
searchline should be less thandomainCountLimit - 3(defaultdomainCountLimitis 32). - Length of Single Domain: Each domain name must not exceed 253 characters.
- Total Character Length: The total character count of all domain names and spaces must not exceed
MaxDNSSearchListChar(default is 2048).
Example
- The total number of domains is 3.
- The length of a single domain, such as
domain1.com, is 11. - The total character length is 35, i.e., 11 + 11 + 11 + 2 (two spaces).
- If the
searchline in the/etc/resolv.conffile does not meet the above limitations, it may cause DNS query failures or performance degradation. - Before modifying the
/etc/resolv.conffile, it is recommended to back up the file.