KeepAliveD + HaProxy - только мастер должен запускать активную службу HaProxy
Возможно ли настроить keepalived так, чтобы только главный сервер использовал активную службу из haproxy?
В настоящее время LB1 и LB2 (оба с keepalived и haproxy) отлично работают. Но иногда некоторые запросы берутся из LB2 (который является резервной копией, и журналы также показывают это), что приводит к ошибке соединения в браузере
Я деактивировал haproxy на LB2 (остановка службы haproxy) и все работает нормально. Но теперь, когда LB1 выходит из строя, LB2 переходит в master с незапущенным haproxy сервисом.
Я использую Ubuntu Server 14.04.
1 ответ
Метод уведомляется по имени. Вы должны положить пример в keepalived.conf
(на обоих серверах:
notify /etc/keepalived/notify-keepalived.sh
И в notfiy-keepalived.sh
следующий код:
#!/bin/bash
TYPE=$1
NAME=$2
STATE=$3
case $STATE in
"MASTER") /usr/sbin/service haproxy start
;;
"BACKUP") /usr/sbin/service haproxy stop
;;
"FAULT") /usr/sbin/service haproxy stop
exit 0
;;
*) /sbin/logger "haproxy unknown state"
exit 1
;;
esac
Теперь keepalived будет выполнять команды при входе в одно из трех состояний.