架构

参考文档:Zalando Postgres Operator 官方文档 PostgreSQL Operator 架构

PostgreSQL Operator 采用 Kubernetes Operator 模式管理 PostgreSQL 集群,主要包含以下核心组件:

目录

核心组件

  1. Operator 控制器

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

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

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

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

数据流程

  1. 用户通过 Kubernetes API 创建 PostgreSQL 自定义资源
  2. Operator 控制器监听资源变化并创建相关 Kubernetes 资源
  3. Patroni 负责集群的初始化和高可用性管理
  4. Spilo 启动 PostgreSQL 实例并应用配置
  5. 监控组件收集指标并进行显示

部署模式

PostgreSQL Operator 支持以下部署模式:

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