Я собираюсь использовать HAProxy в качестве балансировщика нагрузки, который будет балансировать запросы на 3 серверах приложений. Но что, если в какой-то момент произойдет сбой балансировочного сервера (HAProxy)? Я думал о клонировании первого балансировщика, чтобы, если основной выйдет из строя, его место займет другой. Что-то вроде HSRP.
Является ли это возможным? если да, то как?
Обычно это делается с использованием некоторой формы VRRP поддержание виртуального IP-адреса на одном или нескольких серверах, на каждом из которых работает HAproxy.
Обычно это делается с помощью оставайся живым, есть гид Вот что должно помочь.
Обратите внимание, что некоторые люди используют для этого Heartbeat, но Вилли Тарро (человек, стоящий за HAproxy) упомянул, что это не лучший инструмент для работы. Вы можете узнать больше об этом в это сообщение из списка рассылки HAproxy.
HSRP работает только на коммутаторах и маршрутизаторах Cisco.
Ты можешь использовать uCARP(Протокол CARP) или vrrpd(Протокол VRRP). Требуется, чтобы оба HAproxy находились в одной сети.
Если ваш шлюз поддерживает OSPF, вы можете использовать OSPF (Quagga). Вы можете установить другой приоритет интерфейса OSPF. Когда один HAproxy выходит из строя, шлюз удаляет его из таблицы маршрутизаторов.
Настройка высокой доступности HAProxy возможна с Сердцебиение в системах Linux, CARP или BSD.
Для этого требуется один «плавающий» IP-адрес (который будет использоваться для HAProxy), который будет назначен одному из компьютеров в кластере. Один текущий компьютер с IP-адресом выйдет из строя, сервер отработки отказа получит IP-адрес и продолжит обслуживание запросов. Если вы объедините CARP с pfsync, состояние TCP-соединения будет синхронизироваться между серверами, и переключение при отказе будет «плавным».