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 будет выполнять команды при входе в одно из трех состояний.

Другие вопросы по тегам