K8S—多节点部署—基于单节点(5)
一.多节点的优势
1.区别于单master的二进制集群,多master集群对master做了一个高可用,如果master1宕机,Load Balance就会将VIP转移到master2,这样就保证了master的可靠性。
2.多节点的核心点就是需要指向一个核心的地址,我们之前在做单节点的时候已经将vip地址定义过写入k8s-cert.sh脚本文件中(192.168.18.100),vip开启apiserver,多master开启端口接受node节点的apiserver请求,此时若有新的节点加入,不是直接找moster节点,而是直接找到vip进行spiserver的请求,然后vip再进行调度,分发到某一个master中进行执行,此时master收到请求之后就会给改node节点颁发证书。
3.建立负载均衡缓解了nodes对master的请求压力,减轻了master资源使用
二.部署多节点
基于单master基础之上操作,添加一个master2(可参考前篇博客)
利用nginx做负载均衡,利用keepalived做负载均衡器的高可用
利用keepalived给master提供的虚拟IP地址,给node访问连接apiserver
服务器 | ip | 组件 |
---|---|---|
master1 | 192.168.88.11 | kube-apiserver kube-controller-manager kube-scheduler etcd |
master2 | 192.168.88.12 | kube-apiserver kube-controller-manager kube-scheduler |
node1 | 192.168.88.13 | kubelet kube-proxy docker flannel etcd |
node2 | 192.168.88.14 | kubelet kube-proxy docker flannel etcd |
nginx_lbm | 192.168.88.15 | nginx keepalived |
nginx_lbb | 192.168.88.16 | nginx keepalived |
VIP | 192.168.88.17 |
1.修改IP,关闭防火墙,关闭网络管理
[root@localhost ~]# systemctl stop firewalld.service
[root@localhost ~]# setenforce 0
[root@localhost ~]# systemctl stop NetworkManager
[root@localhost ~]# systemctl disable NetworkManager
Removed symlink /etc/systemd/system/multi-user.target.wants/NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.NetworkManager.service.
Removed symlink /etc/systemd/system/dbus-org.freedesktop.nm-dispatcher.service.
[root@localhost ~]# iptables -F
2.把master1上的文件和脚本传给master2
//复制/opt/kubernetes和/opt/etcd下的所有文件到master2中
[root@localhost ~]# scp -r /opt/kubernetes/ root@192.168.88.12:/opt/
//复制etcd的证书,否则apiserver无法启动
[root@localhost ~]# scp -r /opt/etcd/ root@192.168.88.12:/opt/
//复制执行脚本到master2中
[root@localhost ~]# scp /usr/lib/systemd/system/{kube-apiserver,kube-co