keepalived 保证集群的高可用

高并发: 能够同时供多台客户端访问
高可用: 防止集群中因为某个节点坏掉,而导致整个集群不能正常的提供服务
keepalived起初就是为了和lvs进行搭配,配合lvs对后端的集群进行健康检查,当后端的集群中有一个服务器宕机,他将会将这个服务器从后端节点中剔除,来保证集群的可用性,当后端的这个服务能够正常提供服务的时候,再将该服务加入到后端的集群中。后来keepalived实现了vrrp协议
vrrp 虚拟路由协议 漂移ip
lvs 要有两台

client
负载
负载
web1
web2

后期keepalived对lvs负载均衡服务器是用做节点检查的,避免单点故障
负载均衡的集群中,分为(master backup) 如果发生故障,从节点将会在集群中选出一个主,来代替主的位置,主和从之间会发送特定的消息,(这个时间一般为1s),当从服务器接收不到主给的消息,就意味着主服务器宕机,然后从将接替主来进行工作,从而保证集群的高可用
当主服务器修好以后,就会继续主的位置

client 192.168.2.100
lvs1 192.168.2.10
lvs2 192.168.2.11
web1 192.168.2.20 httpd 1111
web2 192.168.2.30 httpd 2222

lvs1 以及lvs2都要进行

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
lvs1和lvs2搭建keepalived
在这里插入图片描述
./configure --prefix=/ --with-kernel-dir=/usr/src/kernel && make && make install

在这里插入图片描述
修改主配置文件
在这里插入图片描述
3 global_defs { #全局配置
4 notification_email { #管理员的邮箱
5 [email protected]
6 [email protected]
7 [email protected]
8 }
9 notification_email_from [email protected]
#邮件的发送者
10 smtp_server 192.168.200.1 #邮件服务器的ip
11 smtp_connect_timeout 30 #邮件连接超时时间
12 router_id LVS_DEVEL #节点的表示 hostname
13 }
15 vrrp_instance VI_1 { ##vrrp组
16 state MASTER #节点的状态
17 interface ens32 #用来发送vrrp的网卡
18 virtual_router_id 51 #server_id
19 priority 100 #优先级 1—255
20 advert_int 1 #发送vrrp通告的时间
21 authentication { #认证
22 auth_type PASS
23 auth_pass 1111
24 }
25 ##虚拟ip 在这里插入图片描述
31 #健康检查间隔的时间
32 调度算法
33 lvs工作模式
35 会话保持时间
36 使用tcp传输
在这里插入图片描述
39权重
40连接的端口
41超时时间
42
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
scp传输过去
在这里插入图片描述

在lvs2上面在进行配置文件更改
在这里插入图片描述
在这里插入图片描述
然后查看ip
应该是两个lvs中一个有拟ip一个没有
如果一个宕机了会换成另一个出现虚拟ip
在这里插入图片描述
在这里插入图片描述
web1以及web2都进行
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

客户端验证:
在这里插入图片描述

keepalived 脑裂
keepalived 出现两个主的情况
1 statr MASTER 节点的状态都是主
防火墙没有放行
prioity 100 优先级一致
vrrp_instance vl_1 组名不一致
viryual_router_id 51 不一致
当主恢复后 漂移IP转移需要时间
在生产环境当中 要关闭主恢复后不会转移
nopreempt 这个参数必须记住
实际环境中必须添加

keepalived + haproxy (不用配置ip)

发布了3 篇原创文章 · 获赞 0 · 访问量 445

猜你喜欢

转载自blog.csdn.net/weixin_46152207/article/details/104003491