目录
1. keepalived的简介
Keepalived的作用是检测服务器的状态,如果有一台web服务器宕机,或工作出现故障
Keepalived将检测到,并将有故障的服务器从系统中剔除,同时使用其他服务器代替该服务器的工作
当服务器工作正常后Keepalived自动将服务器加入到服务器群中 这些工作全部自动完成,不需要人工干涉,需要人工做的只是修复故障的服务器。
2. VRRP协议
- 虚拟路由冗余协议(Virtual Router Redundancy Protocol,简称VRRP)
- VRRP是由IETF提出的解决局域网中配置静态网关出现单点失效现象的路由协议,1998年已推出正式的RFC2338协议标准。
- VRRP广泛应用在边缘网络中,它的设计目标是支持特定情况下IP数据流量失败转移不会引起混乱,允许主机使用单路由器,以及及时在实际第一跳路由器使用失败的情形下仍能够维护路由器间的连通性。
VRRP的工作过程如下:
- 路由器开启VRRP功能后,会根据优先级确定自己在备份组中的角色。优先级高的路由器成为主用路由器,优先级低的成为备用路由器。主用路由器定期发送VRRP通告报文,通知备份组内的其他路由器自己工作正常;备用路由器则启动定时器等待通告报文的到来。
- VRRP在不同的主用抢占方式下,主用角色的替换方式不同:l在抢占方式下,当主用路由器收到VRRP通告报文后,会将自己的优先级与通告报文中的优先级进行比较。如果大于通告报文中的优先级,则成为主用路由器;否则将保持备用状态。l在非抢占方式下,只要主用路由器没有出现故障,备份组中的路由器始终保持主用或备用状态,备份组中的路由器即使随后被配置了更高的优先级也不会成为主用路由器。
- 如果备用路由器的定时器超时后仍未收到主用路由器发送来的VRRP通告报文,则认为主用路由器已经无法正常工作,此时备用路由器会认为自己是主用路由器,并对外发送VRRP通告报文。备份组内的路由器根据优先级选举出主用路由器,承担报文的转发功能。
3. keepalived的工作原理
lvs调度器的备份即集群
当调度器server1即入口挂了,客户就彻底不能访问了,这时我们可以设置调度器的高可用,时刻保证调度器的正常工作:
设置调度器的master(主)和调度器backup(备)
我们在两台调度器上使用keepalived服务就可以将两个调度器关联在一起
keepalived检测两个调度器的工作情况
如果lvs挂掉了,客户就彻底访问不到任何东西了, 现在做一个高可用的lvs
我们使用keeplived代理lvs,它具有lvs的功能,但同时可以有多个,有主有备 ,当主挂了备用就去做轮询,当主好了备用就把任务还给主
当主调度器好着的时候,keepalived就回去通知备份调度器自己可以正常工作,不需要接管自己的任务
当主调度器坏了,不告诉备份调度器任何消息的时候,备份调度器就会自动去接管主调度器的工作 这个时候客户端依然可以正常访问
4. 搭建实验环境
| 主机信息 | 主机的功能(服务) |
|---|---|
| server1(172.25.254.11) | master(主调度器) |
| server4(172.25.254.14) | backup(备调度器) |
| server2(172.25.254.12) | 真正的web服务器1 |
| server3(172.25.254.13) | 真正的web服务器2 |
| 真机 (172.25.254.60) | 客户端(client),用来测试 |
在之前的lvs之DR模式实验基础上继续进行实验
server2/3 ip 172.25.254.100不删除,只删除调度器的ip192.168.1.100,因为keepalived会自动分配ip192.168.1.100
5. 实现 LVS(DR模式)+KeepAlived(HA高可用)稳定性集群
5.1 在server1和server4两台调度器上相同操作
[root@server1 mnt]# ls
keepalived-2.0.20.tar.gz
[root@server1 mnt]# tar zxf keepalived-2.0.20.tar.gz -C /mnt/ 解压
[root@server1 mnt]# ls
keepalived-2.0.20
[root@server1 keepalived-2.0.20]# ./configure --prefix=/usr/local/keepalived --with-init=systemd 编译
[root@server1 keepalived-2.0.20]# yum install gcc openssl-devel -y 源码编译
[root@server1 keepalived-2.0.20]# make && make install 安装
[root@server1 keepalived-2.0.20]# cd keepalived/
[root@server1 keepalived]# ln -s /usr/local/keepalived/etc/keepalived/ /etc/ 链接到/etc/
[root@server1 ~]# cd /etc/keepalived/
[root@server1 keepalived]# ls
keepalived.conf samples




5.2 更改server1上KeepAlived配置文件
[root@server1 keepalived]# vim /etc/keepalived/keepalived.conf
[root@server1 keepalived]# systemctl start keepalived.service 启动服务后自动添加一个IP
- server1


- server4
只有server1宕机才能使用


5.3 测试
- 当server2和server3都正常时,两个主机轮循访问
- 当server2关闭httpd,可以看到,server2 down时,只会访问server3
- 当关闭server1的keepalived,node4接手,不影响客户感知
- 检查后端服务器

- 所有服务都正常


3. 当server1宕机的效果

4. sever1开启后,使用server1作为调度器访问服务端

5. 主机测试正常访问



本文介绍了Keepalived的作用和VRRP协议,详细阐述了Keepalived的工作原理,并通过搭建实验环境,演示了如何实现LVS(DR模式)与KeepAlived结合的高可用稳定性集群。在服务器出现故障时,Keepalived能自动切换,确保服务不间断。
458

被折叠的 条评论
为什么被折叠?



