PostgreSQL最初发布于1996年,当时云原生甚至还不是一个术语。目前,它是第二大最受欢迎的关系型开源数据库DB-engines。随着其受欢迎程度的增长和Kubernetes的上升趋势,在k8上运行PostgreSQL有多种解决方案也就不足为奇了。

在这篇博文中,我们将比较这些解决方案,并回顾它们各自的优缺点。在我们显微镜下的解决方案是:

  1. Crunchy Data PostgreSQL运算符
  2. CloudNative PG来自企业数据库
  3. StackGres从OnGres
  4. Zalando Postgres接线员
  5. 雷竞技下载官网PostgreSQL的Percona操作符

摘要及对照表见我们的文档

Crunchy Data PGO

松脆的数据是一家在PostgreSQL社区很有名的公司。他们为PG提供了广泛的服务和软件解决方案。他们的PostgreSQL Operator (PGO)是完全开源的(Apache 2.0许可证),但同时运营商使用的容器映像是在Crunchy Data Developer Program下发布的。这意味着在没有与Crunchy Data签订合同的情况下,您不能在生产中使用这些图像的Operator。欲知详情,请浏览使用条款

部署

根据文档,该操作符的最新版本是5.2.0,但Github中最新的标签是4.7.7。我无法找到哪个版本可以用于生产,但我将使用来自GitHub页面的快速安装,该页面安装5.2.0。快速起步并不是那么快。首先,你需要用例子来分叉存储库:链接

执行这些命令对我来说失败了:

我刚刚克隆了回购

运行kustomize脚本也失败了:

说明书上的说明文档页面有其他命令,所以我用它们代替。作为一个热爱开源的人,我发送了一个公关修复Github上的文档

现在安装了Operator。安装集群:

特性

PGO操作符被许多公司用于生产,具有管理功能,并允许用户微调PostgreSQL集群。

不需要进行常规的第二天操作,如备份和缩放。下面的特点很有趣:

  • 扩展管理PostgreSQL扩展扩展了数据库的功能。使用PGO,您可以轻松地为集群添加扩展,并在引导过程中配置它们。我喜欢这种方法的简单性。
  • 用户/数据库管理在集群初始化时创建用户和数据库。这对于CICD管道和各种自动化来说非常方便。
  • 使用注释进行备份。通常,操作符为备份和恢复提供单独的自定义资源定义。在PGO的情况下,备份和恢复是通过注释管理的。这是一个反模式,但仍然遵循声明式形式。

CloudNative PG

这个操作员逐渐成熟了EnterpriseDB(EDB)最近终于开源了。它是apache授权的,完全开源的,并且有一个EDB Postgres操作员这是一个基于CloudNative PG的分支,企业版有一些额外的功能,例如,支持Red Hat OpenShift。

部署

使用快速入门,下面是如何安装操作符:

它会自动创建cnpg-系统命名空间,并部署必要的crd、服务帐户等。

完成之后,就可以部署PostgreSQL集群了。有很多exampolary yaml

还有一个舵图可用这样可以进一步简化安装。

特性

CloudNative PG提供了广泛的常规操作功能:备份、扩展和升级。Operator的体系结构非常有趣:

  • 没有StatefulSets。通常情况下,你会看到StatefulSets用于Kubernetes中的有状态工作负载。在这里,PostgreSQL集群部署了独立的pod,由操作员完全控制。
  • 没有Patroni。Patroni是PostgreSQL社区中构建高可用集群的事实上的标准。相反,他们使用Postgres实例管理器
  • 酒吧间侍应。这也不是一个常见的选择,但可以解释为pgBarman, PostgreSQL的备份工具,由EDB收购的第二象限团队开发。

除了架构决策之外,还有一些东西让我觉得很新鲜:

  • 文档。作为一名产品经理,我真的被他们的文档迷住了。它非常详细,深入细节,充满了各种各样的示例,涵盖了各种各样的用例。
  • 用于创建集群的自定义资源称为“集群”。这有点奇怪,但是运行一些Kubectl得到集群有点酷。
  • 你可以引导新的集群,从一个现有的备份对象和使用流复制从现有的PostgreSQL集群,甚至从Kubernetes外部。对于CICD和迁移非常有用。

StackGres

OnGres是一家为PostgreSQL提供支持、专业和管理服务的公司。经营者——StackGres-根据AGPL v3授权。

部署

安装非常简单,并有详细说明在网站上。它可以归结为一个命令:

