【发布时间】:2016-05-30 15:43:51
【问题描述】:
我最近尝试使用 HAProxy 对我的应用程序进行负载平衡,并且能够成功地做到这一点。后来,我遇到了一个叫Floating IP的概念,可以和keepalived一起使用,让负载均衡器高可用。我无法理解如何创建浮动 IP。如何创建浮动 IP 并使用它来配置 HAProxy? 谢谢。
【问题讨论】:
标签: load-balancing haproxy floating-ip
我最近尝试使用 HAProxy 对我的应用程序进行负载平衡,并且能够成功地做到这一点。后来,我遇到了一个叫Floating IP的概念,可以和keepalived一起使用,让负载均衡器高可用。我无法理解如何创建浮动 IP。如何创建浮动 IP 并使用它来配置 HAProxy? 谢谢。
【问题讨论】:
标签: load-balancing haproxy floating-ip
假设:
步骤:
sudo ufw allow in from 198.51.100.20 to 224.0.0.18# 198.51.100.10sudo ufw allow in from 198.51.100.10 to 224.0.0.18# 198.51.100.20/etc/sysctl.conf
net.ipv4.ip_nonlocal_bind=1
sudo sysctl -p # 重新加载配置更改sudo apt-get install keepalived/etc/keepalived/keepalived.conf
/etc/haproxy/haproxy.cfg
bind 198.51.100.50:80sudo service haproxy restartsudo ip addr show | grep eth0 # 应该列出共享 IPsudo ip addr show | grep eth0 # 不应该列出共享 IPsudo service haproxy stop
sudo ip addr show | grep eth0 # 不应列出共享 IPsudo ip addr show | grep eth0 # 应该列出共享 IPsudo service haproxy start
sudo ip addr show | grep eth0 # 应该列出共享 IPsudo ip addr show | grep eth0 # 不应该列出共享 IP vrrp_script chk_haproxy { # Requires keepalived-1.1.13
script "killall -0 haproxy" # cheaper than pidof
interval 2 # check every 2 seconds
weight 2 # add 2 points of priority if OK
}
vrrp_instance VI_1 {
interface eth0
state MASTER
virtual_router_id 51
priority 101 # 101 on primary, 100 on secondary
virtual_ipaddress {
198.51.100.50
}
track_script {
chk_haproxy
}
}
【讨论】:
Matt Rice 的回答非常好,但请注意,如果您在 Red Hat EL 7 上运行 SELinux,则需要
sudo setsebool haproxy_connect_any on
...否则 haproxy 将无法在当前没有虚拟 IP 地址的系统上启动,并抱怨它无法绑定。
【讨论】: