InfoQ 重磅内容产品《中国卓越技术团队访谈录》上新啦! 了解详情
写点什么

CloudNativePG:一个面向 Postgres 的新 Kubernetes 操作符

  • 2022 年 7 月 29 日
  • 本文字数:2680 字

    阅读完需:约 9 分钟

CloudNativePG:一个面向Postgres的新Kubernetes操作符

2022 年 4 月 21 日,EDB 发布了CloudNativePG——一个开源的 Kubernetes 操作符,为 Postgres 数据库管理系统管理高可用的主/备集群架构。


CloudNativePG 遵循 Apache 2.0 许可协议,现在归一个新成立的项目贡献者社区拥有和管理。该社区遵循云原生计算基金会(CNCF)的坚实原则和价值观,其中包括开放性、公平性、包容性、技术卓越、“社区高于产品/公司”、内在质量和内在安全。我是该项目初始维护小组的一员。目前,该小组由 EDB 内部提交排名前 6 的项目提交者组成。

CloudNativePG 是对 Postgres 和 Kubernetes 的承诺

我们采用这种开放的、供应商中立的模式,是受我们以往的经验以及我们为 Postgres in Kubernetes 设定的未来愿景所影响。它反映了我们在过去二十年中对 Postgres 社区的直接贡献,以及我们多年来致力于使 CloudNativePG从云原生计算基金会(CNCF)毕业的努力。


目前,CNCF 项目有三个成熟度级别或阶段:沙盒、孵化和毕业。为了进入下一个阶段,直至最终毕业,每个项目都需要证明它可信、可持续、被广泛采用、具有健康的变更率,并且是由来自多个组织的贡献者开发的。


用 AC/DC 的话说,“登顶之路漫漫”。然而,如果 CNCF 技术监督委员会(TOC)给予我们进入沙盒的机会,我们承诺将带领 CloudNativePG 走完全程,也希望有那些同样致力于改善 Postgres in Kubernetes 数据库体验的用户和供应商参与。


我们相信,CNCF 认可的开源操作符将帮助更多的用户在 Kubernetes 中运行 Postgres 数据库工作负载以及它们的客户端应用。这些工作负载将与基础设施的其他组件完美集成,包括监控、告警、日志、追踪、存储、安全和合规。此外,在运行应用程序的 Kubernetes 集群中运行 Postgres 工作负载,可以实现向典型 DevOps 组织的转型。


EDB 是第一家成为Kubernetes认证服务提供商(KCSP)的 Postgres 公司,也作为创始赞助商直接参与了Data on Kubernetes(DoK)社区,以拓展云原生环境中数据工作负载的边界。这不是巧合。

CloudNativePG 的故事

CloudNativePG 最初是在 2019 年 8 月构思的。当时,2ndQuadrant 首席执行官 Simon Riggs(现在在 EDB)要求我领导公司的 Cloud Native/Kubernetes 计划。我的团队在 DevOps 实践方面有长时间的经验。我们关注 Kubernetes 已经有一段时间了。我还记得来自 Zalando 的朋友第一次向我们展示了 Postgres 如何在他们的 Kubernetes 生产环境中运行。那是个令人豁然开朗的时刻!


对我们看来,Kubernetes 1.14(2019 年 4 月)引入本地持久化卷改变了游戏规则,同时为业界带来了更为一致和标准的操作符模式应用方法。我们开始进入探索阶段,以快速失败为原则,在 3 个领域同时进行:获得 KCSP 的地位、操作符原型设计以及在裸机 Kubernetes 上对无共享数据库架构做基准测试。我们对操作符的要求是依赖于轻量级镜像(不可变应用程序容器),完全声明式的,并与 Kubernetes API 服务器紧密集成(这也意味着避免使用外部工具进行故障转移,如我们的 repmgr,或 Patroni,或 Stolon,仅举几例)。


到 2019 年 12 月,我们在各个方面都取得了远超预期的成果——最值得一提的是,裸机上的 Kubernetes 与裸机上的 Linux 性能几乎相同。如果那时失败了,那么我们可能不会做出如此信誓旦旦的承诺(参见当时的这篇博客)。


