Branch: master
Clone or download
Latest commit ae4e785 Feb 13, 2019



Go Report Card Build Status codecov Docker Pulls Slack mailing list Twitter

Throughput Graph

Folks, as we continue to develop KubeDB, we value your feedback highly. Please consider taking a few minutes to complete this questionnaire. https://goo.gl/forms/ddcNVjmDlti9fNFE3. Thank you! 🙏

Making running production-grade databases easy on Kubernetes

Running production quality database in Kubernetes can be tricky to say the least. In the early days of Kubernetes, replication controllers were used to run a single pod for a database. With the introduction of StatefulSet, it became easy to run a docker container for any database. But what about monitoring, taking periodic backups, restoring from backups or cloning from an existing database? KubeDB is a framework for writing operators for any database that support the following operational requirements:

  • Create a database declaratively using CRD.
  • Take one-off backups or periodic backups to various cloud stores, eg, S3, GCS, Azure etc.
  • Restore from backup or clone any database.
  • Native integration with Prometheus for monitoring via CoreOS Prometheus Operator.
  • Apply deletion lock to avoid accidental deletion of database.
  • Keep track of deleted databases, cleanup prior snapshots with a single command.
  • Use cli to manage databases like kubectl for Kubernetes.

KubeDB is developed at AppsCode to run their SAAS platform on Kubernetes. Currently KubeDB includes support for following datastores:

  • Postgres
  • Elasticsearch
  • Etcd
  • MySQL / MariaDB / Percona Server for MySQL
  • MongoDB
  • Redis
  • Memcached

Supported Versions

Please pick a version of KubeDB that matches your Kubernetes installation.

KubeDB Version Docs Kubernetes Version
0.9.0 (uses CRD) User Guide 1.9.x +
0.8.0 (uses CRD) User Guide 1.9.x +
0.6.0 (uses TPR) User Guide 1.5.x - 1.7.x


To install KubeDB, please follow the guide here.

Using KubeDB

Want to learn how to use KubeDB? Please start here.

KubeDB API Clients

You can use KubeDB api clients to programmatically access its CRD objects. Here are the supported clients:

Contribution guidelines

Want to help improve KubeDB? Please start here.

KubeDB binaries collects anonymous usage statistics to help us learn how the software is being used and how we can improve it. To disable stats collection, run the operator with the flag --enable-analytics=false.


We use Slack for public discussions. To chit chat with us or the rest of the community, join us in the Kubernetes Slack team channel #kubedb. To sign up, use our Slack inviter.

To receive product announcements, please join our mailing list or follow us on Twitter. Our mailing list is also used to share design docs shared via Google docs.

If you have found a bug with KubeDB or want to request for new features, please file an issue.