架构
参考文档: Zalando Postgres Operator Official Documentation

PostgreSQL Operator 使用 Kubernetes Operator 模式管理 PostgreSQL 集群,主要由以下核心组件组成:
目录
核心组件
-
Operator Controller
- 监听 PostgreSQL Custom Resource Definitions (CRD) 的变化
- 负责集群的创建、扩缩容、配置更新等操作
- 管理集群的生命周期
-
Patroni
- 提供高可用性保障
- 处理主备切换和故障转移
- 管理集群拓扑和成员状态
-
Spilo
- 提供 PostgreSQL 容器镜像
- 集成 Patroni 和 PostgreSQL
- 负责初始化配置和启动
-
监控组件
- 集成 Prometheus 进行指标采集
- 提供 Grafana 仪表盘
- 支持告警规则配置
数据流
- 用户通过 Kubernetes API 创建 PostgreSQL Custom Resource
- Operator Controller 监听资源变化并创建相关的 Kubernetes 资源
- Patroni 负责集群的初始化和高可用管理
- Spilo 启动 PostgreSQL 实例并应用配置
- 监控组件采集指标并展示
模式
PostgreSQL Operator 支持以下部署模式:
- 单集群模式:运行在单个 Kubernetes 集群中
- 多集群模式:管理跨多个 Kubernetes 集群的 PostgreSQL 实例
- 高可用模式:通过 Patroni 实现自动故障转移