KubeBlocks is a Kubernetes Operator designed to manage a variety of databases and streaming systems, including MySQL, PostgreSQL, MongoDB, Redis, RabbitMQ, RocketMQ, and more, within Kubernetes environments.
See the code
If you are a developer using multiple types of databases in your application and are considering deploying both your application and databases on K8s for cost or efficiency reasons, you need to find suitable operators for each database. Learning so many different operators and their APIs introduces a significant learning curve and time costs, not to mention the effort required to maintain them.
KubeBlocks uses a unified set of APIs (CRDs) and code to manage various databases on K8s. For example, we can use the Cluster resource to create a PostgreSQL cluster, a Redis cluster, or a Kafka cluster. This abstraction and unified API allow us to further use a single set of operator code to manage multiple types of databases, as well as handle day-2 operations, theoretically extending to any type of database engine.
KubeBlocks is an open-source control plane software that runs and manages multiple popular database engines on K8s through a unified set of code and APIs. The core of KubeBlocks is a K8s operator, which defines a set of CRDs to abstract the common attributes of various database engines and uses these abstractions to manage the engine's lifecycle and day-2 operations.
KubeBlocks manages various types of stateful engines, including RDBMSs (MySQL, PostgreSQL), Caches(Redis), NoSQLs (MongoDB), MQs(Kafka, Pulsar), vector databases(Milvus, Qdrant, Weaviate), and data warehouses(ClickHouse, ElasticSearch, OpenSearch, Doris, StarRocks). Adding a new engine to KubeBlocks can be achieved by writing a KubeBlocks Addon. The community is actively integrating more types of engines into KubeBlocks, and it currently supports 35 types of engines.
The name KubeBlocks is inspired by Kubernetes and LEGO blocks, signifying that through the KubeBlocks API, adding, composing and managing database engines on K8s can be easy, standard and productive, like playing with LEGO blocks.
KubeBlocks integrates the most popular database engines and provides rich management functions, along with declarative APIs, in various environments. KubeBlocks offers the following benefits:
Production-level
KubeBlocks has already been adopted by large internet companies, private clouds, the financial industry including banks and securities firms, telecom industry, the automotive industry, and SaaS software providers.
Reliability
KubeBlocks supports the integration of various mature high-availability best practices, such as Orchestrator, Patroni, and Sentinel. KubeBlocks also supports full backups, continuous backups, and point-in-time recovery (PITR).
Ease of use
KubeBlocks not only provides a YAML-based API but also offers an interactive kbcli tool to further simplify usage as a complement to kubectl. For example, you can install KubeBlocks and launch a playground environment on a desktop or cloud with a single command.
Observability
KubeBlocks collects monitoring metrics from rich data sources, integrates with the Prometheus stack, and provides insightful Grafana templates. In addition, troubleshooting tools such as slow logs are also provided.
Extensibility
KubeBlocks provides the addon mechanism for integrating new engines. So it can be extended to run the databases your project needs.
Quick Start shows you the quickest way to get started with KubeBlocks.
Each of the following addons in kubeblocks-addons has a dedicated operator landing page on kubeblocks.io. The pages document the operator and engine capabilities and serve as the public home for that addon—together they illustrate KubeBlocks’ breadth of multi-engine support.
Other engines are listed on the databases page; dedicated *-operator landing pages are added on kubeblocks.io as they are published.
KubeBlocks: Cloud-Native Data Infrastructure for Kubernetes (A Video made by Viktor Farcic)
KubeCon 2024 in HongKong from 21-23 August 2024: How to Manage Database Clusters Without a Dedicated Operator, By Shanshan Ying, ApeCloud & Shun Ding, China Mobile Cloud
KubeCon 2024 in HongKong from 21-23 August 2024: KuaiShou's 100% Resource Utilization Boost: 100K Redis Migration from Bare Metal to Kubernetes, By XueQiang Wu, ApeCloud & YuXing Liu, Kuaishou
If you have any questions, you can reach out to us through:
KubeBlocks Discord Channel
KubeBlocks GitHub Discussions
KubeBlocks Wechat Account:
You can also follow us on:
Your contributions are welcomed and appreciated.
We consider security as the top priority issue. If you find any security issues, please Report a security vulnerability issue.
KubeBlocks is under the GNU Affero General Public License v3.0. See the LICENSE file for details.
Overall
Maintained
Code review
Go module
Latest release
Releases this year
(top 24 of 45)
432 followers · starred Jan 2024
1,427 followers · starred Jun 2023
122 followers · starred Dec 2023
344 followers · starred Nov 2023
KubeBlocks is a Kubernetes Operator designed to manage a variety of databases and streaming systems, including MySQL, PostgreSQL, MongoDB, Redis, RabbitMQ, RocketMQ, and more, within Kubernetes environments.
See the code
If you are a developer using multiple types of databases in your application and are considering deploying both your application and databases on K8s for cost or efficiency reasons, you need to find suitable operators for each database. Learning so many different operators and their APIs introduces a significant learning curve and time costs, not to mention the effort required to maintain them.
KubeBlocks uses a unified set of APIs (CRDs) and code to manage various databases on K8s. For example, we can use the Cluster resource to create a PostgreSQL cluster, a Redis cluster, or a Kafka cluster. This abstraction and unified API allow us to further use a single set of operator code to manage multiple types of databases, as well as handle day-2 operations, theoretically extending to any type of database engine.
KubeBlocks is an open-source control plane software that runs and manages multiple popular database engines on K8s through a unified set of code and APIs. The core of KubeBlocks is a K8s operator, which defines a set of CRDs to abstract the common attributes of various database engines and uses these abstractions to manage the engine's lifecycle and day-2 operations.
KubeBlocks manages various types of stateful engines, including RDBMSs (MySQL, PostgreSQL), Caches(Redis), NoSQLs (MongoDB), MQs(Kafka, Pulsar), vector databases(Milvus, Qdrant, Weaviate), and data warehouses(ClickHouse, ElasticSearch, OpenSearch, Doris, StarRocks). Adding a new engine to KubeBlocks can be achieved by writing a KubeBlocks Addon. The community is actively integrating more types of engines into KubeBlocks, and it currently supports 35 types of engines.
The name KubeBlocks is inspired by Kubernetes and LEGO blocks, signifying that through the KubeBlocks API, adding, composing and managing database engines on K8s can be easy, standard and productive, like playing with LEGO blocks.
KubeBlocks integrates the most popular database engines and provides rich management functions, along with declarative APIs, in various environments. KubeBlocks offers the following benefits:
Production-level
KubeBlocks has already been adopted by large internet companies, private clouds, the financial industry including banks and securities firms, telecom industry, the automotive industry, and SaaS software providers.
Reliability
KubeBlocks supports the integration of various mature high-availability best practices, such as Orchestrator, Patroni, and Sentinel. KubeBlocks also supports full backups, continuous backups, and point-in-time recovery (PITR).
Ease of use
KubeBlocks not only provides a YAML-based API but also offers an interactive kbcli tool to further simplify usage as a complement to kubectl. For example, you can install KubeBlocks and launch a playground environment on a desktop or cloud with a single command.
Observability
KubeBlocks collects monitoring metrics from rich data sources, integrates with the Prometheus stack, and provides insightful Grafana templates. In addition, troubleshooting tools such as slow logs are also provided.
Extensibility
KubeBlocks provides the addon mechanism for integrating new engines. So it can be extended to run the databases your project needs.
Quick Start shows you the quickest way to get started with KubeBlocks.
Each of the following addons in kubeblocks-addons has a dedicated operator landing page on kubeblocks.io. The pages document the operator and engine capabilities and serve as the public home for that addon—together they illustrate KubeBlocks’ breadth of multi-engine support.
Other engines are listed on the databases page; dedicated *-operator landing pages are added on kubeblocks.io as they are published.
KubeBlocks: Cloud-Native Data Infrastructure for Kubernetes (A Video made by Viktor Farcic)
KubeCon 2024 in HongKong from 21-23 August 2024: How to Manage Database Clusters Without a Dedicated Operator, By Shanshan Ying, ApeCloud & Shun Ding, China Mobile Cloud
KubeCon 2024 in HongKong from 21-23 August 2024: KuaiShou's 100% Resource Utilization Boost: 100K Redis Migration from Bare Metal to Kubernetes, By XueQiang Wu, ApeCloud & YuXing Liu, Kuaishou
If you have any questions, you can reach out to us through:
KubeBlocks Discord Channel
KubeBlocks GitHub Discussions
KubeBlocks Wechat Account:
You can also follow us on:
Your contributions are welcomed and appreciated.
We consider security as the top priority issue. If you find any security issues, please Report a security vulnerability issue.
KubeBlocks is under the GNU Affero General Public License v3.0. See the LICENSE file for details.
Overall
Maintained
Code review
Go module
Latest release
Releases this year
(top 24 of 45)
432 followers · starred Jan 2024
1,427 followers · starred Jun 2023
122 followers · starred Dec 2023
344 followers · starred Nov 2023