Percona最近发布了OpenEverest,这是一个开源平台,用于自动化数据库的配置和管理,且支持多种数据库技术。该平台最初被命名为Percona Everest,现在可以在任何Kubernetes基础设施上运行,无论是云环境还是本地环境。

这个项目的主要目标是避免用户被某个供应商的技术所束缚,同时仍能提供自动化的私有DBaaS服务。OpenEverest建立在Kubernetes操作器的基础上,旨在避免那些依赖单一云提供商技术的复杂部署流程。该平台具有模块化设计,允许开发人员和数据库管理员根据具体需求组合不同的数据库、存储系统及部署方式。

OpenEverest控制台

来源:OpenEverest官方文档

作为插件系统,OpenEverest支持诸如GKE Autopilot以及Pod调度策略等功能。Sergey Pronin是OpenEverest的维护者,同时也是Solarica公司的创始人,他这样解释道:

目前,我们主要关注数据库管理方面,但我们的长远目标更为远大。我们正在构建一个模块化的基础框架,用户可以轻松地添加额外的数据引擎,将其与自身的整体运营系统连接起来,从而解决更多与数据基础设施相关的问题。

通过其Web界面以及REST API,该平台简化了软件更新、监控、存储扩展以及外部访问配置等操作流程。DatabaseClusterDatabaseClusterBackupDatabaseClusterRestore这些自定义资源定义使得OpenEverest能够以声明式的方式在Kubernetes中配置数据库集群,并管理它们的备份与恢复操作。这样一来,这些任务就可以像处理普通的Kubernetes对象一样进行操作了,同时也隐藏了那些与特定数据库操作器相关的差异。

当Percona推出该项目的测试版本时,社区内的反应褒贬不一,这也在Hacker News上引发了关于“在Kubernetes上运行数据库集群是否是个好主意”的讨论:有些人对使用Kubernetes来处理数据相关工作持怀疑态度,而另一些人则强调了托管式备份、集群化、扩展性以及升级优化等功能带来的好处。还有一位用户指出,“认为Kubernetes不适合用于运行数据库”这种观点已经过时了。

如今,该项目支持使用相应的Percona管理工具来部署和管理MySQL、PostgreSQL以及MongoDB数据库集群。它能够处理数据库的配置与扩展、备份与灾难恢复、基于角色的访问控制功能,同时还支持在Kubernetes平台上进行灵活的资源分配。最新发布的版本OpenEverest v1.11.0新增了对PostgreSQL 18.1的支持,并提供了更灵活的网络配置功能,尤其是通过NodePort实现的网络连接方式。对于ClickHouse、Vitess、DocumentDB、Valkey等工具的支持,以及与Prometheus等其他观测平台的集成功能,目前仍在开发中。根据相关规划页面所述,长期目标是利用Kubernetes的广泛普及性,为构建和运营数据平台提供灵活的开源解决方案。“根据‘Kubernetes上的数据使用情况调查’,已有50%的组织在生产环境中使用Kubernetes来运行数据相关工作负载。”Pronin在的文章中进一步阐明了从依赖单一供应商的解决方案向开源方向转型的必要性:

该项目正逐步转变为一个独立的开源项目——OpenEverest,它将采用开放式的治理结构,并拥有一个充满活力的多供应商社区。(…) OpenEverest将会在透明的、由社区共同推动的治理机制下运行,从而摆脱对单一供应商的依赖。

开发团队计划将该项目捐赠给CNCF,以确保其长期保持独立性,同时继续为它的发展提供指导。事实上,在Kubernetes上管理数据库集群,并非只有OpenEverest这一个选择。KubeBlocks是一款开源工具(采用AGPL-3.0许可证),它通过统一的API来管理多种类型的数据库,目前已支持35种不同的数据库引擎,这一数量远远超过了OpenEverest;而KubeDB则是一个数据库管理平台,虽然也支持多种数据库,但已经不再完全采用开源代码进行开发。此外,还有一些针对特定类型数据库开发的工具,比如StackGres,它们专门为某一种流行的开源数据库提供丰富的功能。

OpenEverest项目采用的是Apache License 2.0许可证。

Comments are closed.