发版日志

v4.3.4

新增和优化功能

  • Security. operator 及其 Spilo、pg-agent、RDS Operator、Pgpool-II 和 PostgreSQL exporter 镜像均已基于修补后的基础镜像和依赖项重新构建,同时更新了 Go toolchain、golang.org/x/netgolang.org/x/text。v4.3.4 扫描报告显示 没有 High 或 Critical 发现项,相比 v4.3.3 中的 206 个 High 有明显下降;报告的发现项总数也从 672 降至 100。有关已修复 CVE 的完整列表,请参见安全公告 ASA-2026:00280

已修复问题

  • 降级为 standby 的集群无法重新加入其跨集群配对。 在计划中的跨集群 switchover 之后——即将 primary 打补丁为 standby,而不是删除并重新创建——降级后的集群仍然与 switchover 之前存在的拓扑进行复制,并且始终无法到达新提升的 primary。Patroni 会围绕 <cluster>-xcr endpoint 在 connect-timeout 循环中重试,但不会报告原因;由于 standby 集群没有自动重新初始化回退机制,集群可能会一直卡住,无法自行恢复。operator 现在能够识别降级集群的本地复制元数据早于 switchover——即针对正在应用的配置进行评估,而不是针对仍在运行的配置进行评估——并且在本地副本不可置信时直接查询对端集群以获取当前拓扑;如果对端不可达,则回退到本地副本。Spilo 镜像默认启用了 use_pg_rewind,因此在其前提条件满足时,降级集群可以通过 pg_rewind 重新加入,而不必删除并重新创建。在显式禁用 use_pg_rewind 的情况下,Patroni 无法重新初始化已分叉的 standby 集群,operator 现在会记录该集群必须由其新的 primary 手动重新创建;其他 pg_rewind 失败场景仍可能需要手动重建。

此次发版无相关问题。

已知问题

  • 逻辑备份需要单独提供备份镜像。 启用 enableLogicalBackup 会调度一个运行未包含在插件包中的镜像的作业。除非该镜像被单独镜像同步或覆盖,否则作业 Pod 将一直处于 ImagePullBackOff。未启用逻辑备份的集群不受影响。

此次发版无相关问题。

v4.3.3

已修复问题

  • PostgreSQL 16 集群在 amd64 节点上启动失败。 随 v4.3.1 提供的 Spilo 镜像在 amd64 架构上包含一个针对错误 PostgreSQL 主版本编译的 bg_mon 扩展,导致 PostgreSQL 16 实例在启动时失败,并报错 could not load library ".../16/lib/bg_mon.so": undefined symbol: pgstat_fetch_stat_beentry。现在扩展构建会显式固定目标 PostgreSQL 版本,修复后的镜像已在 amd64 和 arm64 上所有受支持的 PostgreSQL 版本中完成验证。arm64 集群和其他 PostgreSQL 版本不受影响。受影响的 v4.3.1 集群可通过将插件升级到 v4.3.3 恢复。
  • Fixed an issue where PostgreSQL 16 clusters failed to start on amd64 nodes with "could not load library bg_mon.so: undefined symbol: pgstat_fetch_stat_beentry". The bundled spilo image contained a bg_mon extension compiled against the wrong PostgreSQL major version on amd64. The extension build now pins PG_CONFIG per PostgreSQL major, and the fixed spilo build has been verified on all architecture/version combinations.

已知问题

此次发版无相关问题。

v4.3.1

新增和优化功能

  • Security. 修复了所有 PostgreSQL operand 镜像中的多个 CVE——operator、Spilo、pg-agent、RDS Operator、Pgpool-II 和 PostgreSQL exporter 均已基于修补后的基础镜像和依赖项重新构建。内置的 WAL-G 二进制文件也使用更新后的 jackc/pgx/v5 和 Go toolchain 重新构建,以清除一个 critical CVE。
  • 原地 major upgrade 修复。 修复了 PostgreSQL major-version 原地升级(例如 14 → 16)在 Patroni 3.3 版本线上会因移除 get_global_config API 而立即失败的问题。升级前置检查现在使用当前的 Patroni global-config API。
  • RBAC project-admin 聚合。 PostgreSQL 面向用户的角色现在会聚合到平台的 project-admincluster-adminplatform-admin 角色,因此项目管理员可以在其命名空间中管理 postgresqlspostgresbackupspostgresrestores

已修复问题

此次发版无相关问题。

已知问题

此次发版无相关问题。

v4.3.0

新增和优化功能

  • RBAC 最小权限与角色隔离。 operator 不再管理集群级 RBAC 资源,并且所有资源规则中已移除 deletecollection。新增五个面向用户的聚合角色——admineditviewbackuprestore——以实现职责分离。SkipRuntimeRBACCreation 配置项已移除;operator 现在始终在运行时创建命名空间范围的 ServiceAccountRoleBinding。详情请参见 RBAC ArchitectureAssign PostgreSQL RBAC Roles
  • Cross-Cluster Replication (XCR) 稳定性。 为 XCR 连接添加了 statement_timeout,并静默处理了无意义的错误日志。当没有同步从节点就绪时,保护 XCR 元数据写入,并在 standby 集群缩容时清理孤立的复制 slot。移除了 BeforeClusterSync 中可能干扰健康从节点的激进 slot 移除逻辑,并消除了针对基于 LoadBalancer 的 standby 集群在 preReconcile 中不必要的本地数据库连接尝试。
  • 可靠性修复。
    • waitForPodDeletion 现在除了 informer channel 之外,还会轮询 Kubernetes API,从而消除因遗漏 Delete 事件导致的 10 分钟 worker 卡顿(在 IPv6 / kube-ovn 集群上观察到)。
    • 集群生命周期期间的 Patroni 状态更新现在不再是致命错误——临时性的 Patroni API 错误会作为 warning 记录,不再将集群推进到 SyncFailed / AddFailed。同时修复了一个 defer 变量捕获 bug,其中 Patroni 错误泄漏到了外层延迟执行的状态设置 closure 中。
    • 修复了将 LoadBalancer Service 用于复制时 external-IP 为空的问题。
    • 修复了 restore 错误和 CSV 生成问题。
  • 构建与安全。
    • 在各个 release 分支中集成了 Renovate,用于自动化依赖管理。
    • Go toolchain 升级到 v1.26;上游 Zalando 组件(operator、operator-ui、logical-backup)更新到 v1.15.0;Spilo 已使用最新安全修复重新构建。
    • 批量修复了 golang.org/x/cryptogolang.org/x/netlogrusrequests 及相关依赖中的 Go module 安全补丁。

已修复问题

此次发版无相关问题。

已知问题

此次发版无相关问题。

v4.2.0

新增和优化功能

  • 支持在 PSA-restricted 模式下部署 Postgres 实例。
  • 支持将 LoadBalancer Service 类型用于热 standby 集群复制。
  • 修复了多个 CVE。
  • 移除了 PostgreSQL 11 和 12 支持。

已修复问题

此次发版无相关问题。

已知问题

此次发版无相关问题。