Linux keepalived vrrp_track_process работает не так, как ожидалось

Вопрос или проблема

keepalived конфигурация на node01:

vrrp_track_process track_haproxy {
      process haproxy
      weight 10
}

vrrp_instance VI_1 {
        state MASTER
        interface ens33
        virtual_router_id 51
        priority 255
        advert_int 1
        authentication {
              auth_type PASS
              auth_pass mypassword
        }
        virtual_ipaddress {
              10.0.0.20/24
        }
        track_process {
                track_haproxy
        }
}

keepalived конфигурация на node02:

vrrp_track_process track_haproxy {
      process haproxy
      weight 10
}

vrrp_instance VI_1 {
        state BACKUP
        interface ens33
        virtual_router_id 51
        priority 254
        advert_int 1
        authentication {
              auth_type PASS
              auth_pass mypassword
        }
        virtual_ipaddress {
              10.0.0.20/24
        }
        track_process {
                track_haproxy
        }
}

Проблема в том, что когда сервис haproxy на node01 останавливается, VIP 10.0.0.20/24 не удаляется с node01, а затем не назначается node02, как я ожидал.

Пожалуйста, помогите. Спасибо.

Ответ или решение

Проблема, которую вы описали, связана с тем, что Keepalived не корректно отслеживает состояние процесса HAProxy и, соответственно, не производит необходимое состояние для перемещения VIP (виртуального IP-адреса) с одного узла на другой. Давайте разберем возможные причины данной проблемы и способы её устранения.

1. Проверка состояния процесса и конфигурации

Во-первых, убедитесь, что процесс HAProxy действительно запускается на обоих узлах. Вы можете использовать команду ps aux | grep haproxy, чтобы проверить, запущен ли он. Если процесс не запущен, то Keepalived не сможет его отследить.

2. Логирование Keepalived

Обратите внимание на логи Keepalived. Логи можно найти в /var/log/syslog или /var/log/messages (в зависимости от вашей системы). Они могут содержать полезные сообщения, указывающие на причину проблемы. Обратите внимание на сообщения об ошибках, связанных с отслеживанием процесса.

3. Правильное использование vrrp_track_process

Убедитесь, что вы правильно настроили vrrp_track_process. Если вы используете одну и ту же конфигурацию на обоих узлах, проверьте, чтобы конфигурация vrrp_track_process была идентичной, как вы и сделали. Однако важно также, чтобы название процесса совпадало.

Также посмотрите на роль weight — он указывает, насколько приоритетом будет переопределённый узел при его недоступности. Это может повлиять на поведение Keepalived при переключении.

4. Параметры системы

Если у вас активно используется SELinux, он может блокировать действия Keepalived. Вы можете временно отключить SELinux для тестирования, выполнив команду setenforce 0, или настроить его соответственно.

5. Проверка сетевого интерфейса

Убедитесь, что интерфейс, указанный в конфигурации (ens33), активен и может отправлять/принимать пакеты. Используйте команды ip addr или ifconfig для проверки статуса интерфейса.

6. Тестирование

После внесения изменений в конфигурацию перезапустите Keepalived на обоих узлах с помощью следующих команд:

sudo systemctl restart keepalived

После перезапуска попробуйте остановить процесс HAProxy и смотрите логи Keepalived на предмет изменения состояния VIP.

7. Синхронизация состояний между узлами

Убедитесь, что между двумя узлами нет проблем с сетью, которые могут препятствовать правильной работе Keepalived. Используйте такие инструменты, как ping и telnet, чтобы проверить доступность сетевых служб.

Заключение

Если после всех перечисленных шагов проблема не устранена, попробуйте протестировать на более простом уровне (например, на локальном тестовом окружении) или обновите вашу версию Keepalived до последней. Возможно, версия, которую вы используете, имеет известные проблемы, которые решены в более поздних релизах.

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

Оцените материал
Добавить комментарий

Капча загружается...