配置高可用 PostgreSQL 集群
目录
Overview
本指南介绍如何在 Kubernetes 上配置高可用的 PostgreSQL 集群,使用 Patroni 实现自动故障切换和集群管理,支持同步复制、连接池、监控等功能。
Prerequisites
- 必须已安装 PostgreSQL Operator
- 必须配置支持动态供应的存储类
- 必须授予创建 CRD 资源的权限
- 确保 Kubernetes 集群有足够资源(至少 3 个可用节点)
- 必须配置备份存储(S3 或兼容存储)
Procedure
1. 创建高可用集群
2. 验证集群状态
示例输出:
3. 配置连接池(可选)
4. 配置监控(可选)
Key Parameters
集群配置
Patroni 配置
备份配置
Result Validation
- 验证集群状态为 Running
- 确认所有 Pod 正常运行
- 检查 Patroni 状态:
- 测试故障切换:
观察新主节点选举过程
- 验证同步复制状态:
Best Practices
- 生产环境建议使用带有合适 IOPS 配置的 SSD 存储
- 资源限制配置预留 20-30% 余量
- 定期测试故障切换和恢复流程
- 配置监控告警,关注:
- 主从堆积量
- 连接数
- 磁盘使用率
- CPU/内存使用率
- 启用定时备份并测试恢复流程
- 使用同步复制时,配置至少 2 个同步副本
- 定期进行性能调优和参数优化