高可用架构
架构概述
PostgreSQL Operator 使用 Patroni 实现高可用,主要包含以下组件:
- Leader 选举:通过 etcd 或 Kubernetes API 进行主节点选举
- 故障检测:持续监控集群健康状态
- 自动故障转移:在主节点故障时自动切换
- 配置管理:统一管理集群配置
工作原理
- Patroni 监控 PostgreSQL 实例状态
- 定期向 DCS(分布式配置存储)报告状态
- 当主节点故障时:
- 检测到主节点不可用
- 从 DCS 中移除故障节点
- 选举新的主节点
- 重新配置副本节点
配置参数
参数 | 默认值 | 说明 |
---|
ttl | 30 | 主节点租约时间(秒) |
loop_wait | 10 | 状态检查间隔(秒) |
retry_timeout | 10 | 重试超时时间(秒) |
maximum_lag_on_failover | 1048576 | 最大允许的复制延迟(字节) |
最佳实践
- 使用奇数个节点(推荐 3 个)
- 配置合理的资源限制
- 定期测试故障转移
- 监控集群健康状态