Tôi đang cố gắng sử dụng keepalived 配置两个事件负载均衡器服务器。
它与标准配置略有不同,我们有两台服务器和一个虚拟 IP。
我想要的只是当 loadbalancer_1 出现故障时,loadbalancer_2 会获取他的 IP 地址,反之亦然。
loadbalancer_1 IP 地址:xx.237.193.132/27loadbalancer_2 IP 地址:xx.237.193.134/27
当我第一次启动 loadbalancer_1 时,它也会使用 loadbalancer_2 IP 地址,因为在该特定时刻 keepalived 尚未在 loadbalancer_2 上启动。但当我启动 loadbalancer_2 giờ,loadbalancer_1 上仍然有他的 IP 地址。因此,loadbalancer_1。是两个 IP 地址的主站。
当我首先启动 loadbalancer_2 时,也会发生同样的情况,因此较早启动的那些服务器将成为两个 IP 地址的主服务器。
登录loadbalancer_1:
Jul 19 19:18:00 001 Keepalived_vrrp[9751]: Registering Kernel netlink reflector
Jul 19 19:18:00 001 Keepalived_vrrp[9751]: Registering Kernel netlink command channel
Jul 19 19:18:00 001 Keepalived_vrrp[9751]: Registering gratuitous ARP shared channel
Jul 19 19:18:00 001 Keepalived_vrrp[9751]: Opening file '/etc/keepalived/keepalived.conf'.
Jul 19 19:18:00 001 Keepalived_healthcheckers[9750]: Registering Kernel netlink reflector
Jul 19 19:18:00 001 Keepalived_healthcheckers[9750]: Registering Kernel netlink command channel
Jul 19 19:18:00 001 Keepalived_healthcheckers[9750]: Opening file '/etc/keepalived/keepalived.conf'.
Jul 19 19:18:00 001 Keepalived_vrrp[9751]: Configuration is using : 71869 Bytes
Jul 19 19:18:00 001 Keepalived_vrrp[9751]: Using LinkWatch kernel netlink reflector...
Jul 19 19:18:00 001 Keepalived_vrrp[9751]: VRRP_Instance(web_loadbalancer_2) Entering BACKUP STATE
Jul 19 19:18:00 001 Keepalived_healthcheckers[9750]: Configuration is using : 12587 Bytes
Jul 19 19:18:00 001 Keepalived_healthcheckers[9750]: Using LinkWatch kernel netlink reflector...
Jul 19 19:18:01 001 Keepalived_vrrp[9751]: VRRP_Instance(web_loadbalancer_1) Transition to MASTER STATE
Jul 19 19:18:02 001 Keepalived_vrrp[9751]: VRRP_Instance(web_loadbalancer_1) Entering MASTER STATE
Jul 19 19:18:04 001 Keepalived_vrrp[9751]: VRRP_Instance(web_loadbalancer_2) Transition to MASTER STATE
Jul 19 19:18:05 001 Keepalived_vrrp[9751]: VRRP_Instance(web_loadbalancer_2) Entering MASTER STATE
登录loadbalancer_2:
Jul 19 19:18:08 002 Keepalived_vrrp[468]: Registering Kernel netlink reflector
Jul 19 19:18:08 002 Keepalived_vrrp[468]: Registering Kernel netlink command channel
Jul 19 19:18:08 002 Keepalived_vrrp[468]: Registering gratuitous ARP shared channel
Jul 19 19:18:08 002 Keepalived_vrrp[468]: Opening file '/etc/keepalived/keepalived.conf'.
Jul 19 19:18:08 022 Keepalived_vrrp[468]: Configuration is using : 71869 Bytes
Jul 19 19:18:08 002 Keepalived_vrrp[468]: Using LinkWatch kernel netlink reflector...
Jul 19 19:18:08 002 Keepalived_vrrp[468]: VRRP_Instance(web_loadbalancer_1) Entering BACKUP STATE
Jul 19 19:18:08 002 Keepalived_healthcheckers[467]: Registering Kernel netlink reflector
Jul 19 19:18:08 002 Keepalived_healthcheckers[467]: Registering Kernel netlink command channel
Jul 19 19:18:08 002 Keepalived_healthcheckers[467]: Opening file '/etc/keepalived/keepalived.conf'.
Jul 19 19:18:08 002 Keepalived_healthcheckers[467]: Configuration is using : 12587 Bytes
Jul 19 19:18:08 002 Keepalived_healthcheckers[467]: Using LinkWatch kernel netlink reflector...
Jul 19 19:18:09 002 Keepalived_vrrp[468]: VRRP_Instance(web_loadbalancer_2) Transition to MASTER STATE
Jul 19 19:18:10 002 Keepalived_vrrp[468]: VRRP_Instance(web_loadbalancer_2) Entering MASTER STATE
Jul 19 19:18:11 002 Keepalived_vrrp[468]: VRRP_Instance(web_loadbalancer_2) Received lower prio advert, forcing new election
loadbalancer_1的配置:
global_defs {
router_id loadbalancer_1
lvs_id loadbalancer_1
}
vrrp_instance web_loadbalancer_1 {
state MASTER
interface eth0
virtual_router_id 10
priority 110
advert_int 1
virtual_ipaddress {
xx.237.193.132/27 dev eth0
}
authentication {
auth_type PASS
auth_pass 45f3fgv1
}
}
vrrp_instance web_loadbalancer_2 {
state BACKUP
interface eth0
virtual_router_id 20
priority 200
smtp_alert
advert_int 1
virtual_ipaddress {
xx.237.193.134/27 dev eth0
}
authentication {
auth_type PASS
auth_pass 45f3fgv2
}
}
loadbalancer_2的配置:
global_defs {
router_id loadbalancer_2
lvs_id loadbalancer_2
}
vrrp_instance web_loadbalancer_1 {
state BACKUP
interface eth0
virtual_router_id 10
priority 100
advert_int 1
virtual_ipaddress {
xx.237.193.132/27 dev eth0
}
authentication {
auth_type PASS
auth_pass 45f3fgv1
}
}
vrrp_instance web_loadbalancer_2 {
state MASTER
interface eth0
virtual_router_id 20
priority 210
advert_int 1
virtual_ipaddress {
xx.237.193.134/27 dev eth0
}
authentication {
auth_type PASS
auth_pass 45f3fgv2
}
}
我建议向两个 MASTER 部分添加 preempt_delay 10.
查看 server2 的最后一个日志条目
Jul 19 19:18:11 002 Keepalived_vrrp[468]: VRRP_Instance(web_loadbalancer_2) Received lower prio advert, forcing new election
它似乎刚刚意识到自己可以接任 VRRP 主设备。如果没有发生这种情况,也许稍后可以查看日志。
第一台服务器启动是正常的,因为没有其他服务器而假设为主服务器,然后当第二台服务器变为事件状态时,vrrp 重新选举应该选择配置最高优先级的服务器。
Tôi là một lập trình viên xuất sắc, rất giỏi!