接下来,我们开始了 BDR 操作符(用于多主复制)的产品化阶段。该操作符已于 2020 年 1 月发布(今年晚些时候将再次发布)。2020 年 2 月,我们开始将该代码重构为一个新产品:Cloud Native Postgres(这是我们的“初始导入”提交)。第一次实现故障转移是又一个令人豁然开朗的时刻,证明我们的 Postgres+Kubernetes 组合在高可用性方面有着前所未有的巨大潜力。


在 2ndQuadrant 于 2020 年 9 月被 EDB 收购后,Cloud Native Postgres 得到了进一步发展,并于 2021 年 2 月发布了第一个稳定版本。此后,该产品被 EDB 和其他大型企业成功部署到生产环境中。事实上,EDB 的数据层BigAnimal就是基于 Cloud Native Postgres。


在 Cloud Native Postgres 的第一年,我们愈加意识到 Kubernetes 生产数据库工作负载采用提速了,并且越来越多的客户要求在他们的标准化基础设施中使用开源解决方案。这两个因素,再加上 EDB 的核心目标是让每个人可以在任何地方运行 Postgres,最终促使我们决定,在 2022 年第二季度将 Cloud Native Postgres 提交到 CNCF 沙盒。


4 月 21 日,我们将 Cloud Native Postgres 改名为 CloudNativePG,将历史提交次数超过 1400 的代码库开源,发布了 1.15.0 版本,并提交给 CNCF。

Postgres + Kubernetes:民享

CloudNativePG 旨在确保每个人都可以着手在他们的所有应用中使用完全开源的 Postgres in Kubernetes 技术栈,获得他们所要求的所有自由。这种模式赋能了学生、开发者和初创企业。这是符合我们 Postgres 愿景的一项巅峰之作。

EDB 为您服务

如果你所在的组织在使用 Postgres in Kubernetes 及 CloudNativePG 时需要专业协助,那么可以利用 EDB 业内领先的 Postgres 和 Kubernetes 专业知识。


EDB 为开源的 CloudNativePG 以及我们新的商业产品“EDB Postgres for Kubernetes”提供商业支持。前者遵照 Community360 故障修复订阅方案,后者基于 EDB Cloud Native Postgres 操作符,遵照标准和企业订阅方案。


EDB Postgres for Kubernetes 提供了经过认证的 OpenShift 4.6+操作符,基于 RedHat UBI 的 Postgres 镜像,对操作符的长期支持,以及需要依据企业计划使用的 EDB Postgres Advanced。

关于这段旅程的思考

这是一个史诗般的时刻,无论是对我还是对这些年来与我共事的值得信赖的梦幻般的团队。


整整 10 年前,我的团队发布了开源项目BARMAN,用于管理 Postgres 数据库的备份和恢复。现在,我又有幸为另一个项目按下了“公开可见”的按钮。创新性的 DevOps 思维,总是把我们推到舒适区之外,不断鼓励我们拒绝内向思维,从社区和数据库部门搜取新的、更好的想法。这正是现如今了不起的 CNCF 生态系统对于我们和 Postgres 的意义。


在 2022 年 KubeCon 欧洲大会前的“Kubernetes 数据日”上,我将在EDB的展位上发表关于Postgres in Kubernetes的演讲。欢迎来和我们聊聊天,找出为项目做贡献的方法。如果你今年没有参加 Kubecon,可以在欧洲中部时间 5 月 17 日星期二下午 3:30 至 5:00 参加EDB Kubecon线上虚拟大会,观看 Postgres 如何在 Kubernetes 集群中运行,包括安装、配置和部署演示。


关于 Kubernetes 和 CNCF 的更多信息,请观看 Honeypot 项目的两集综合纪录片。如果你想了解更多关于 EDB CloudNativePG 的信息,请阅读我们的文档

作者简介

