keepalived可以实现服务器关键节点的高可靠性,如实现负载均衡节点的双机HA。
当访问关键节点的时候,比如某个ip 192.168.0.190,我们希望这个节点更加可靠。
可以使用两台主机来承载他的工作,这样即使一台故障,另一台依然能正常提供服务。
如果熟悉网络原理,会发现这个场景特别像vrrp,没错,keepalived就是基于vrrp
1、环境
主节点 ServerA : 192.168.0.172
备节点 ServerB : 192.168.0.173
keepalived 虚拟ip : 192.168.0.190
2、实现目标
访问192.168.0.190,由ServerA和ServerB两台主机提供服务,实现双机热备,一台故障,另一台接替工作。
这里ServerA作为主节点,ServerB作为备节点,他们提供web服务
为测试,已经在两台主机部署好Apache,可正常访问
3、步骤
3.1 两个节点均安装keepalived
[root@ServerA ~]# yum install keepalived -y
[root@ServerB ~]# yum install keepalived -y
3.2 配置keepalived的虚拟ip和主从
ServerA为主节点,正常情况由主机A来提供web服务
[root@ServerA ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
vrrp_instance test {
state MASTER #主节点#
interface ens33 #网卡名#
virtual_router_id 10 #vrrp组id,两个节点必须相同#
priority 110 #优先级,数字大为主#
advert_int 1
authentication { #两个节点的验证密钥,需相同#
auth_type PASS
auth_pass 1111
}
virtual_ipaddress { #虚拟IP#
192.168.0.190
}
}
[root@ServerA ~]#
ServerB为备节点,当主机A故障,ServerB来提供web服务
[root@ServerB ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived
vrrp_instance test {
state BACKUP
interface ens33
virtual_router_id 10
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.190
}
}
[root@ServerB ~]#
启动服务
[root@ServerA ~]# systemctl start keepalived
[root@ServerB ~]# systemctl start keepalived
查看ip,这时会发现在ServerA上多了虚拟ip,而ServerB没有这个ip
[root@ServerA ~]# ip addr show ens33 | grep inet
inet 192.168.0.172/24 brd 192.168.0.255 scope global noprefixroute dynamic ens33
inet 192.168.0.190/32 scope global ens33
[root@ServerB ~]# ip addr show ens33 | grep inet
inet 192.168.0.173/24 brd 192.168.0.255 scope global noprefixroute dynamic ens33
测试访问虚拟ip
模拟ServerA故障,这里断开ServerA的网络即可
[root@ServerA ~]# ifconfig ens33 down
在ServerB查看ip,会发现虚拟ip已经在ServerB上
[root@ServerB ~]# ip addr show ens33 | grep inet
inet 192.168.0.173/24 brd 192.168.0.255 scope global noprefixroute dynamic ens33
inet 192.168.0.190/32 scope global ens33
仍然访问虚拟ip,会发现是由ServerB来提供服务,当然这里只是测试,真正生产环境会保证两个节点的数据相同
tcpdump抓包分析,可看到vrrp通告报文(vrrp原理略)
[root@ServerA ~]# tcpdump -i ens33 -w keepalived.pcap
点击了解更多技术资料和免费学习视频请加入讨论群:662736393
欢迎关注百哥IT技术专栏,联系QQ:1443262302
针对本技术点问题,欢迎加Q一起讨论学习