Появилась необходимость сделать отказоустойчивый кластер БД, так как Patroni уже используется и давно в качестве проксирования запросов выбор пал на HAProxy.
HAProxy установим в качестве контейнера в docker-compose
- IP: 192.168.10.9
Сервера Patroni:
- IP: 192.168.10.10
- IP: 192.168.10.11
Конфигурирование HAProxy состоит из 3 основных частей:
- Секция global параметры здесь устанавливаются для всего конфига
- Аргументы из командной строки имеют наивысший приоритет
- В блоках defaults, listen, frontend, backend указываем настройки проксирования запросов
Приступим.
Шаг 1. Конфигурирование сервера
Создаем директории:
|
|
Создаем файл:
|
|
Открываем на редактирование haproxy.cfg
|
|
Описание блоков настроек:
- defaults - параметры по умолчанию для всех блоков, которые находятся ниже.
- listen stats - настройки страницы статистики.
- frontend - указываем где будут приниматься клиентские запросы.
- backend - указываем сервера Patroni, на которые будут перенаправляться запросы.
В секции backend указано:
|
|
Если выполнено 3 попытки с интервалом по 3 секунды и сервер не ответил, то соединение будет прервано и переключено на другой сервер.
Шаг 2. Запуск HAProxy в docker-compose
Создаём docker-compose файл с образом HAProxy:
|
|
Содержимое файла:
|
|
Сохраняем и запускаем:
|
|
Заходим в веб-интерфейс и проверяем статусы наших серверов Patroni
|
|
Установка и настройка завершена.