简介
Keepalived 是集群管理中保证集群高可用的一个服务软件,其功能类似于 heartbeat,用来防止单点故障。
Keepalived 是以 VRRP(Virtual Router Redundancy Protocol,虚拟路由冗余协议)协议为实现基础的,这个协议可以认为是实现了路由器高可用的协议,将多台提供相同功能的路由器组成一个路由器组。
- 这里面有一个 MASTER 和多个 BACKUP;
- MASTER 上面有一个对外提供服务的 Virtual IP (VIP);
- MASTER 会发组播,当 BACKUP 收不到 VRRP 包时就认为 MASTER 宕机
- 这时需要根据 VRRP 优先级来选举一个 BACKUP 为 MASTER,这样就保证路由器的正常使用了。
步骤
安装 Keepalived
Keepalived 可以使用 yum 直接安装,在 master 服务器和 backup 服务器执行:
1 | $ yum install keepalived |
配置 Master 服务器
1 | [root@hop02 keepalived]# pwd |
配置 BACKUP 服务器
注意以下几点变动:
- state 角色为 BACKUP
- interface 为网卡的 ID,要根据机器确认
- virtual_route_id 要与 MASTER 一致,默认为 51
- priority 要比 MASTER 小
- 设置 vrrp_strict 选项
配置并启动服务
配置 IP 转发,需要修改配置文件 /etc/sysctl.conf
,默认只有 root 可以修改
1 | $ su - root |
防火墙添加规则,因为 VRRP 使用 224.0.0.18
这个组播地址
1 | $ sudo firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --in-interface em1 --destination 224.0.0.18 --protocol vrrp -j ACCEPT |
可以查看一下这两条规则
1 | $ sudo firewall-cmd --direct --get-rules ipv4 filter INPUT |
启动 MASTER 和 BACKUP 的 keepalived 服务,并设置开机启动
1 | [root@hop02 etc]# cat /etc/redhat-release |
1 | [root@hop02 etc]# ps -ef | grep keepalived |
查看 MASTER 网卡,可以发现 MASTER 服务器的 bond0 网卡上多了 10.135.22.69
这个虚拟 IP 地址。
1 | [root@hop02 keepalived]# ip a |
漂移规则如下:
- 默认使用 MASTER 服务器
10.135.22.70
,虚拟 IP 为10.135.22.69
,此时 MASTER 服务器会有 2 个 IP。 - 当 MASTER 出问题时,IP 会漂移到 BACKUP 服务器(
10.135.22.71
),此时 BACKUP 服务器会有 2 个 IP。 - 当 MASTER 重新启动后,虚拟 IP 又会漂移回 MASTER 服务器。
附录
配置文件说明:
1 | ! Configuration File for keepalived |