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 period backups to various cloud stores, eg, S3, GCS, 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 we include complete implementations for Postgres and ElasticSearch database.
Please pick a version of KubeDB that matches your Kubernetes installation.
KubeDB Version | Docs | Kubernetes Version |
---|---|---|
0.7.1 (uses CRD) | User Guide | 1.7.x+ |
0.6.0 (uses TPR) | User Guide | 1.5.x - 1.7.x |
To install KubeDB, please follow the guide here.
Want to learn how to use KubeDB? Please start here.
Want to help improve KubeDB? Please start here.
Wondering what features are coming next? Please visit here.
The KubeDB operator 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 --analytics=false
.
If you have any questions, you can reach out to us.