К нам в EFSOL обратился клиент с проблемой разваливающегося продакшн-кластера PostgreSQL, который также находился под постоянно высокой нагрузкой (предельной для используемых ресурсов). Проблема стала системной и повторялась периодически. Развал кластера решался реинитом отвалившейся ноды, но это было только временное решение до следующего сбоя. DevOps-специалисты EFSOL произвели разбор и установили следующее:
В момент прерывания работы в сетевой подсистеме ВМ (привет, Hetzner), происходило переключение...
Основные компоненты кластера PostgreSQL • Patroni предоставляет шаблон для настройки высокодоступного кластера PostgreSQL. • ETCD хранит состояние кластера PostgreSQL. Когда обнаруживаются какие-либо изменения в состоянии любого узла PostgreSQL, Patroni обновляет изменение состояния в хранилище ключей-значений ETCD. ETCD использует эту информацию для выбора главного узла и поддержания работоспособности кластера. • HAProxy отслеживает изменения в узлах Master/Slave и подключается к соответствующему главному узлу, когда клиенты запрашивают соединение...