kubernetes集群大体分为两类,一主多从和多主多从,下面以一主二从为例。
从主机规划
主机名 | IP地址 | 操作系统 | 配置 |
---|---|---|---|
master | 192.168.10.10 | Centos7.6 | 2CPU 4G内存 50G硬盘 |
node1 | 192.168.10.11 | Centos7.6 | 2CPU 4G内存 50G硬盘 |
node2 | 192.168.10.12 | Centos7.6 | 2CPU 4G内存 50G硬盘 |
环境准备
1、关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
2、关闭SELinux系统内核安全机制
#临时关闭
setenforce 0
#永久关闭
sed -i ‘s#SELINUX=enforcing#SELINUX=disabled#g’ /etc/selinux/config
3、配置yum源
举例配置本地源
#转移自带的仓库文件
mkdir /etc/yum.repos.d/old_repo_file && mv /etc/yum.repos.d/*.repo /etc/yum.repos.d/old_repo_file/
#创建挂载点
mkdir /mnt/centos && mount /dev/cdrom /mnt/centos
#永久挂载设置
cat >>/etc/fstab <<EOF
/dev/cdrom /mnt/centos iso9660 defaults 0 0
EOF
#创建本地yum仓库
cat >/etc/yum.repos.d/local.repo <<EOF
[local_centos]
name=local_centos
baseurl=file:///mnt/centos
enabled=1
gpgcheck=0
EOF
#查看仓库可用软件包数量
yum repolist
4、配置本机地址名与IP地址解析
#主节点
hostnamectl set-hosname master
#从节点1
hostnamectl set-hosname node1
#从节点2
hostnamectl set-hosname node3
#三台添加
cat >>/etc/hosts <<EOF
192.168.10.10 master
192.168.10.11 node1
192.168.10.12 node2
EOF
5、配置时间同步
#安装时间同步
yum -y install chrony
#启动chronyd
systemctl start chrony
systemctl enable chrony
#当然需要自行确定时间一致性先
6、关闭swap分区使用
#修改/etc/fstab文件,注释掉swap自行挂载一行即可,重启系统生效(所有配置完在重启)。
[root@master ~]# vim /etc/fstab
…
#/dev/mapper/centos-swap swap swap defaults 0 0
7、修改Linux内核参数,添加网桥过滤器和地址转发功能
#编辑/etc/sysctl.d/kubernetes.conf文件添加如下配置(该文件默认不存在)
cat > /etc/sysctl.d/kubernetes.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
net.ipv4.ip_forward = 1
EOF
#加载配置
sysctl -p
#加载网桥过滤器模块
modprobe br_netfilter
#查看网桥过滤器模块是否加载成功
lsmod | grep br_netfilter
[root@master ~]# lsmod | grep br_netfilter
br_netfilter 22256 0
bridge 151336 1 br_netfilter
8、配置ipvs功能
#安装ipset和ipvsadm软件
yum -y install ipset ipvsadm
#添加需要加载的模块写入脚本文件
cat > /etc/sysconfig/modules/ipvs.modules <<EOF
modprobe – ip_vs
modprobe – ip_vs_rr
modprobe – ip_vs_wrr
modprobe – ip_vs_sh
modprobe – nf_conntrack_ipv4
EOF
#执行脚本
chmod +x /etc/sysconfig/modules/ipvs.modules && /etc/sysconfig/modules/ipvs.modules
#查看对应的模块是否加载成功
lsmod | egrep “Module|ip_vs|nf_conntrack_ipv4”
[root@master ~]# lsmod | egrep "Module|ip_vs|nf_conntrack_ipv4"
Module Size Used by
nf_conntrack_ipv4 15053 0
nf_defrag_ipv4