1.集群环境创建
三台虚拟机,一台master节点,两台node节点
(根据官网我们知道k8s 1.24版本之后就需要额外地安装cri-dockerd作为桥接才能使用Docker Egine。经过尝试1.24后的版本麻烦事很多,所以此处我们选择1.23.6版本)
虚拟机环境创建参考另一篇vmware创建虚拟机
2.集群环境初始化
配置centos7的yum源
csharp
cd /etc/yum.repos.d
mkdir repo_bak
mv *.repo repo_bak/
#下载阿里的CentOS-Base.repo 到/etc/yum.repos.d/
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
#清空缓存
yum clean all
#生成新的缓存
yum makecache
#安装EPEL源
yum install -y epel-release
#再次运行yum clean all 清除缓存,运行 yum makecache 生成新的缓存
yum clean all
yum makecache
初始操作(所有host都需要执行)
csharp
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭selinux
sed -i 's/enforcing/disabled/' /etc/selinux/config # 永久
setenforce 0 # 临时
# 关闭swap
swapoff -a # 临时
sed -ri 's/.*swap.*/#&/' /etc/fstab # 永久
# 关闭完swap后,一定要重启一下虚拟机!!!
# 根据规划设置主机名 !!!(这里三台虚拟机需要分别设置不同的hostname,任选一个作为master)
# 例:在110上执行hostnamectl set-hostname master,其他主机类似
hostnamectl set-hostname <hostname>
# 在master添加hosts
cat >> /etc/hosts << EOF
192.168.59.110 k8s-master
192.168.59.111 k8s-node1
192.168.59.112 k8s-node2
EOF
# 将桥接的IPv4流量传递到iptables的链
cat > /etc/sysctl.d/k8s.conf << EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system # 生效
# 时间同步
yum install ntpdate -y
ntpdate time.windows.com
安装docker
踩坑形安装如下:直接添加docker镜像源安装,结果最后导致docker版本过高,部署k8s的时候报错。
csharp
yum install -y yum-utils device-mapper-persistent-data lvm2
yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
yum makecache fast
yum -y install docker-ce
service docker start
docker version
3.kubeadm部署k8s
4.部署calico网络插件