keepalived 双主配置使用两个vip地址,前端使用2台机器,互为主备,同时有两台机器工作,当其中一台机器出现故障,两台机器的请求转移到一台机器负担,非常适合于当前架构环境。
架构:
服务器 | ip | 主vip | 备vip |
---|---|---|---|
mycentos7_1 | 192.168.130.128 | 192.168.130.140 | 192.168.130.141 |
mycentos7_2 | 192.168.130.128 | 192.168.130.141 | 192.168.130.140 |
mycentos7_1 : keepalived 配置文件
vrrp_script check_haproxy {
script "/usr/monitor_docker_haproxy.sh"
interval 2
}
vrrp_instance VI_1 {
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
}
track_script {
check_haproxy
}
}
vrrp_instance VI_2 {
state BACKUP
interface ens33
virtual_router_id 101
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.130.141
}
track_script {
check_haproxy
}
}
mycentos7_2 : keepalived 配置文件
vrrp_script check_haproxy {
script "/usr/monitor_docker_haproxy.sh"
interval 2
}
vrrp_instance VI_1 {
state BACKUP
interface ens33
virtual_router_id 100
priority 90
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.130.140
}
track_script {
check_haproxy
}
}
vrrp_instance VI_2 {
state MASTER
interface ens33
virtual_router_id 101
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 123456
}
virtual_ipaddress {
192.168.130.141
}
track_script {
check_haproxy
}
}
两台服务器都启动keepalived,然后查看所抢占的VIP
ip addr show ens33
mycentos7_1 :
mycentos7_2 :
双主模式就搭建完成了。
最后,模拟故障,检验结果。
mycentos7_2 宕机 ,查看mycentos7_1抢占的VIP,发现mycentos7_2上的VIP漂移到了mycentos7_1上,这时候mycentos7_1就可以代替mycentos7_2提供服务。