架构

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

PostgreSQL Operator 使用 Kubernetes Operator 模式管理 PostgreSQL 集群,主要由以下核心组件组成:

目录

核心组件

  1. Operator Controller

    • 监听 PostgreSQL Custom Resource Definitions (CRD) 的变化
    • 负责集群的创建、扩缩容、配置更新等操作
    • 管理集群的生命周期
  2. Patroni

    • 提供高可用性保障
    • 处理主备切换和故障转移
    • 管理集群拓扑和成员状态
  3. Spilo

    • 提供 PostgreSQL 容器镜像
    • 集成 Patroni 和 PostgreSQL
    • 负责初始化配置和启动
  4. 监控组件

    • 集成 Prometheus 进行指标采集
    • 提供 Grafana 仪表盘
    • 支持告警规则配置

数据流

  1. 用户通过 Kubernetes API 创建 PostgreSQL Custom Resource
  2. Operator Controller 监听资源变化并创建相关的 Kubernetes 资源
  3. Patroni 负责集群的初始化和高可用管理
  4. Spilo 启动 PostgreSQL 实例并应用配置
  5. 监控组件采集指标并展示

模式

PostgreSQL Operator 支持以下部署模式:

  • 单集群模式:运行在单个 Kubernetes 集群中
  • 多集群模式:管理跨多个 Kubernetes 集群的 PostgreSQL 实例
  • 高可用模式:通过 Patroni 实现自动故障转移