
Я настроил связанные сетевые интерфейсы, чтобы обеспечить большую HA для настройки HaProxy (HaProxy — это балансировщик нагрузки Linux) keepalived
на двух серверах Ubuntu 20.04.1 LTS. Связанные сетевые интерфейсы, настроенные с помощью netplan, работают правильно, а настройка с помощью keepalived
. Однако keepalived
не обрабатывает главный и резервный узлы кластера keepalived
должным образом, и оба отображаются как главные.
# This file is generated from information provided by the datasource. Changes
# to it will not persist across an instance reboot. To disable cloud-init's
# network configuration capabilities, write a file
# /etc/cloud/cloud.cfg.d/99-disable-network-config.cfg with the following:
# network: {config: disabled}
network:
version: 2
ethernets:
eth0:
dhcp4: true
eth1:
dhcp4: false
eth2:
dhcp4: false
bonds:
bond0:
dhcp4: false
interfaces:
- eth1
- eth2
parameters:
mode: active-backup
primary: eth1
addresses:
- 192.168.0.6/24
nameservers:
addresses:
- 192.168.0.1
vrrp_instance VI_01 {
state MASTER
interface bond0
virtual_router_id 51
priority 101
advert_int 1
virtual_ipaddress {
192.168.0.10/24
}
vrrp_instance VI_01 {
state BACKUP
interface bond0
virtual_router_id 51
priority 100
advert_int 1
virtual_ipaddress {
192.168.0.10/24
}
}
Кто-нибудь знает, как это исправить?
Спасибо,
Лео
решение1
Попробовав решение, которое включало добавление mac-адресов в конфигурацию netplan, я обнаружил, что та же проблема с keepalived возникала, а именно, что обе машины отображались как master. Дальнейшее расследование показало, что mac-адрес, используемый для связанного интерфейса на обоих серверах, был идентичен, что и оказалось проблемой.
Изменение имени связанного интерфейса в netplan на втором сервере на bond1 (а не bond0), а затем использование этого имени в файле конфигурации keepalived решило проблему, так как оба связанных интерфейса имели уникальные mac-адреса. Keepalived может правильно определить, какой сервер является главным, а какой — резервным.
Спасибо за помощь,
Лео