You are looking at the documentation of a prior release. To read the documentation of the latest release, please
visit here.
Install KubeDB Community Edition
KubeDB Community edition is available under AppsCode-Community-1.0.0 license and free to use for both commercial and non-commercial purposes. It comes with the cluster provisioning functionalities. However, it lacks some advanced features such as database backup/recovery, upgrading version, horizontal and vertical scaling, TLS/SSL support via cert-manager, updating configuration post provisioning, connection pooling, etc. compared to the Enterprise edition. A full features comparison between the KubeDB Community edition and Enterprise edition can be found here.
To use KubeDB Community edition, you can grab 1 year free license from here. After that you can issue another license for one more year. Typically we release a new version of the operator at least quarterly. So, you can just grab a new license every time you upgrade the operator.
Get a License
In this section, we are going to show you how you can get a 1 year free license for KubeDB Community edition. You can get a license for your Kubernetes cluster by going through the following steps:
- At first, go to AppsCode License Server and fill up the form. It will ask for your Name, Email, the product you want to install, and your cluster ID (UID of the
kube-system
namespace). - Provide your name and email address. You can provide your personal or work email address.
- Then, select
KubeDB Community Edition
in the product field. - Now, provide your cluster ID. You can get your cluster ID easily by running the following command:
kubectl get ns kube-system -o=jsonpath='{.metadata.uid}'
- Then, you have to agree with the terms and conditions. We recommend reading it before checking the box.
- Now, you can submit the form. After you submit the form, the AppsCode License server will send an email to the provided email address with a link to your license file.
- Navigate to the provided link and save the license into a file. Here, we save the license to a
license.txt
file.
Here is a screenshot of the license form.
You can create licenses for as many clusters as you want. You can upgrade your license any time without re-installing KubeDB by following the upgrading guide from here.
KubeDB licensing process has been designed to work with CI/CD workflow. You can automatically obtain a license from your CI/CD pipeline by following the guide from here.
Install
KubeDB operator can be installed as a Helm chart or simply as Kubernetes manifests.
Using Helm 3
KubeDB can be installed via Helm using the chart from AppsCode Charts Repository. To install, follow the steps below:
$ helm repo add appscode https://charts.appscode.com/stable/
$ helm repo update
$ helm search repo appscode/kubedb --version v0.16.0-rc.0
NAME CHART VERSION APP VERSION DESCRIPTION
appscode/kubedb v0.16.0-rc.0 v0.16.0-rc.0 KubeDB by AppsCode - Production ready databases on Kubernetes
appscode/kubedb-catalog v0.16.0-rc.0 v0.16.0-rc.0 KubeDB Catalog by AppsCode - Catalog for database versions
# Step 1: Install KubeDB Community operator chart
$ helm install kubedb-community appscode/kubedb \
--version v0.16.0-rc.0 \
--namespace kube-system \
--set-file license=/path/to/the/license.txt
# Step 2: wait until crds are registered
$ kubectl get crds -l app.kubernetes.io/name=kubedb -w
NAME AGE
elasticsearches.kubedb.com 12s
elasticsearchversions.kubedb.com 8s
etcds.kubedb.com 8s
etcdversions.kubedb.com 8s
memcacheds.kubedb.com 6s
memcachedversions.kubedb.com 6s
mongodbs.kubedb.com 7s
mongodbversions.kubedb.com 6s
mysqls.kubedb.com 7s
mysqlversions.kubedb.com 7s
postgreses.kubedb.com 8s
postgresversions.kubedb.com 7s
redises.kubedb.com 6s
redisversions.kubedb.com 6s
# Step 3(a): Install KubeDB catalog of database versions
$ helm install kubedb-catalog appscode/kubedb-catalog \
--version v0.16.0-rc.0 \
--namespace kube-system
# Step 3(b): Or, if previously installed, upgrade KubeDB catalog of database versions
$ helm upgrade kubedb-catalog appscode/kubedb-catalog \
--version v0.16.0-rc.0 \
--namespace kube-system
To see the detailed configuration options, visit here.
Using Helm 2
KubeDB can be installed via Helm using the chart from AppsCode Charts Repository. To install, follow the steps below:
$ helm repo add appscode https://charts.appscode.com/stable/
$ helm repo update
$ helm search appscode/kubedb --version v0.16.0-rc.0
NAME CHART VERSION APP VERSION DESCRIPTION
appscode/kubedb v0.16.0-rc.0 v0.16.0-rc.0 KubeDB by AppsCode - Production ready databases on Kubernetes
appscode/kubedb-catalog v0.16.0-rc.0 v0.16.0-rc.0 KubeDB Catalog by AppsCode - Catalog for database versions
# Step 1: Install KubeDB Community operator chart
$ helm install appscode/kubedb --name kubedb-community \
--version v0.16.0-rc.0 \
--namespace kube-system \
--set-file license=/path/to/the/license.txt
# Step 2: wait until crds are registered
$ kubectl get crds -l app.kubernetes.io/name=kubedb -w
NAME AGE
elasticsearches.kubedb.com 12s
elasticsearchversions.kubedb.com 8s
etcds.kubedb.com 8s
etcdversions.kubedb.com 8s
memcacheds.kubedb.com 6s
memcachedversions.kubedb.com 6s
mongodbs.kubedb.com 7s
mongodbversions.kubedb.com 6s
mysqls.kubedb.com 7s
mysqlversions.kubedb.com 7s
postgreses.kubedb.com 8s
postgresversions.kubedb.com 7s
redises.kubedb.com 6s
redisversions.kubedb.com 6s
# Step 3(a): Install KubeDB catalog of database versions
$ helm install appscode/kubedb-catalog --name kubedb-catalog \
--version v0.16.0-rc.0 \
--namespace kube-system
# Step 3(b): Or, if previously installed, upgrade KubeDB catalog of database versions
$ helm upgrade kubedb-catalog appscode/kubedb-catalog \
--version v0.16.0-rc.0 \
--namespace kube-system
To see the detailed configuration options, visit here.
Using YAML
If you prefer to not use Helm, you can generate YAMLs from KubeDB chart and deploy using kubectl
. Here we are going to show the prodecure using Helm 3.
$ helm repo add appscode https://charts.appscode.com/stable/
$ helm repo update
$ helm search repo appscode/kubedb --version v0.16.0-rc.0
NAME CHART VERSION APP VERSION DESCRIPTION
appscode/kubedb v0.16.0-rc.0 v0.16.0-rc.0 KubeDB by AppsCode - Production ready databases on Kubernetes
appscode/kubedb-catalog v0.16.0-rc.0 v0.16.0-rc.0 KubeDB Catalog by AppsCode - Catalog for database versions
# Step 1: Install KubeDB Community operator chart
$ helm template kubedb-community appscode/kubedb \
--version v0.16.0-rc.0 \
--namespace kube-system \
--set-file license=/path/to/the/license.txt \
--no-hooks | kubectl apply -f -
# Step 2: wait until crds are registered
$ kubectl get crds -l app.kubernetes.io/name=kubedb -w
NAME AGE
elasticsearches.kubedb.com 12s
elasticsearchversions.kubedb.com 8s
memcacheds.kubedb.com 6s
memcachedversions.kubedb.com 6s
mongodbs.kubedb.com 7s
mongodbversions.kubedb.com 6s
mysqls.kubedb.com 7s
mysqlversions.kubedb.com 7s
postgreses.kubedb.com 8s
postgresversions.kubedb.com 7s
redises.kubedb.com 6s
redisversions.kubedb.com 6s
# Step: Install/Upgrade KubeDB catalog of database versions
$ helm template kubedb-catalog appscode/kubedb-catalog \
--version v0.16.0-rc.0 \
--namespace kube-system \
--no-hooks | kubectl apply -f -
To see the detailed configuration options, visit here.
Verify installation
To check if KubeDB operator pods have started, run the following command:
$ kubectl get pods --all-namespaces -l app.kubernetes.io/name=kubedb --watch
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system kubedb-859d6bdb56-m9br5 1/1 Running 2 5s
Once the operator pod is running, you can cancel the above command by typing Ctrl+C
.
Now, to confirm CRD groups have been registered by the operator, run the following command:
$ kubectl get crd -l app.kubernetes.io/name=kubedb
Now, you are ready to create your first database using KubeDB.