这将部署web用户界面和操作符。StackGres支持UI和常规YAML清单部署。UI是全功能的,并允许您做的一切,运营商支持从CRD。获取登录名和密码:

连接到UI。您可以通过LoadBalancer或Kubernetes端口转发公开UI:

在UI中部署集群非常简单,这里就不赘述了。

特性

UI允许用户使用集群扩展、备份、恢复、克隆和执行各种其他任务。我发现调试问题有点困难。建议设置一个日志服务器并在其上调试问题,但我还没有尝试过。但是UI本身是成熟的、灵活的,而且非常漂亮!

有趣的的:

  • 实验Babelfish支持从MSSQL迁移来节省许可成本。
  • 扩展管理系统,用户可以选择扩展及其版本来扩展PG集群功能。

  • 要执行升级、真空和其他数据库活动,操作员提供数据库操作能力。它还有内置的基准测试,这很酷!

Zalando Postgres接线员

Zalando是鞋类,时尚和美容的在线零售商。它是本文中唯一一家不以数据库为中心的公司。他们开源了他们内部用来运行和管理PostgreSQL数据库的Operator,并被广泛采用。值得一提的是,Zalando团队开发并开源Patroni,被广泛采用和使用。

部署

你可以部署Zalando操作员通过舵图或kubectl。与StackGres一样,这个Operator有一个内置的web UI。

头盔图的安装是最快和最简单的方法,让一切启动和运行:

暴露UI:

连接到UI并创建集群。

特性

这是最古老的PostgreSQL操作符之一,随着时间的推移,它的功能不断扩展。它支持备份和恢复、主要版本升级等等。此外,它有一个基于web的用户界面,以方便上手。

  • 运营商严重依赖于Spilo-提供PostgreSQL和Patroni捆绑在一起的docker映像。它也在Zalando开发。这是构建HA体系结构的核心部分。
  • 由于Zalando的基础设施使用AWS,因此该运营商经过了大量测试,可以与AWS集成。您可以在一些特性中看到它——比如AWS EBS的实时卷大小调整或gp2到gp3迁移。

雷竞技下载官网PostgreSQL的Percona操作符

雷竞技下载官网Percona致力于为任何地方的数据库提供软件和服务。Kubernetes是云原生工作负载的实际标准,有助于实现这一承诺。

我们的操作符最重要的是什么:

  • 完全开源
  • 由社区和Percona团队支持。雷竞技下载官网如果您与Percona签订了合同,您将享受到我们卓越的服雷竞技下载官网务。
  • 它基于Crunchy Data PGO v 4.7,增强了监控、可升级性和灵活性raybet雷竞技竞猜在线官网

部署

我们有快速启动安装指南通过头盔和定期YAML清单。通过头盔的安装方法如下:

安装操作员:

部署PostgreSQL集群:

特性

大多数特性都继承自Crunchy Data——备份、伸缩、多集群复制等等。

    • 开源的。与Crunchy Data PGO相比,我们没有对容器映像施加任何限制,因此它是完全开源的,可以在生产中不受任何限制地使用。
    • 雷竞技下载官网Praybet雷竞技竞猜在线官网ercona监控和管理(PMM)是一个开源的数据库监控、可观察性和管理工具。raybet雷竞技竞猜在线官网雷竞技下载官网Percona Operators集成了PMM,因此用户可以完全查看数据库的运行状况。
    • 自动智能升级我们的操作员不仅允许用户升级数据库,而且还以安全、零停机的方式自动升级。
    • 一站式服务。今天的企业环境默认是多数据库的。雷竞技下载官网Percona可以帮助公司在Kubernetes上全面运行PostgreSQL、MySQL和MongoDB数据库工作负载。

为了让你兴奋,我们正在开发这个操作器的第二个版本。它将具有改进的架构,消除现有的备份和恢复限制,支持存储和资源的自动扩展等等。本季度我们计划发布测试版,请密切关注我们发布的版本。

结论

PostgreSQL在Kubernetes中并不是一个必要的邪恶,而是那些选择k8作为平台的公司的一个进化步骤。选择供应商和解决方案是一个重要的技术决策,它可能会影响未来的各种业务指标。还在为各种选择感到困惑吗?请开始讨论论坛联系我们的团队。

Perc雷竞技下载官网ona Kubernetes操作符可以自动创建、修改或删除MySQL、MongoDB或PostgreSQL环境中的成员。

了解更多关于Percona Kub雷竞技下载官网ernetes操作符

订阅
通知的
客人”src=