高并发: 能够同时供多台客户端访问
高可用: 防止集群中因为某个节点坏掉,而导致整个集群不能正常的提供服务
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都要进行

keepalived 配置2个高可用 keepalived如何实现高可用_服务器


keepalived 配置2个高可用 keepalived如何实现高可用_配置文件_02


keepalived 配置2个高可用 keepalived如何实现高可用_服务器_03


lvs1和lvs2搭建keepalived

keepalived 配置2个高可用 keepalived如何实现高可用_后端_04


./configure --prefix=/ --with-kernel-dir=/usr/src/kernel && make && make install

keepalived 配置2个高可用 keepalived如何实现高可用_优先级_05


修改主配置文件

keepalived 配置2个高可用 keepalived如何实现高可用_后端_06


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

keepalived 配置2个高可用 keepalived如何实现高可用_优先级_07


31 #健康检查间隔的时间

32 调度算法

33 lvs工作模式

35 会话保持时间

36 使用tcp传输

keepalived 配置2个高可用 keepalived如何实现高可用_keepalived 配置2个高可用_08


39权重

40连接的端口

41超时时间

42

keepalived 配置2个高可用 keepalived如何实现高可用_服务器_09


keepalived 配置2个高可用 keepalived如何实现高可用_keepalived 配置2个高可用_10


keepalived 配置2个高可用 keepalived如何实现高可用_后端_11


scp传输过去

keepalived 配置2个高可用 keepalived如何实现高可用_keepalived 配置2个高可用_12

在lvs2上面在进行配置文件更改

keepalived 配置2个高可用 keepalived如何实现高可用_服务器_13


keepalived 配置2个高可用 keepalived如何实现高可用_后端_14


然后查看ip

应该是两个lvs中一个有拟ip一个没有

如果一个宕机了会换成另一个出现虚拟ip

keepalived 配置2个高可用 keepalived如何实现高可用_后端_15


keepalived 配置2个高可用 keepalived如何实现高可用_keepalived 配置2个高可用_16


web1以及web2都进行

keepalived 配置2个高可用 keepalived如何实现高可用_优先级_17


keepalived 配置2个高可用 keepalived如何实现高可用_配置文件_18


keepalived 配置2个高可用 keepalived如何实现高可用_配置文件_19


keepalived 配置2个高可用 keepalived如何实现高可用_配置文件_20

客户端验证:

keepalived 配置2个高可用 keepalived如何实现高可用_后端_21

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

keepalived + haproxy (不用配置ip)