问题描述
我使用 HAProxy 作为我的应用程序的负载平衡器并使其高度可用,我使用了 keepalive 服务和浮动 ip 地址概念。但是,每当我的主要负载平衡器服务器出现故障时,通过将其从网络中删除或将其关闭,我的所有服务都会关闭,而不是使辅助负载平衡器服务器可用。 我的主服务器 keepalived.conf 是,
global_defs
{
# Keepalived process identifier
lvs_id haproxy_DH
}
# Script used to check if HAProxy is running
vrrp_script check_haproxy
{
script "pidof haproxy"
interval 2
weight 2
}
# Virtual interface
vrrp_instance VI_01
{
state MASTER
interface eno16777984 #here eth0 is the name of network interface
virtual_router_id 51
priority 101
# The virtual ip address shared between the two loadbalancers
virtual_ipaddress {
172.16.231.162
}
track_script {
check_haproxy
}
}
对于备份服务器来说,
global_defs
{
# Keepalived process identifier
lvs_id haproxy_DH_passive
}
# Script used to check if HAProxy is running
vrrp_script check_haproxy
{
script "pidof haproxy"
interval 2
weight 2
}
# Virtual interface
vrrp_instance VI_01
{
state BACKUP
interface eno16777984 #here eth0 is the name of network interface
virtual_router_id 51
priority 100
# The virtual ip address shared between the two loadbalancers
virtual_ipaddress {
172.16.231.162
}
track_script {
check_haproxy
}
}
当两个负载平衡器都启动时,虚拟 IP 地址被分配并工作。但是每当机器出现故障时,我的服务也会出现故障。我正在使用 CentOS7,请帮忙。
解决方法
使用这个,
global_defs {
router_id ovp_vrrp
} vrrp_script haproxy_check { 脚本“killall -0 haproxy” 间隔2 重量 2 }
vrrp_instance OCP_EXT { 接口ens192
virtual_router_id 51
优先级 100 状态大师 虚拟IP地址{ 10.19.114.231 dev ens192
} track_script { haproxy_check } 验证 { auth_type 通行证 auth_pass 1cee4b6e-2cdc-48bf-83b2-01a96d1593e4 } }
更多信息:阅读此处,https://www.openshift.com/blog/haproxy-highly-available-keepalived