配置高可用 PostgreSQL 集群
概述
本指南介绍如何在 Kubernetes 上配置高可用 PostgreSQL 集群,使用 Patroni 实现自动故障转移和集群管理,并支持同步复制、连接池、监控等功能。
前提条件
- 必须已安装 PostgreSQL Operator
- 必须配置支持动态供给的 storage class
- 必须授予创建 CRD 资源的权限
- 确保 Kubernetes 集群具有充足的资源(至少 3 个可用节点)
- 必须配置备份存储(S3 或兼容存储)
操作步骤
1. 创建高可用集群
2. 验证集群状态
示例输出:
3. 配置连接池器(可选)
4. 配置监控(可选)
关键参数
集群配置
Patroni 配置
备份配置
结果验证
- 验证集群状态为 Running
- 确认所有 Pods 都正常运行
- 检查 Patroni 状态:
- 测试故障转移: 观察新的 leader 选举过程
- 验证同步复制状态:
最佳实践
- 在生产环境中,使用配置了合适 IOPS 的 SSD 存储
- 配置资源限制时保留 20-30% 的缓冲
- 定期测试故障转移和恢复操作步骤
- 为以下内容配置监控告警:
- 主从延迟
- 连接数
- 磁盘使用率
- CPU/内存使用率
- 启用定时备份并测试恢复操作步骤
- 使用同步复制时,至少配置 2 个同步副本
- 定期进行性能调优和参数优化