使用 Kubernetes Operators 扩展 PostgreSQL

Operators 允许用户创建标准化接口,用于跨支持 Kubernetes 的云环境管理有状态应用程序,例如 PostgreSQL。
181 位读者喜欢这篇文章。
arrows cycle symbol for failing faster

Opensource.com

使用容器运行应用程序并通过 Kubernetes 编排其生命周期,已经改变了团队管理大规模部署的方式。 容器通常用于执行短生命周期的任务,例如发送消息,或运行不需要存储信息的应用程序,例如 Web 服务器。 可以创建一个新的容器,它不知道之前发生的任何工作——换句话说,是“无状态的”——这对大多数应用程序来说完全没问题。

数据库系统的重要部分是它维护状态:一个进程在运行时可以修改磁盘上的数据状态,并且即使在进程终止后,该状态也会被维护。 换句话说,当您使用数据库系统时,无论您的系统是否正在运行,您的数据都必须始终存储在磁盘上。

表面上看,这与“无服务器”世界相矛盾:对于数据库来说,即使在进程终止后,保持状态也很重要。 但是,如果应用程序能够为 Kubernetes 提供关于如何在 Pod 生命周期之外维护状态的额外知识,那么数据库不仅可以利用 Kubernetes 的编排功能,而且团队突然有能力运行自己的数据库即服务平台。

Kubernetes Operators & PostgreSQL

Kubernetes Operator 是一种应用程序,允许开发人员向 Kubernetes 提供关于如何管理有状态应用程序的额外上下文。 Operator 允许开发人员提供更多特定于应用程序的知识,以正确维护有状态应用程序的完整生命周期,并确保关键资产(例如数据)保持安全和可访问。

对于数据库,例如流行的开源 PostgreSQL 数据库,Operator 可以帮助执行以下操作:

  • 配置:分配将永久存储数据的磁盘空间
  • 扩展:安全地创建数据库的副本(或拷贝),并始终保持最新状态
  • 高可用性:确保即使节点变得不可用,应用程序始终可以读取和写入数据库
  • 用户管理:启用用户访问并记住环境中特定数据库的权限

其他操作要求包括使用特定版本的数据库软件,使用特定的存储系统或硬件配置,或者将数据库部署到集群中的特定服务器节点。

Crunchy Data 的开源 Crunchy PostgreSQL Operator 是一个用于 PostgreSQL 的 Operator,已在许多生产环境中使用。 它提供了一个简单而强大的 命令行界面,使用户能够在任何支持 Kubernetes 的平台上部署自己的 数据库即服务系统

例如,使用 pgo create 命令(用于配置数据库),您可以设置一个分布式、高可用性的 PostgreSQL 集群,它具有完整的灾难恢复支持以及由 pgMonitor 提供支持的数据库监控 sidecar。 换句话说,无需复杂的多步骤流程或编写自己的脚本,您可以从单个命令创建生产所需的 PostgreSQL 系统类型。

如果您只管理几个数据库集群,这似乎有点过分,但如果您需要支持数百或数千个不同的集群,Operator 的价值会显着提高。 拥有一套标准化的命令,能够灵活地为不同的工作负载部署集群,既减轻了管理负担,又为团队如何开发和部署工作负载到生产环境提供了更多选择。

开源即服务

虽然许多大型云提供商提供各种“即服务”的开源平台,但这会使人们锁定到特定的云基础设施中。 使用 Kubernetes 和像 Crunchy PostgreSQL Operator 这样的开源 Operator 允许用户选择他们想要运行其有状态服务的云环境(有 Kubelet,就可以迁移!),同时从标准化接口管理它们。


Jonathan Katz 将在 3 月 7 日至 10 日在加利福尼亚州帕萨迪纳举行的第 17 届年度南加州 Linux 博览会 (SCaLE 17x) 上展示 使用 Kubernetes 扩展 PostgreSQL

标签
Jonathan S. Katz
Jonathan S. Katz 是 Crunchy Data 的客户成功与沟通总监,Crunchy Data 是值得信赖的开源 PostgreSQL 技术、支持和培训的领先提供商。 Jonathan 还负责 PostgreSQL 全球开发组的宣传工作,在各个委员会和团队任职,并且是非营利组织美国 PostgreSQL 协会的董事会成员。

评论已关闭。

Creative Commons License本作品采用知识共享署名-相同方式共享 4.0 国际许可协议进行许可。
© 2025 open-source.net.cn. All rights reserved.