高可用架构

架构概述

PostgreSQL Operator 使用 Patroni 实现高可用,主要包含以下组件:

  1. Leader 选举:通过 etcd 或 Kubernetes API 进行主节点选举
  2. 故障检测:持续监控集群健康状态
  3. 自动故障转移:在主节点故障时自动切换
  4. 配置管理:统一管理集群配置

工作原理

  1. Patroni 监控 PostgreSQL 实例状态
  2. 定期向 DCS(分布式配置存储)报告状态
  3. 当主节点故障时:
    • 检测到主节点不可用
    • 从 DCS 中移除故障节点
    • 选举新的主节点
    • 重新配置副本节点

配置参数

参数默认值说明
ttl30主节点租约时间(秒)
loop_wait10状态检查间隔(秒)
retry_timeout10重试超时时间(秒)
maximum_lag_on_failover1048576最大允许的复制延迟(字节)

最佳实践

  1. 使用奇数个节点(推荐 3 个)
  2. 配置合理的资源限制
  3. 定期测试故障转移
  4. 监控集群健康状态