在安装 global
集群之前,所有节点(控制平面节点和工作节点)必须完成预处理。
安装包提供了一个用于快速配置节点的脚本。
解压安装包以获得 res
目录下的 init.sh
脚本文件。将脚本文件复制到节点,并确保你具有 root
权限。
执行脚本:
init.sh
不能保证所有以下检查都已妥善处理。你仍然需要继续执行以下步骤。
以下列出了必须在节点上完成的所有检查。根据节点的角色,所需的检查将有所不同。例如,有些检查仅适用于控制平面节点。
检查分为两类:
以下是检查列表:
操作系统和内核
transparent_hugepage=never
参数。cgroup.memory=nokmem
参数。ip_vs
、ip_vs_rr
、ip_vs_wrr
和 ip_vs_sh
是否已启用。nf_conntrack_ipv4
和(对于 IPv6)nf_conntrack_ipv6
是否已启用。global
集群计划使用 Kube-OVN
CNI,则必须启用内核模块 geneve
和 openvswitch
。swap
。用户和权限
root
权限,并且可以使用 sudo
而无需密码。/etc/ssh/sshd_config
中的 UseDNS
和 UsePAM
参数必须设置为 no
。systemctl show --property=DefaultTasksMax
返回 infinity
或非常大的值;否则,请调整 /etc/systemd/system.conf
。节点网络
hostname
必须遵循以下规则:
-
和 .
,但不能包含 .-
、..
或 -.
。/etc/hosts
中的 localhost
必须解析为 127.0.0.1
。/etc/resolv.conf
文件必须存在并包含 nameserver
配置,但不能包含以 172 开头的地址(禁用 systemd-resolved)。/etc/resolv.conf
文件不应配置搜索域(如必须配置,请参见 配置搜索域)。ip route
必须返回默认路由或指向 0.0.0.0
的路由。2379
、2380
、6443
、10249
~ 10256
8080
、12080
、12443
、16443
、2379
、2380
、6443
、10249
~ 10256
10249
~ 10256
global
集群使用 Kube-OVN 或 Calico,确保以下端口未被占用:
6641
、6642
179
172.16.x.x
~ 172.32.x.x
中的 IP 地址未被占用。如果该网络段中的 IP 被占用且无法更改,请联系技术支持。软件和目录要求:
ip
、ss
、tar
、swapoff
、modprobe
、sysctl
、md5sum
以及 scp
或 sftp
。lvm2
。/etc/systemd/system/kubelet.service
文件。/tmp
挂载参数不得包含 noexec
。global
集群组件冲突的包(见 移除冲突包)。/var/lib/docker
/var/lib/containerd
/var/log/pods
/var/lib/kubelet/pki
跨节点检查
global
集群中的节点之间不得存在网络防火墙限制。hostname
必须是唯一的。在安装之前,节点上可能已经在 docker/containerd 环境中运行的应用程序,或者可能已安装与 global
集群冲突的软件。因此,有必要检查并卸载冲突包。
/usr/local/bin/
等目录中是否存在其他可能冲突的二进制文件(例如与 docker、containerd、runc、podman、容器网络、容器运行时或 Kubernetes 相关的软件)。以下命令可供参考。
检查:
卸载:
在 Linux 操作系统中,/etc/resolv.conf
文件用于配置 DNS 客户端的域名解析设置。search
行指定了 DNS 查询的域名搜索路径。
配置要求
search
行中的域名数量应少于 domainCountLimit - 3
(默认 domainCountLimit
为 32)。MaxDNSSearchListChar
(默认值为 2048)。示例
domain1.com
,为 11。/etc/resolv.conf
文件中的 search
行未满足上述限制,可能导致 DNS 查询失败或性能下降。/etc/resolv.conf
文件之前,建议备份该文件。