马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
从零搭 Kubernetes 集群,Ubuntu 22.04 和 CentOS 的核心操作是同一套,只是命令写法不同。本文记录 Ubuntu-22.04 上搭建 k8s 1.30.1 集群前的系统环境准备:关 swap、关 SELinux、关防火墙、统一时区、改主机名和 hosts、开启 IPv4 流量转发,每一步都说明为什么这么做,以及做完怎么验证。
整体思路与一条重要提醒
目的是把分布式计算容器化交给 k8s 调度,所以从装系统开始就要把节点彼此能通、时间能对齐、内核转发能打开这些基础打成一片。特别提醒:集群 init 之后,下一步命令最好等上一步执行完、随时用 kubectl get pods -A 看 Pod 状态再动手,只要还有一个没 Running 就别急着往下走。
1、关闭 swap
官方要求关掉 swap,也就是虚拟内存相关部分,因为 Kubernetes 读不了 swap 里的数据,开着容易引发内存相关故障。先清掉正在占用的部分暂时关闭:
swapoff -a
再改配置文件永久关闭,把 /etc/fstab 里关于 swap 的那一行注释掉即可。
2、关闭 SELinux
Ubuntu 本身没有这个东西,可以不管;CentOS 执行下面这条:把 /etc/selinux/config 里的 SELINUX=enforcing 改成 disabled,然后重启系统。SELinux 属于系统安全范畴,懂的人可以自己配策略而不必关,但那很麻烦,大多数人直接关掉。
sudo sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
节点之间要互相通讯,防火墙开着容易出事,先关掉:
ufw disable
# 或者
systemctl disable --now ufw
4、统一时区
这一步关系到集群机器之间的通讯,需要一个统一的时间基准,这里设为上海时区:
timedatectl set-timezone Asia/Shanghai
systemctl restart systemd-timesyncd.service
timedatectl status
# 或者
date
用 timedatectl status 或 date 看一眼时间对不对即可。
5、修改 /etc/hosts 和 /etc/hostname
这么做是为了后面填地址方便,也是 Kubernetes 识别主机名的前提。往 hosts 里追加本机 IP 和主机名:
echo "192.168.10.10 k8s-master" | sudo tee -a /etc/hosts
其他节点想加也可以一起加进去。改主机名文件同样有两种办法,用 hostnamectl 命令或者直接写文件,这里直接改文件:
echo "k8s-master" | sudo tee /etc/hostname
改完最好重开一个 SSH 终端,或者干脆重启一次,让主机名生效。
6、开启 IPv4 流量转发
这一步是让各台主机担当起网络路由的角色,后面还要装网络插件,得有一个路由器才能让 Pod 之间互相通讯。按下面把 IPv4 转发打开:
cat > /etc/sysctl.d/k8s.conf <<EOF
net.ipv4.ip_forward = 1
EOF
sysctl --system
检查清单
- swapoff -s 或 free -h 看 swap 已经归零
- sestatus 在 CentOS 上确认 disabled
- ufw status 显示 inactive
- timedatectl 确认时区为 Asia/Shanghai
- hostname 与 /etc/hosts 里本机那条对得上
- sysctl net.ipv4.ip_forward 返回 1
这几项都落实之后,节点就具备装容器运行时、跑 kubeadm init 的条件了。
qidao123.com企服评测-应用市场 编辑提示 |