- 借助容器生态系统的进步(如 Kubernetes 有状态集、PVC 等),在容器中运行 PostgreSQL 变得容易,但在生产环境中仍需深思熟虑和规划。
- 在 Kubernetes 生产环境中运行 PostgreSQL 需考虑的事项:自动部署新实例、故障转移、调整卷大小、快照备份、测试升级、跨环境部署等。
- 运行 HA PostgreSQL 的基本步骤:选择多云容器编排平台(如 Kubernetes)、安装多云容器存储解决方案(如 Portworx)、简单高效的 HA 配置可运行单个 PostgreSQL 实例并设置 px 复制为"repl:"3""、扩展时使用 PostgreSQL 复制发送只读请求到从节点同时保持 px 复制为"repl:"3"或"2""以实现更快故障转移和更少实例总数、可设置"io_priority:"high""以在快速存储介质上调度实例并使用日志设备提高性能。
- PostgreSQL 可在单节点或集群配置中运行,首选复制技术是使用预写日志(WAL),单节点加 Portworx 复制卷可提供更简单高效的 HA 解决方案,Portworx 可同步复制主从节点的 PVC,恢复数据库实例成本低、恢复时间短、性能无下降。
- 在 Kubernetes 上部署 PostgreSQL 时,容器镜像包含数据库版本和库,Kubernetes 可捕获数据库配置等,可参考 Crunchy Data 的容器和 Kubernetes 工件,使用 Helm 图表快速部署,如使用 Patroni helm 图表部署复制 3 节点集群或单个节点实例,通过定义存储类对象可声明式处理存储,还可使用 Kubernetes Stateful Sets 处理副本集配置。
- 故障转移场景:通过隔离节点并删除 PostgreSQL pod,Kubernetes 与 Portworx 的 Kubernetes 调度扩展器 STORK 合作确定最佳节点来重启 pod,故障转移应在短时间内完成,类似上述 PostgreSQL 复制配置。
- 关于 PostgreSQL 存储操作:可动态扩展卷且零停机,Katacoda 教程展示从 Kubernetes 命令行界面运行简单命令可实现,Portworx 卷可按需扩展且不立即增加存储容量;可通过 Portworx CLI 或 Stork 安排快照,Katacoda 教程展示如何使用 Stork 创建按需快照及从快照启动新实例进行时间点恢复。
- 结论:可利用 Portworx 在 Kubernetes 上轻松运行 HA PostgreSQL 容器,可根据集群大小选择不同的复制方式,更多信息可参考 Katacoda 教程。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。