Комментарии 22
Я что-то не понял. Если мы кластер прячем за haproxy, то зачем на кластере keepalived? Мы же с помощью haproxy проверяем, кто является master, зачем им в этом случае общий IP? Я понимаю, если у нас два хоста с haproxy, тут VIP нам позволит обеспечить один и тот же адрес подключения.
Мы поднимаем ванильные кластера PosrtgreSQL+Patroni+etcd+haproxy в полном комплекте, сразу готовые к работе за 15 минут. Дело проработки сценариев развертывания.
Скажу больше, у нас даже 3 хоста с HAProxy. И, конечно же, нам в кластере нужна единая точка подключения. Patroni умеет переключать роль лидера, контролирует ее доступность, сам может «восстанавливать» узлы PostgreSQL, которые, например, возвращены из обслуживания, но не умеет управлять входящим трафиком. HAProxy, подсматривая за тем, кто лидер в Patroni, умеет направлять трафик на лидера PostgreSQL, но HAProxy по-прежнему не дает нам единой точки подключения. Как раз Keepalived и дает нам VIP, поддерживая его в нужном активном состоянии на одном из узлов кластера.
Бога ради, haproxy делайте сколько необходимо. Но повторю, не понимаю, зачем нужен keepalived на серверах СУБД, тем более в статье выше написано об опасности расхождения VIP адреса и master PG. Почему haproxy не проверяет статус серверов через простой health check script, в этом случае keepalived лишний.
начиная с 10-й версии постгрес умеет в несколько хостов в строке подключения. И умеет в определение к мастеру подключение идёт, или как попало. А сейчас это определение умеет ещё больше всяких вкусностей. Соответственно, у меня тот же непраздный вопрос: а зачем общий IP и лишние сущности в виде haproxy&keepalived?
И второе у вас гвоздями etcd в качестве DCS прибит? зачем? Патроны не только в etcd умеют.
И да, у меня есть ролей для ансибла. Поэтому разворачивание кластера (причём не только патрони+етцд) - меньше 15 минут с учётом определения всех нужных данных.
Во! У меня одиссея нет, зато есть пгбаунсер. ВотЪ.
ЗЫ. Если есть патроны, то haproxy совсем не надо дёргать внешний скрипт, вполне себе достаточно http-check expect status 200 на нужный урл, который отдают патроны.
В строке подключения какого клиента? CLI, Java, PHP, python, rust, javascript, ruby, c++, go, perl?
Любой клиент, использующий libpq + Java (у неё своя собственная библиотека, но данная возможность присутствует, проверено).
Можете поделиться ссылкой. Интересно узнать как оно унутри устроено. Если клиент подключился к слейву, а хотел к мастеру.
ИМХО, Proxima не отменяет необходимость понимать все упомянутые компоненте. То есть поднять демо за 10 минут - отлично, но для для production-ready все равно надо учиться и учиться.
ИМХО, Proxima не отменяет необходимость понимать все упомянутые компоненты. То есть поднять демо за 10 минут - отлично, но для для production-ready все равно надо учиться и учиться.
Если автоматизировать всё через terraform | ansible, то так же будет деплой за 15 минут :-)
Я понимаю, что сейчас мода на бд-кластеры. Примерно как kafka, пихают везде где только можно.
Абсолютное большинство проектов, которые я видел за последние лет 5, совсем не требовали кластерных бд. Не было таких бизнес-требований. Это с одной стороны.
С другой, часть кластеров не обеспечивала своей первичной функции - доступность кластера при недоступности одной из нод. Т.е. кластер развернули, но не протестили, или протестили, но не осилили пофиксить проблему.
С третьей, большинство проектов разворачивали кластер на одной, ну или на двух физических железках. Очевидно, при падении железки все ноды кластера тоже падают. Понимания, что для кластеров нужно минимум три физических железки есть у очень редких спецов.
🤦♂️
Если выполнять развертывание кластера осознанно и без спешки, потребуется примерно 1–1,5 дня.
В первый раз, наверно, да. Но потом берётся плейбук с гитхаба откуда вы взяли картинку, один раз вбиваются нужные вам параметры и кластер накатывается пока вы пьёте кофе.
То есть ваше решение, это просто вебморда к плейбуку, я правильно понял?
Насколько я понимаю это рекламная статья Proxima DB, хотя и без маркировки.
Как основной аргумент старые версии ПО
Некоторое недоумение, почему надо именно из репозиториев Астры их брать?
Кто запрещает взять свежие.
Да и у РедОС например новые есть в репозитории.
Но про это наверное знатоки скажут, я больше про 1С
У вас на сайте есть логотип 1С, а у 1С
https://v8.1c.ru/tekhnologii/systemnye-trebovaniya-1s-predpriyatiya-8/subd/
вас нет в списке поддерживаемых СУБД
Кто прав?
Допустим вы, но будет ли ваш кластер поддерживать 1С?
У меня ушёл не один месяц на то, чтобы разобраться со всеми этими утилитами. И то я не могу сказать, что разобрался полностью :) Меня всегда удивляло мнение, что патрони стал стандартом. Никогда не понимал - то-ли люди его только поверхностно изучали, то-ли ставили посредством каких-то ансибл скриптов, не особо разбираясь что к чему. И в течение того времени, что я разбирался, я раза 3 приставал к Александру с вопросами (не мог найти ответ в документации) :)
Кластеризация PostgreSQL за день или за 15 минут: разбираем варианты и подводные камни реализации