环境说明
主机名 IP地址 角色 系统
master 192.168.9.129 k8s-master Centos7.9
node1 192.168.9.130 k8s-node Centos7.9
node2 192.168.9.131 k8s-node Centos7.9
注意:官方建议每台机器至少2G内存、2个CPU,同时需确保MAC和product_uuid唯一(参考下面的命令查看)
#ip link #cat /sys/class/dmi/id/product_uuid
一、环境配置
以下步骤在三台主机上均需进行操作
1、配置静态IP,防止下次重启机器dhcp分配其他ip
vi /etc/sysconfig/network-scripts/ifcfg-ens33,添加:
ONBOOT=yes
BOOTPROTO=static
IPADDR=192.168.9.130
NETMASK=255.255.255.0
GATEWAY=192.168.9.2
HWADDR=00:0c:29:cb:8b:51 #MAC码,可用IP addr 命令查看
重启网卡,systemctl restart network
2、配置hosts
cat >> /etc/hosts
192.168.9.129 master
192.168.9.130 node1
192.168.9.130 node2
设置主机名,三台分别执行:
hostnamectl set-hostname master
hostnamectl set-hostname node1
hostnamectl set-hostname node2
重启同步系统时间(保证多台服务的时间一致)
systemctl restart chronyd
3、设置阿里云yum源(可选)
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
rm -rf /var/cache/yum && yum makecache && yum -y update && yum -y autoremove
# 注意: 网络条件不好,可以不用 update
4、安装必要的软件
yum install -y net-tools.x86_64 vim wget
安装依赖包
yum install -y epel-release conntrack ipvsadm ipset jq sysstat curl iptables libseccomp
5、关闭防火墙
systemctl disable firewalld
systemctl stop firewalld
iptables -F && iptables -X && iptables -F -t nat && iptables -X -t nat && iptables -P FORWARD ACCEPT
6、禁用SELinux,让容器可以顺利地读取主机文件系统
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config
7、关闭swap分区,如果启用了swap,那么kubelet就无法启动
swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
查看内存是否关闭
free -m
PS:默认情况下,kubelet不允许所在的主机存在交换分区,后期规划的时候,可以考虑在系统安装的时候不创建交换分区,针对已经存在交换分区的可以设置忽略禁止使用swap的限制,不然无法启动kubelet。一般直接禁用swap就可以了,不需要执行此步骤。
vim /etc/sysconfig/kubelet
KUBELET_EXTRA_ARGS="--fail-swap-on=false"
8、加载内核模块
cat > /etc/sysconfig/modules/ipvs.modules
#!/bin/bash
modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack_ipv4
modprobe -- br_netfilter
EOF
chmod 755 /etc/sysconfig/modules/ipvs.modules && bash /etc/sysconf