KubeBlocks 简介
KubeBlocks 是什么?
KubeBlocks 是一个开源的 Kubernetes 数据库 operator,能够帮助用户在 Kubernetes 上运行和管理多种类型的数据库。据我们所知,大多数数据库 operator 通常只能管理某种特定类型的数据库,例如:
- CloudNativePG、Zalando、CrunchyData、StackGres operator 用于管理 PostgreSQL 。
- Strimzi 用于管理 Kafka。
- Oracle 和 Percona MySQL operator 用于管理 MySQL。
而 KubeBlocks 是一个通用的数据库 operator。这意味着在设计 KubeBlocks API 时,我们并没有将其与某种特定类型的数据库绑定。恰恰相反,我们抽象了各种数据库的通用特性,最终得到了一个通用的、与数据库引擎无关的 API。因此,围绕这个抽象 API 开发的 operator 实现也与具体的数据库引擎无关。

在上图中,Cluster、Component 和 InstanceSet 都是 KubeBlocks 提供的 CRD(自定义资源定义,Custom Resource Definition)。可参阅 KubeBlocks 概念文档,了解更多细节。
KubeBlocks 提供了插件(Addon)API,支持集成各种数据库。例如,我们目前提供了以下 KubeBlocks 引擎插件,支持各类主流开源数据库引擎:
- MySQL
- PostgreSQL
- Redis
- MongoDB
- Kafka
- RabbitMQ
- MinIO
- Elasticsearch
- StarRocks
- Qdrant
- Milvus
- ZooKeeper
- etcd
- ...
您可参阅 KubeBlocks 支持的数据库引擎插件表格,查看支持的引擎及其功能的详细信息。
凭借统一的 API,KubeBlocks 成为在 Kubernetes 上运行多种数据库的绝佳选择,可显著降低掌握多个 operator 所需的学习门槛。