目录
一 . k8s高可用结合负载均衡介绍
配置高可用(HA)Kubernetes集群,有以下两种可选的etcd拓扑:
集群master节点与etcd节点共存,etcd也运行在控制平面节点上
使用外部etcd节点,etcd节点与master在不同节点上运行
在前面k8s学习中,围绕一个k8s的master节点操作,当此节点dowm掉后k8s将无法进行后续的部署管理工作。此时通过haproxy配置k8s master主机实现负载均衡,通过k8s三台master主机实现k8s集群高可用。
外部etcd拓扑
二. K8s高可用+负载均衡集群部署
项目准备:
准备7台虚拟机server5-server10,server1:
server1 : harbor仓库
server5/server6:k8s高可用集群提供haproxy负载均衡
server7/server8/server9:k8s高可用集群master节点
server10:k8s woker 测试节点
1.pacemaker+haproxy的高可用+负载均衡部署
server5/6安装pacemaker相关组件,设置开机自启
先在server5,6配置repo源
cd /etc/yum.repos.d/
vim dvd.repo
[dvd]
name=dvd
baseurl=http://172.25.9=0.250/rhel7.6
gpgcheck=0
[HighAvailability]
name=HighAvailability
baseurl=http://172.25.0.254/rhel7.6/addons/HighAvailability
gpgcheck=0
server5,6上安装服务,并设置开机启动
yum install -y pacemaker pcs psmisc policycoreutils-python
systemctl enable --now pcsd.service
修改server5/6 的hacluster用户密码为westos
passwd hacluster
在server5:pcs注册认证server5 server6
创建集群命名mycluster,server5/6为成员,集群成员也可以后续添加
pcs cluster auth server5 server6
pcs cluster setup --name mycluster server5 server6
设置集群服务启动并开机自启
pcs cluster start --all
pcs cluster enable --all
集群检测,发现报错,解决它:
设置stonith-enabled=false,再次检测不再报错
crm_verify -L -V
pcs property set stonith-enabled=false
crm_verify -L -V
查询pcs状态将无Warning
pcs status
设置vip 172.25.0.100,用于故障无缝切换
pcs resource create vip ocf:heartbeat:IPaddr2 ip=172.25.3.100 op monitor interval=30s
查看集群状态 vip位于server5,Online: [ server5 server6 ]
pcs status
可以看到vip在server5上,我们查看server5的Ip
ip addr
server5和6安装haproxy
yum install -y haproxy
安装之后,配置haproxy.cfg,启动服务查看端口6443
cd /etc/haproxy/
vim haproxy.cfg
修改如下:
listen stats *:80
stats uri /status
#---------------------------------------------------------------------
# main frontend which proxys to the backends
#---------------------------------------------------------------------
frontend main *:6443
mode tcp
default_backend app
#---------------------------------------------------------------------
# round robin balancing between the various backends
#---------------------------------------------------------------------
backend app
balance roundrobin
mode tcp
server k8s1 172.25.0.7:6443 check
server k8s2 172.25.0.8:6443 check
server k8s3 172.25.0.9:6443 check
``
、
将配置文件传至server6,启动服务
查看端口6443
scp haproxy.cfg server6:/etc