长期以来,Gabriele 一直是一名开源程序员和企业家。他拥有佛罗伦萨大学统计学学位。他通过培育精益 DevOps 文化为 2ndQuadrant 及其成员的成长做出了突出贡献。现在,他是 EDB 云原生计划的负责人。


查看英文原文:CloudNativePG: A New Open Source Kubernetes Operator for Postgres

2022 年 7 月 29 日 10:341379

评论 1 条评论

发布
暂无评论
发现更多内容

linux实战清理挖矿病毒kthreaddi

入门小站

Linux

一文掌握数仓中auto analyze的使用

华为云开发者联盟

数据库 sql 后端 analyze

应用实践 | 蜀海供应链基于 Apache Doris 的数据中台建设

SelectDB

数据库 数据中台 Apaache Doris

华为nova 10系列支持应用安全检测功能 筑牢手机安全防火墙

科技汇

托管式服务网络:云原生时代的应用体系架构进化

阿里巴巴云原生

阿里云 云原生 服务网格

多模输入事件分发机制详解

OpenHarmony开发者社区

Open Harmony

能源行业的数字化“新”运维

博睿数据

AIOPS 智能运维 博睿数据 能源行业

NBA赛事直播超清画质背后:阿里云视频云「窄带高清2.0」技术深度解读

阿里云视频云

音视频 直播 视频编码

整理混乱的头文件,我用include what you use

华为云开发者联盟

c++ 开发 C语言 技能

解密函数计算异步任务能力之「任务的状态及生命周期管理」

阿里巴巴云原生

阿里云 Serverless 云原生 函数计算

使用 MyBatis 操作 Nebula Graph 的实践

NebulaGraph

mybatis 图数据库 Nebula Graph

DevEco Device Tool 3.0 Release带来5大能力升级,让智能设备开发更高效

HarmonyOS开发者社区

HarmonyOS

LeaRun.Java快速开发平台 高效代码自动化生成

力软低代码开发平台

你可能不知道,我是如何将一个老系统的kafka消费者服务的性能提升近百倍的

Java全栈架构师

Java kafka 程序员 面试 架构设计

CANN算子:利用迭代器高效实现Tensor数据切割分块处理

华为云开发者联盟

人工智能 算子 迭代器

上线首月,这家露营地游客好评率高达99.9%!他是怎么做到的?

天天预约

小程序 SaaS 线上预约 预约工具 露营

联想首次详解绿色智城数字孪生平台 破解城市双碳升级难点

科技大数据

实战模拟│JWT 登录认证

极客飞兔

经验分享 JWT 开发语言 7月月更 跨域认证

赋能数字经济 福昕软件出席金砖国家可持续发展高层论坛

联营汇聚

激进技术派 vs 项目保守派的微服务架构之争

BoCloud博云

微服务 微服务架构 云原生 istio 服务网格

字节跳动Dev Better技术沙龙成功举办,携手华泰分享Web研发效能提升经验

字节跳动终端技术

字节跳动 前端

英特尔集成光电研究最新进展推动共封装光学和光互连技术进步

科技之家

扩展你的KUBECTL功能

mengzyou

Kubernetes DevOps kubectl krew

输入的查询SQL语句,是如何执行的?

华为云开发者联盟

MySQL sql 开发 语句

python小知识-python泛函数

AIWeker

Python python小知识 7月月更

在线文本行固定长度填充工具

入门小站

工具

在线SQL转Excel(xls/xlsx)工具

入门小站

工具

DeFi生态NFT流动性挖矿系统开发搭建

薇電13242772558

NFT DeFi流动性挖矿

Nebula Importer 数据导入实践

NebulaGraph

图数据库 数据导入 Nebula Graph

“只跑一趟”,小区装维任务主动推荐探索

鲸品堂

运维

基于Netty,徒手撸IM(一):IM系统设计篇

JackJiang

网络编程 Netty 即时通讯 im开发

CloudNativePG:一个面向Postgres的新Kubernetes操作符_语言 & 开发_Gabriele Bartolini_InfoQ精选文章