Архитектура
Reference Document: Zalando Postgres Operator Official Documentation

PostgreSQL Operator управляет кластерами PostgreSQL, используя паттерн Kubernetes Operator, и в основном состоит из следующих основных компонентов:
Содержание
Основные компоненты
-
Operator Controller
- Отслеживает изменения в Custom Resource Definitions (CRD) PostgreSQL
- Отвечает за создание кластера, масштабирование, обновления конфигурации и другие операции
- Управляет жизненным циклом кластера
-
Patroni
- Обеспечивает гарантии высокой доступности
- Обрабатывает переключение между primary и standby и failover
- Управляет топологией кластера и статусом участников
-
Spilo
- Предоставляет контейнерный образ PostgreSQL
- Интегрирует Patroni и PostgreSQL
- Обрабатывает конфигурацию инициализации и запуск
-
Monitoring Component
- Интегрирует Prometheus для сбора метрик
- Предоставляет дашборды Grafana
- Поддерживает настройку правил оповещений
Поток данных
- Пользователи создают Custom Resource PostgreSQL через Kubernetes API
- Operator Controller отслеживает изменения ресурсов и создает связанные ресурсы Kubernetes
- Patroni отвечает за инициализацию и управление высокой доступностью кластера
- Spilo запускает экземпляр PostgreSQL и применяет конфигурацию
- Компонент мониторинга собирает метрики и отображает их
Режимы
PostgreSQL Operator поддерживает следующие режимы развертывания:
- Single Cluster Mode: работает в одном Kubernetes кластере
- Multi-Cluster Mode: управляет экземплярами PostgreSQL в нескольких Kubernetes кластерах
- High Availability Mode: обеспечивает автоматический failover через Patroni