Postgres Operator
在由 Patroni 提供支持的 Kubernetes (K8s) 上提供易于运行的高可用性 PostgreSQL 集群。它仅通过 Postgres 清单 (CRD) 进行配置,以轻松集成到自动化 CI/CD
管道中,而无需直接访问 Kubernetes API
,从而促进基础设施即代码(infrastructure as code)
而不是手动操作。
- Patroni: https://github.com/zalando/patroni
- PostgreSQL: https://www.postgresql.org/
Operator 功能
Postgres
集群变化的滚动更新,包括快速的小版本更新- 无需重新启动
pod
即可调整实时卷大小(AWS
EBS
、PVC
) - 使用
PGBouncer
进行数据库连接池 - 支持
PG13
的快速升级。支持所有集群全局升级 - 恢复和克隆
Postgres
集群(包括主要版本升级) - 此外,可以配置到
S3
存储桶的逻辑备份 - 来自
S3 WAL
存档的备用集群 - 可针对非云环境进行配置
K8s
上的基本凭证和用户管理,简化应用程序部署- 支持自定义
TLS
证书 - 创建和编辑
Postgres
集群清单的UI
- 在
Amazon AWS
、Google Cloud
、OpenShift
和Kind
本地运行良好 - 支持
AWS
EBS
gp2
到gp3
迁移,支持iops
和吞吐量配置
PostgreSQL 功能
- 支持
PostgreSQL 14
,从9.6+
开始 - 通过
Patroni
流式复制集群 - 通过 Spilo 使用 pg_basebackup / WAL-E 进行时间点恢复(
Point-In-Time-Recovery
)- Spilo: https://github.com/zalando/spilo
- pg_basebackup: https://www.postgresql.org/docs/11/app-pgbasebackup.html
- WAL-E: https://github.com/wal-e/wal-e
- 预加载库:bg_mon, pg_stat_statements, pgextwlist, pg_auth_mon
- bg_mon: https://github.com/CyberDem0n/bg_mon
- pg_stat_statements: https://www.postgresql.org/docs/14/pgstatstatements.html
- pgextwlist: https://github.com/dimitri/pgextwlist
- pg_auth_mon: https://github.com/RafiaSabih/pg_auth_mon
- 包括。 流行的
Postgres
扩展,例如 decoderbufs, hypopg, pg_cron, pg_partman,