在前面的章节中,咱们学习了Keepalived简介、原理、以及Keepalived 配置文件的详细解读;今天咱们经过几个配置实例来帮助你们掌握Keepalived的高可用性。服务器
配置Keepalived实现单实例单IP自动漂移接管微信
yum -y install keepalived
须要在qll251和qll252两台服务器上同时安装Keepalived网络
vim /etc/keepalived/keepalived.conf
运维
配置文件详细说明,参考:ide
这里咱们只注意一点:服务器qll251 做为实例VI_1的master,实例ID为
60
,实例优先级150
,浮动IP地址为10.43.187.201云计算
vim /etc/keepalived/keepalived.conf
3d
systemctl start keepalived
注意:MASTER跟BACKUP节点都要启动Keepalived服务
因为VI_1实例中,qll251优先级高于qll252,所以qll251为MASTER
在服务器qll251上,能够看到虚拟IP10.43.187.201
而qll252做为Keepalive备节点,无浮动ip:
(1)将qll251节点Keepalived服务中止,模拟MASTER宕机
(2)关闭qll251节点服务后,备节点接管绑定VIP
(3)经过日志,查看Keepalived主备切换过程
经过日志,发现备节点qll252已经接管绑定了
10.43.187.201
这个VIP,期间备节点发送ARP广播,让全部客户端更新本地的ARP表,以便客户端访问
新接管VIP服务的节点。
此时备节点已接管VIP,若再次启动主节点的Keepalived服务,主节点是否会接管回VIP?咱们验证下
(启动主节点qll251 Keepalived服务过程省略,咱们经过日志观察切换现象)
经过日志得知:
因为主节点优先级高于备节点,所以主节点抢占为MASTER,同时备节点成为BACKUP,而且移除VIP。
以上遍实现了单实例Keepalived服务
IP自动漂移接管
;VIP漂移至新机器,用户的访问请求天然就会找新机器了。
前面给出的是Keepalived单实例主备模式的高可用演示;Keepalived还支持多实例多业务双向主备模式,即A业务在qll251上是主模式,在qll252上是备模式,而B业务在qll251上是备模式,在qll252上是主模式,下面就以双实例为例讲解不一样业务实现双主的配置。
下图为Keepalived双实例双主模式IP及VIP规划表:
yum -y install keepalived
须要在qll251和qll252两台服务器上同时安装Keepalived
[root@qll251 ~]# vim /etc/keepalived/keepalived.conf 14 state MASTER 15 interface eth0 16 virtual_router_id 60 17 priority 150 18 advert_int 1 19 authentication { 20 auth_type PASS 21 auth_pass 1111 22 } 23 virtual_ipaddress { 24 10.43.187.201/24 dev eth0 label eth0:1 25 } 26 } 27 28 vrrp_instance VI_2 { 29 state BACKUP 30 interface eth0 31 virtual_router_id 61 32 priority 100 33 advert_int 1 34 authentication { 35 auth_type PASS 36 auth_pass 1111 37 } 38 virtual_ipaddress { 39 10.43.187.202/24 dev eth0 label eth0:2 40 } 41 }
实例
VI_1
在qll251节点上的角色为主
,实例VI_2
在qll251节点上的角色为备
。
[root@qll252 ~]# vim /etc/keepalived/keepalived.conf 14 state BACKUP 15 interface eth0 16 virtual_router_id 60 17 priority 100 18 advert_int 1 19 authentication { 20 auth_type PASS 21 auth_pass 1111 22 } 23 virtual_ipaddress { 24 10.43.187.201/24 dev eth0 label eth0:1 25 } 26 } 27 28 vrrp_instance VI_2 { 29 state MASTER 30 interface eth0 31 virtual_router_id 61 32 priority 150 33 advert_int 1 34 authentication { 35 auth_type PASS 36 auth_pass 1111 37 } 38 virtual_ipaddress { 39 10.43.187.202/24 dev eth0 label eth0:2 40 } 41 }
实例
VI_1
在qll252节点上的角色为备
,实例VI_2
在qll252节点上的角色为主
。
若是您是手机阅读的,配置文件查看起来应该不方便吧。这里咱们就经过截图对比下主备节点配置文件差异项:
经过对比能够看出,主备节点配置文件实际就两项区别:
首先关闭
qll251和qll252的Keepalived服务,而后再进行以下操做:
//在qll251上进行以下操做: [root@qll251 ~]# systemctl start keepalived [root@qll251 ~]# ip a | egrep "10.43.187.201|10.43.187.202" inet 10.43.187.201/24 scope global secondary eth0:1 inet 10.43.187.202/24 scope global secondary eth0:2 //因为qll252还没开服务,主备VIP都绑定在qll01上 //在qll252上进行以下操做: [root@qll252 ~]# systemctl start keepalived [root@qll252 ~]# ip a | egrep "10.43.187.201|10.43.187.202" inet 10.43.187.202/24 scope global secondary eth0:2 //开启qll252服务,因为在实例VI_2中其优先级高于qll251,所以VIP10.43.187.202绑定在qll252 //再次在qll251上进行以下操做: [root@qll251 ~]# ip a | egrep "10.43.187.201|10.43.187.202" inet 10.43.187.201/24 scope global secondary eth0:1 //qll251上只有10.43.187.201了
经验证,咱们发现qll251,qll252主备节点已经实现了当任意一端宕机时,VIP能够实现互相切换接管。在实际工做中,能够把www.cloud.com解析到VIP 10.43.187.201提供服务,把bbs.cloud.com解析到10.43.187.202提供服务。固然,qll251,qll252也要配置相应服务,例如:Nginx反向代理服务等。
欢迎关注微信公众号『开源Linux
』,专一于分享Linux/Unix相关内容,包括Linux运维、Linux系统开发、网络编程、以及虚拟化和云计算等技术干货。后台回复『学习
』,送你一套学习Linux的系列书籍,期待与你相遇。