PVE虚拟机搭建K8s集群
创建虚拟机
选择 pve3节点安装虚拟机,此节点的内网网段为 172.110.0.0,在不同的局域网段
选择本地提供的镜像
存储页磁盘总线选择SATA,存储选择HDD卷
Master 节点设置的CPU数量为16(不能超过20)
这里的内存应该给的再多一点,因为发现内存的使用率一直在 90%左右
选择vmbr1网卡,这个网卡只能在内网网段使用
创建的虚拟机相关配置
虚拟机名称 | IP地址 | 主机名称 | 用户名 | 用途 |
---|---|---|---|---|
120(group4-ubuntu22.04-Master) | 172.100.0.106 | k8s-master | public | K8S控制平面接点(主节点) |
118(group4-ubuntu22.04-node1) | 172.100.0.104 | node1 | public | K8S工作节点1 |
119(group4-ubuntu22.04-node2) | 172.100.0.105 | node2 | public | K8S工作节点2 |
搭建集群
安装前准备
关闭防火墙
sudo systemctl disable --now ufw
设置服务器时区
Ubuntu安装完成之后默认不是中国时区,需要执行以下命令设置为中国上海时区,因为关系到集群机器之间的通信,需要一个时间同步大家的行为。
# 设置为亚洲的上海时区
sudo timedatectl set-timezone Asia/Shanghai
# 重启时间同步服务
sudo systemctl restart systemd-timesyncd.service
# 确保时间同步服务正常运行
timedatectl status
关闭swap分区
需要关闭所有swap分区,可以修改 /etc/fstab
文件:
sudo vi /etc/fstab
上面是永久关闭,下面可以执行这行命令临时关闭:
sudo swapoff -a
关闭SELinux
Ubuntu默认关闭了selinux,通过以下命令确保selinux已关闭
# 安装policycoreutils软件包
sudo apt install -y policycoreutils
# 检查selinux关闭状态
sestatus
配置hosts配置文件
需要修改 /etc/hosts
配置文件,通过下面命令:
这里文件修改的主要意义是,当工作节点加入集群时,可以通过这个文件,将工作节点的IP映射为名称
sudo vi /etc/hosts
然后注释掉原来的主机名称配置,并将下面这几行解析添加到文件最后(注意修改为自己的IP地址):
172.100.0.106 k8s-master
172.100.0.104 node1
172.100.0.105 node2
转发 IPv4 并让 iptables 看到桥接流量
开这个的原因是让各个主机承担起网络路由的角色,因为后续还要安装网络插件,要有一个路由器各个 Pod
才能互相通信。
执行下述指令:
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter
# 设置所需的 sysctl 参数,参数在重新启动后保持不变
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF
# 应用 sysctl 参数而不重新启动
sudo sysctl --system
通过运行以下指令确认 br_netfilter
和 overlay
模块被加载:
lsmod | grep br_netfilter
lsmod | grep overlay
通过运行以下指令确认 net.bridge.bridge-nf-call-iptables
、net.bridge.bridge-nf-call-ip6tables
和 net.ipv4.ip_forward
系统变量在你的 sysctl
配置中设置为 1:
sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward