kubeblocks is a free, open source databases project written in Go and released under AGPL-3.0. It has 3,130 GitHub stars, 280 forks and 260 open issues, and was last pushed 2 hours ago. On this registry it ranks #180 of 203 tracked projects in Databases, with 5 head-to-head comparisons available.

What is kubeblocks?

KubeBlocks is an open-source control plane and Kubernetes Operator that runs and manages many popular database and streaming engines through one unified set of CRDs and operator code, built for developers and platform teams who deploy their applications and their databases on Kubernetes.

What it is

KubeBlocks is open-source control plane software that runs and manages multiple popular database engines on Kubernetes through a unified set of code and APIs. Its core is a Kubernetes operator written in Go, licensed AGPL-3.0, which defines a set of CRDs that abstract the common attributes of various database engines and uses those abstractions to manage an engine's lifecycle and its day-2 operations. It handles stateful engines across several categories: RDBMSs such as MySQL and PostgreSQL, caches such as Redis, NoSQLs such as MongoDB, message queues such as Kafka and Pulsar, vector databases such as Milvus, Qdrant and Weaviate, and data warehouses such as ClickHouse, ElasticSearch, OpenSearch, Doris and StarRocks. The project currently supports 35 types of engines.

The concrete problem it solves is operator sprawl. A developer using several database types who wants to deploy both the application and the databases on Kubernetes has to find a suitable operator for each engine, learn each operator's API, and then maintain them all — a significant learning curve and time cost. KubeBlocks replaces that collection of per-engine operators with a single set of CRDs and one operator codebase. The same Cluster resource creates a PostgreSQL cluster, a Redis cluster, or a Kafka cluster, and the same abstraction carries over to day-2 operations, in theory extending to any database engine. Adding a new engine is done by writing a KubeBlocks Addon, and the name reflects the Kubernetes plus LEGO-blocks idea of composing engines in a standard, productive way.

Key capabilities

  • Unified Cluster CRD: one resource creates a PostgreSQL, Redis, or Kafka cluster instead of a separate operator per engine.
  • Addon mechanism for extending KubeBlocks to new database engines beyond the 35 currently supported.
  • Coverage of six engine categories: RDBMS, caches, NoSQL, message queues, vector databases, and data warehouses.
  • Integration of mature high-availability best practices, including Orchestrator, Patroni, and Sentinel.
  • Backup support; the README excerpt lists full backup capability alongside the HA integrations, though the sentence is truncated in the available excerpt.
  • Declarative APIs and CRDs for engine lifecycle plus day-2 operations, using a single operator codebase.
  • Distribution as a Helm chart through the Artifact Hub repository kubeblocks, with the container image apecloud/kubeblocks, plus OpenSSF Best Practices badging and CodeQL scanning in CI.

Who uses it and how

  • Large internet companies operating many database engines on Kubernetes infrastructure.
  • Private clouds offering database services to internal or external tenants.
  • Financial institutions, including banks and securities firms, and companies in telecom and the automotive industry.
  • SaaS software providers running multi-engine database fleets alongside their own applications.
  • Developers who consolidate both application and database workloads onto Kubernetes for cost or efficiency reasons, and therefore need one API rather than many operator APIs.

Getting started

KubeBlocks is deployed through the Helm chart published under the Artifact Hub repository kubeblocks, using the container image apecloud/kubeblocks; project documentation and downloads are at https://kubeblocks.io. The registry facts do not include the exact install command, so consult the project site for the current chart and CRD installation steps.

How it compares

The facts provide no list of paid products that KubeBlocks replaces, and no peer project is named in this registry, so it stands alone here. The README positions it against the common practice of picking and maintaining a separate operator for every database engine, consolidating that role into one CRD set and one operator codebase.

When to use it — and when not to

Choose KubeBlocks if a Kubernetes cluster is already the target platform and the goal is one consistent API and one operator to run and maintain several database engines, including their backup and high-availability behaviour. A self-hoster must operate the Kubernetes cluster itself and the database pods, storage, and backups that KubeBlocks manages through CRDs; the facts name no hosted option. It should not be the pick for teams wanting a fully managed database service with no cluster operations, and the project badge marks its maturity as alpha, with 260 open issues and AGPL-3.0 licence obligations that teams should review before embedding it.

project readme (upstream, from github) — read inline

Welcome to the KubeBlocks project!

OpenSSF Best Practices CICD Push CodeQL Releases Release LICENSE Go Report Card Docker Pulls Codecov maturity Artifact Hub

image

Motivation

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.

What is KubeBlocks

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.

Why you need KubeBlocks

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.

Goals

  • Smoothing the learning curve of managing various databases on K8s
  • Exploring standard APIs for managing databases on Kubernetes
  • Being open and cloud-neutral, as well as engine-neutral

Key features

  • Supports various databases, including MySQL, PostgreSQL, Redis, MongoDB, Kafka, Clickhouse, ElasticSearch and more
  • Provides production-level performance, resilience, and observability
  • Simplifies day-2 operations, such as upgrading, scaling, monitoring, backup, and restore
  • Contains a powerful and intuitive command line tool
  • Be compatible with AWS, GCP, Azure, Alibaba Cloud and more CSP

Get started with KubeBlocks

Quick Start shows you the quickest way to get started with KubeBlocks.

Addon engine pages on kubeblocks.io

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.

readme truncated — read the full docs on github

Frequently asked questions

Is kubeblocks free to use?

kubeblocks is open source under the AGPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does kubeblocks do?

KubeBlocks is a Kubernetes Operator designed to manage a variety of databases and streaming systems, including MySQL, PostgreSQL, MongoDB, Redis, RabbitMQ, Rock

What is kubeblocks written in?

kubeblocks is primarily written in Go. Its source is publicly available at https://github.com/apecloud/kubeblocks, and it has 3,130 GitHub stars.