一、概述
二、架构
三、开始部署
1)节点信息
2)前期准备(所有节点)
1、配置hosts
2、配置互信
3、时间同步
4、关闭防火墙
5、禁用SELinux
6、关闭swap
7、设置bridge-nf-call-iptables
3)安装容器docker(所有节点)
4)配置k8s yum源(所有节点)
5)开始安装kubeadm,kubelet和kubectl(所有节点)
6)使用 kubeadm 初始化集群(第一个master节点)
最好提前把镜像下载好,这样安装快
集群初始化
查看节点信息
发现节点是NotReady状态,查看日志是因为没有装CNI网络插件,接下来就开始安装Calico 网络插件,当然也可以选择其它网络插件。
7)安装Calico网络插件
8)配置IPVS(所有节点)
1、加载ip_vs相关内核模块
所有节点验证开启了ipvs:
2、安装ipvsadm工具
3、编辑kube-proxy配置文件,mode修改成ipvs
4、重启kube-proxy
9)master节点加入集群
【问题】
【解决】添加如下配置:
开始执行下面的命令将master节点加入集群
等网络插件自动安装完后,再查看节点状态
10)修改master节点指向自己apiserver
1、修改配置
2、删除旧的证书,生成新证书
3、修改apiserver
4、修改kube-prxoy配置
重启
5、重启docker和kubelet
11)node节点上安装nginx
这里使用nginx四层代理
配置nginx,在nginx.conf添加如下配置:
12)node节点加入集群
修改配置
重启
等网络插件自动安装完后,再查看节点状态
13)卸载
四、高可用故障模式测试
1)master节点故障模拟(一个master故障)
【结论】如上图可知,挂一个master节点不影响集群。
2)master节点故障模拟(两个master故障)
【结论】如上图可知,挂两个master节点,整个集群不可用,还是之前说的,三个master节点只允许挂一个master节点,这里就不细说了,可以参考我之前的文章:【云原生】K8S master节点更换IP以及master高可用故障模拟测试
领取专属 10元无门槛券
私享最新 技术干货