k8s1.27.4 最新版本使用kubeadm+containerd方式安装
1、环境准备 [全部节点配置]
1.1系统环境
ip | hostname | 系统 | CPU | 内存 | 系统盘 | 备注 |
---|---|---|---|---|---|---|
192.168.2.101 | k8s-master | Centos7.8 | 2 | 4 | 50G | |
192.168.2.102 | k8s-node1 | Centos7.8 | 2 | 2 | 50G | |
192.168.2.103 | k8s-node2 | Centos7.8 | 2 | 2 | 50G |
1.2主机配置
1.2.1 主机名配置
由于本次使用3台主机完成kubernetes集群部署,其中1台为master节点,2台为worker节点
# 分别设置三台主机的主机名
hostnamectl set-hostname k8s-master && bash
hostnamectl set-hostname k8s-node1 && bash
hostnamectl set-hostname k8s-node2 && bash
1.2.2 主机IP地址配置
1.2.3 主机名与IP地址解析
所有集群主机均需要进行配置。
# 所有集群主机均需要进行配置
cat >> /etc/hosts << EOF
192.168.2.101 k8s-master
192.168.2.102 k8s-node1
192.168.2.103 k8s-node2
EOF
1.2.4 防火墙配置
所有主机均需要操作。
#关闭现有防火墙firewalld
systemctl disable firewalld
systemctl stop firewalld
firewall-cmd --state
1.2.5 SELINUX配置
所有主机均需要操作。
setenforce 0
sed -ri 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
1.2.6 时间同步配置
所有主机均需要操作。最小化安装系统需要安装ntpdate软件。
注意先同步一次
yum -y install ntpdate
# crontab -l
0 */1 * * * /usr/sbin/ntpdate time1.aliyun.com
1.2.7 禁用swap交换分区(kubernetes强制要求禁用)
所有主机均需要操作。
#禁用swap交换分区
swapoff -a
# 禁止开机自启动swap交换分区
sed -ri 's/.*swap.*/#&/' /etc/fstab
1.2.8 内核优化
所有主机均需要操作。
修改Linux内核参数,添加网桥过滤器和地址转发功能
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
加载网桥过滤器模块
modprobe br_netfilter
lsmod | grep br_netfilter # 验证是否生效
sysctl -p /etc/sysctl.d/kubernetes.conf
1.2.9 配置ipvs功能
所有主机均需要操作。
在kubernetes中Service有两种代理模型,一种是基于iptables的,一种是基于ipvs,两者对比ipvs的性能要高,如果想要使用ipvs模型,需要手动载入ipvs模块
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