zl程序教程

您现在的位置是:首页 >  工具

当前栏目

keepalived 保证集群的高可用

集群 可用 保证 Keepalived
2023-06-13 09:13:12 时间

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

后期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 acassen@firewall.loc 6 failover@firewall.loc 7 sysadmin@firewall.loc 8 } 9 notification_email_from Alexandre.Cassen@firewall.loc #邮件的发送者 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)