2025年9月25日: PostgreSQL 18 发布!

Postgres Operator v1.6.0

发布于 2020-12-26,作者 Zalando SE
相关开源项目

和去年圣诞节一样,Zalando 的 Postgres as a Service 团队在 2020 年底为 Kubernetes 发布了新的 Postgres Operator 版本。这算是一种传统吗?让我们来看看我们为大家带来了什么。

Postgres 13 和就地主版本升级

此版本包含对最新 PostgreSQL 主版本 Spilo 13 和 Patroni 2.0 的支持。借助此新版本和新的 Spilo 镜像,我们尝试了简单的就地升级,目前为手动执行。升级现在变得容易多了。可以通过更改 PostgreSQL 集群清单中的版本号来启动升级,并且在 pod 轮换后需要在主实例上手动运行升级脚本。尚未完全自动化,但仍然比克隆现有集群快得多。

通过 PVC 实现 K8s 原生的卷大小调整

到目前为止,在线卷大小调整(无故障转移)仅在 AWS 上受支持,并且需要特权容器来更新文件系统。使用新的 storage_resize_mode 选项,用户可以选择仅更新 PersistentVolumeClaims,并让 Kubernetes 处理将大小调整传播到卷。这是新的默认设置,如果您仍然使用 spilo_privileged 选项,可以禁用它。

Postgres 集群的删除保护

为了避免轻松删除 Postgres 清单(尽管可以轻松及时地从例如 AWS S3 恢复,但删除清单可能会产生重大影响),您现在可以启用删除保护。这可以防止您无意中删除清单。删除仅在通过注解将清单标记为删除时才执行。理想情况下,您可以在 K8s admission controller 级别补充此功能。

副本的连接池

现在可以通过 Postgres 清单启用副本和主服务的连接池,以便您也可以轻松地将读取工作负载扩展到更大的应用程序连接数。

更多功能和改进

自 5 月份上次发布以来,还进行了许多其他改进。我们仍然很高兴看到来自我们的开发人员和 Postgres 社区的大量贡献。其中包括:

  • 完全支持 NodeAffinity
  • 服务可配置的 ExternalTrafficPolicy
  • 选择备用调度程序
  • 从 secret 源的 Pod 环境变量
  • 能够将 WAL 文件(wal-e)和逻辑备份发送到 GCS
  • 支持 scram-sha-256 散列以进行密码加密

此外,我们的团队还提供了以下补充:

  • 允许将注解从清单继承到所有主要的子资源
  • 在清单中为数据库的默认角色设置 search_path
  • 单独的 teams CRD 来管理其他集群成员

请仔细查看我们详细的 更改日志文档。有一些破坏性更改以允许主版本升级,例如将更改您的 WAL 备份路径。

尽情享受这个新版本吧。我们很乐意收到您的反馈和进一步的贡献!

保持健康!