Patroni: инструмент для организации и управления High Availability (HA) кластером PostgreSQL с использованием ZooKeeper, etcd или Consul

Patroni — это фреймворк для построения высокодоступных (HA) кластеров PostgreSQL, написанный на Python. Для обеспечения максимальной доступности Patroni поддерживает различные распределенные хранилища конфигураций, такие как: ZooKeeper, etcd, Consul или Kubernetes. Это может понадобиться инженерам по базам данных, системным администраторам баз данных, инженерам по DevOps и специалистам по SRE, которые хотят быстро развернуть PostgreSQL высокой доступности в центрах обработки данных — или где-либо еще.
Мы рассматриваем Patroni скорее как «шаблон», потому что это далеко не универсальная и готовая к использованию система репликации. У нее есть свои недостатки. Необходимо грамотно подходить к конфигурации Patroni под свои нужды. Существует множество способов обеспечения высокой доступности с помощью PostgreSQL; список см. в Документация PostgreSQL.
В настоящее время поддерживаются следующие версии PostgreSQL: 9.3–18.
Примечание для пользователей Citus: Начиная с версии 3.0, Patroni интегрируется с расширением базы данных для Postgres Citus. Ознакомьтесь со страницей поддержки Citus в документации Patroni для получения дополнительной информации о том, как использовать системы высокой доступности Patroni вместе с распределенным кластером Citus.
Примечание для пользователей Kubernetes: Patroni может работать нативно на Kubernetes. Ознакомьтесь с разделом Kubernetes в документации Patroni.