можно ли настроить keepalived так, чтобы активная служба от haproxy запускалась только на главном сервере?
В настоящее время LB1 и LB2 (как с keepalived, так и с haproxy) отлично работают. Но иногда некоторые запросы берутся из LB2 (который является резервным, и журналы также показывают это), что приводит к ошибке подключения в браузере.
Я отключил haproxy на LB2 (остановка сервиса haproxy), и все работает нормально. Но теперь, когда LB1 выходит из строя, LB2 переходит в мастер с не запущенной службой haproxy.
Я использую Ubuntu Server 14.04.
Метод получает название. Вы должны подать пример 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 будет выполнять команды при входе в одно из трех состояний.