Назад | Перейти на главную страницу

Мастер keepalived не может вернуть виртуальный IP-адрес после восстановления

Шаги

  1. Запустите как ведущий, так и ведомый
  2. Продолжайте пинговать виртуальный IP-адрес (т.е. 192.168.10.100)
  3. Мастер выключения
  4. Ведомый переходит в состояние МАСТЕР
  5. Перезапустить мастер
  6. Подчиненное устройство переходит в состояние BACKUP, а ведущее устройство переходит в состояние MASTER.

Ping не работает после шага 6. Ни один сервер не получает виртуальный IP-адрес. (Я проверил с ip addr show eth1)

Мастер может вернуть виртуальный IP-адрес, пока я не перезапущу службу поддержки активности.

Как сделать так, чтобы мастер получал виртуальный ip без перезапуска сервиса?

Конфигурация Keepalived:

host1 (мастер)

vrrp_instance VI_1 {
    state MASTER
    interface eth1
    virtual_router_id 51
    priority 101
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass secret
    }
    virtual_ipaddress {
        192.168.10.100
    }
}

host2 (подчиненный)

vrrp_instance VI_1 {
    state BACKUP
    interface eth1
    virtual_router_id 51
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass secret
    }
    virtual_ipaddress {
        192.168.10.100
    }
}

Единственное, что отличается между вашей конфигурацией и конфигурацией, которую я использую, это то, что у меня

virtual_ipaddress { <ip> dev <devname> }

Это может быть не обязательно, но это единственное отличие, которое я вижу по сравнению с известной рабочей установкой.

Пояснения можно найти здесь: https://github.com/acassen/keepalived/blob/317555e304372205cf634f252e72c5b6de0eb1b6/doc/man/man5/keepalived.conf.5

При выборе МАСТЕРА побеждает высший приоритет. чтобы быть МАСТЕРОМ, сделай это 50 больше, чем на других машинах.

Разница между приоритетами MASTER и BACKUP 101-100 = 1. Оно должно быть не менее 50. Измените приоритет MASTER со 101 на 100 и приоритет BACKUP со 100 на 50.