原文:https://www.postgresql.org/about/news/cloudnativepg-1300-released-3337/
发布日期:2026-07-06
作者:The CloudNativePG Contributors
CloudNativePG 社区宣布 CloudNativePG 1.30.0 正式发布。
这个小版本引入了新的 DatabaseRole CRD,用于以声明式、适合 GitOps 的方式管理 PostgreSQL 角色;同时新增基于 Kubernetes Lease 的主库选举机制,以提升故障转移安全性。版本还包含安全性与运维方面的重要改进,进一步巩固了 CloudNativePG 作为在 Kubernetes 上运行 PostgreSQL 工作负载的主流 operator 的地位。
社区同时发布了维护版本 1.29.2 与 1.28.4。其中 1.28.4 是 1.28.x 系列计划中的最后一个版本,仍在 1.28 上的用户应规划升级到 1.29 或 1.30。
随着 1.30.0 发布,CloudNativePG 1.28.x 系列已在 2026 年 6 月 30 日到达生命周期终点;1.29.x 系列的 EOL 日期确认为 2026 年 9 月 29 日。
1.30 的核心新增能力是 DatabaseRole 自定义资源。它把 PostgreSQL 角色作为独立 Kubernetes 对象管理,而不是内联在 Cluster 的 .spec.managed.roles 中。每个角色都有独立生命周期、状态和 RBAC,更适合 GitOps 工作流,也方便把角色定义放在拥有这些角色的应用旁边。迁移已有角色时,只需把原有 stanza 移到专用 manifest 中。
DatabaseRole 还可以包含 clientCertificate 配置块,让 operator 自动生成并续期由集群客户端 CA 签名的 TLS 客户端证书,并存放在 <databaserole-name>-client-cert Secret 中。这支持无密码的 PostgreSQL cert 认证;关闭该功能或删除资源时,Secret 会被自动清理。
CloudNativePG 1.30 引入了以集群命名的 Kubernetes Lease 对象,作为串行化主库提升的互斥机制。实例管理器必须持有该 Lease 才能作为主库运行,并会在干净关闭时释放它,因此副本无需等待完整 TTL 即可提升。相关时间参数可通过新的 .spec.primaryLease 配置。
从架构上说,Lease 是提升门禁,而不是隔离栅栏;主库隔离仍负责 fencing,Lease 用于缩小状态切换期间非协调提升的窗口。
search_path 固定(CVE-2026-55769):修复数据库所有者可在 public schema 中植入重载 operator 的提权漏洞。operator 现在会在连接池连接上固定 search_path = pg_catalog, public, pg_temp。CREATE/ALTER ROLE 前会把明文密码编码为 SCRAM-SHA-256,因此日志或扩展捕获中最多出现 SCRAM verifier,而不是明文密钥。NetworkPolicy 限制实例状态端口。Pooler 能通过 spec.pgbouncer.imageCatalogRef 引用 ImageCatalog 或 ClusterImageCatalog。.spec.monitoring.tls.enabled 启用 TLS,并在每次握手时热加载证书。status.selector 成为 VPA/HPA 目标。/pg/status 检查时,operator 会发出 PrimaryStatusCheckFailed 警告事件。该版本还支持 Kubernetes 1.36,并把默认 PostgreSQL 版本更新为 18.4。
API 变更提醒:Database、Pooler、Publication、Subscription 和 ScheduledBackup 资源中的 cluster 引用现在不可变。把这些资源重新指向另一个集群没有明确定义的语义,因此现在会被 API server 的 CEL 校验规则拒绝。
完整变更与修复请参见 CloudNativePG 1.30 发布说明。
与 1.30 同步发布的还有前一稳定系列的维护更新。两个版本都回移植了上述安全修复,包括 search_path 固定和 SCRAM-SHA-256 密码编码,并包含 VPA/HPA 支持、主库状态可见性、CNPG-I 插件自动重新加载、Kubernetes 1.36 支持、默认 PostgreSQL 18.4 以及多项错误修复。
建议所有用户升级到最新稳定版本,以获得最新功能、安全增强和错误修复。升级步骤见 升级说明。
欢迎 加入社区,共同塑造云原生 Postgres 的未来。如果你在生产环境中使用 CloudNativePG,也可以考虑把组织加入 ADOPTERS 列表,支持项目成长。