在前一篇博文:haproxy+keepalived高可用负载均衡集群中我们的两台服务器没有主备之分,也就是说谁先启动keepalived谁就会抢占VIP,当抢占到VIP的服务器宕机后,另一台就会抢占到VIP,这时候就算再次启动宕机的服务器,该服务器也抢占不到VIP了。
而实际生产中有时候两台服务器的硬件条件不同,我们需要有主备之分,也就是说当两台服务器同时在线时,我们需要确保主服务器(硬件较好的服务器)能抢占到VIP,对外提供服务。这时候就需要在keepalived的配置文件中配置主备了。
配置很简单
主服务器配置
vrrp_instance VI_1 {
# 指定 keepalived 的角色,必须大写 可选值:MASTER|BACKUP
# MASTER为主机 BACKUP为备机
state MASTER
#这里是宿主机的网卡,可以通过ip a查看当前自己电脑上用的网卡名是哪个
interface ens33
virtual_router_id 100
# 定义优先级,数字越大,优先级越高,主服务器优先级应大于备服务器
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
#这里是指定的一个宿主机上的虚拟ip,一定要和宿主机网卡在同一个网段
192.168.130.140
}
}
备服务器配置
vrrp_instance VI_1 {
# 指定 keepalived 的角色,必须大写 可选值:MASTER|BACKUP
# MASTER为主机 BACKUP为备机
state BACKUP
#这里是宿主机的网卡,可以通过ip a查看当前自己电脑上用的网卡名是哪个
interface ens33
virtual_router_id 100
# 定义优先级,数字越大,优先级越高,主服务器优先级应大于备服务器
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
#这里是指定的一个宿主机上的虚拟ip,一定要和宿主机网卡在同一个网段
192.168.130.140
}
}
抢占VIP测试,我们先启动备服务器的keepalived
此时主服务器未启动,备服务器抢占到VIP
再启动主服务器的keepalived,抢占到VIP
也就是说当主备服务器同时在线时确保VIP漂移到主服务器上。