keepalived安装
keepalived 是什么?
Keepalived软件起初是专为LVS负载均衡软件设计的,用来管理并监控LVS集群系统中各个
服务节点的状态,后来又加入了可以实现高可用的VRRP功能。因此,Keepalived除了能够管
理LVS软件外,还可以作为其他服务(例如:Nginx、Haproxy、MySQL等)的高可用解决方
案软件。
Keepalived软件主要是通过VRRP协议实现高可用功能的。VRRP是Virtual Router
RedundancyProtocoK虚拟路由器冗余协议)的缩写,VRRP出现的目的就是为了解决静态路
由单点故障问题的,它能够保证当个别节点宕机时,整个网络可以不间断地运行。
所以,Keepalived —方面具有配置管理LVS的功能,同时还具有对LVS下面节点进行健康检
查的功能,另一方面也可实现系统网络服务的高可用功能。
keepalived 官网
keepalived的重要功能
keepalived有三个重要的功能,分别是:
•管理LVS负载均衡软件
•实现LVS集群节点的健康检查中
•作为系统网络服务的高可用性(failover)
环境
设备 | ip地址 |
---|---|
centos7 | 192.168.89.130 |
centos7 | 192.168.89.129 |
1.两台设备都安装keepalived
[root@localhost ~]# yum install keepalived -y
[root@localhost ~]# rpm -ql keepalived
/etc/keepalived/keepalived.conf keepalived服务主配置文件
/etc/rc.d/init.d/keepalived 服务启动脚本
/etc/sysconfig/keepalived
/usr/bin/genhash
/usr/lib/systemd/system/keepalived.service 服务控制文件
/usr/libexec/keepalived
/usr/sbin/keepalived
2.在两台设备都部署httpd
2.1 192.168.89.129部署
[root@localhost ~]# yum install -y httpd
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# echo “129” >> /var/www/html/index.html
[root@localhost ~]# curl http://192.168.89.129 查看返回值
“129”
2.2 192.168.89.130部署
[root@localhost ~]# yum install -y httpd
[root@localhost ~]# systemctl start httpd
[root@localhost ~]# echo “130” >> /var/www/html/index.html
[root@localhost ~]# curl http://192.168.89.130
“130”
3.配置keepalived
3.1 配置主keepalived(192.168.89.130)
[root@localhost ~]# vim /etc/keepalived/keepalived.conf
global_defs {
router_id lb01 路由ID号,不能重复
}
vrrp_instance VI_1 {
state MASTER 说明为主备
interface ens33 虚拟IP防止网卡位置
virtual_router_id 51 同一集群ID应该一致
priority 100 优先级,数字越高优先级越高,决定主备
advert_int 1 主备通讯时间间隔
authentication {
auth_type PASS
auth_pass 1111 认证号,同一集群应该一致
}
virtual_ipaddress {
192.168.89.150 虚拟IP,与现有IP应不冲突
}
}
[root@localhost ~]# systemctl restart keepalived
3.2配置备keepalived(192.168.89.129)
[root@localhost ~]# vim /etc/keepalived/keepalived.conf
global_defs {
router_id lb02 更改内容
}
vrrp_instance VI_1 {
state BACKUP 谁被备份
interface ens33
virtual_router_id 51
priority 90 降低数字
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.89.150
}
}
[root@localhost ~]# systemctl restart keepalived
4.测试
4.1 查看master端
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:e1:46:7d brd ff:ff:ff:ff:ff:ff
inet 192.168.89.130/24 brd 192.168.89.255 scope global noprefixroute dynamic ens33
valid_lft 1747sec preferred_lft 1747sec
inet 192.168.89.150/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::ed9:2153:d66f:1db9/64 scope link noprefixroute
valid_lft forever preferred_lft forever
[root@localhost ~]# ping 192.168.89.129 测试是否能通
PING 192.168.89.129 (192.168.89.129) 56(84) bytes of data.
64 bytes from 192.168.89.129: icmp_seq=1 ttl=64 time=1.56 ms
64 bytes from 192.168.89.129: icmp_seq=2 ttl=64 time=0.479 ms
64 bytes from 192.168.89.129: icmp_seq=3 ttl=64 time=0.521 ms
64 bytes from 192.168.89.129: icmp_seq=4 ttl=64 time=0.865 ms
--- 192.168.89.129 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3006ms
rtt min/avg/max/mdev = 0.479/0.856/1.560/0.433 ms
4.2查看server端
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:47:80:d4 brd ff:ff:ff:ff:ff:ff
inet 192.168.89.129/24 brd 192.168.89.255 scope global noprefixroute dynamic ens33
valid_lft 1548sec preferred_lft 1548sec
inet6 fe80::87d5:9fca:fb19:7de0/64 scope link noprefixroute
valid_lft forever preferred_lft forever
4.3网页查看
关闭主节点的keepalived
[root@localhost ~]# systemctl stop keepalived
查看备用段的设备情况
[root@localhost ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:47:80:d4 brd ff:ff:ff:ff:ff:ff
inet 192.168.89.129/24 brd 192.168.89.255 scope global noprefixroute dynamic ens33
valid_lft 1240sec preferred_lft 1240sec
inet 192.168.89.150/32 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::87d5:9fca:fb19:7de0/64 scope link noprefixroute
valid_lft forever preferred_lft forever
#5.错误
如果PING虚拟IP不通的话,可以选择将/etc/keepalived/keepalived.conf的vrrp_strict这一行注释掉或者删去即可