We are pleased to announce the release of KubeDB v2021.08.23. This post lists all the major changes done in this release since v2021.06.23
. This release offers support for the latest Kubernetes version 1.22
. The KubeDB CLI
now has exciting new features. MongoDB
now uses the official docker images. Elasticsearch
supports the latest xpack and opendistro versions and provides pre-built Docker images with snapshot plugins. KubeDB managed Redis
now provides Password Authentication for the default user. KubeDB v2021.08.23 brings further changes to the Community Edition and deprecates prior releases of KubeDB operators. The detailed commit by commit changelog can be found here
.
Kubernetes 1.22
As you may know, Kubernetes 1.22 removed several deprecated beta APIs that were used by KubeDB. So, we have updated KubeDB project to use the corresponding GA version of those APIs. With this change, KubeDB v2021.08.23 supports Kubernetes 1.16 - 1.22 .
KubeDB CLI
In this release, we’ve added some exciting features in KubeDB CLI. The CLI now has some new commands to make your database administration easier. The commands are listed below:
- connect: The connect command is used to connect to the shell of a database, where you can run your database commands.
- exec: Using the exec command, you can execute a script file or run a database command directly via flag without connecting to the database shell. For example, you can run a
javascript
file inMongoDB
database or asql
file inMySQL
orPostgres
database using the exec command. - show-credentials: This command is used to print the credentials i.e. the root username and password to connect to the database.
- pause: The pause command is used to pause a database so that the KubeDB operators don’t process any changes made to the database
CRO
(Custom Resource Object). - resume: You can use the resume command when you want to resume the database from a paused state. After resuming a database, the KubeDB operators will start processing the database again. The command also waits for the database to sync properly before exiting.
Elasticsearch
- Elasticsearch versions support:
xpack-7.14.0
,opendistro-1.13.2
- KubeDB managed Elasticsearch now provides Elasticsearch docker images with pre-installed snapshot plugins: repository-s3, repository-azure, repository-hdfs, and repository-gcs. ElasticsearchVersion with snapshot plugins:
kubedb-xpack-7.14.0
,kubedb-xpack-7.13.2
,kubedb-xpack-7.12.0
, andkubedb-xpack-7.9.1
. You can find a detailed tutorial here . - While using plugins to take snapshots, users need to provide secure settings. KubeDB allows you to provide secure settings through a k8s secret. Now, users can also provide
KEYSTORE_PASSWORD
to secure theelasticsearch.keystore
.
apiVersion: kubedb.com/v1alpha2
kind: Elasticsearch
metadata:
name: sample-es
spec:
secureConfigSecret:
name: k8s-secret-name-with-settings
- KubeDB supports hot-warm clustering for Opendistro of Elasticsearch.
- Includes various feature improvements and bug fixes.
Redis
KubeDB managed Redis now provides Password Authentication
for Default user.
MongoDB
- Previously, the MongoDB database docker image was maintained by KubeDB as we had to insert some scripts inside the official MongoDB image. But to give our users a more reliable experience, we decided to use the MongoDB official images without any modifications. From this release, we are using
MongoDB official docker images
for the provisioning of the MongoDB database using KubeDB. - Previously, KubeDB enterprise operator printed the intermediate logs of a
MongoDBOpsRequest
which flooded the KubeDB enterprise operator logs with unnecessary logs. Now, we’ve changed the log verbosity of the intermediate logs. So, the intermediate logs of theMongoDBOpsRequest
don’t get printed anymore. If you want to see the intermediate logs, you can change the log level of KubeDB enterprise operator to--v=4
.
Introducing Panopticon
We wanted to collect state metrics from our various products (eg, KubeDB, Stash and other). But we didn’t find any existing tool that would accomplish our needs. Kubernetes has a project called kube-state-metrics
but it does not support collecting metrics from Kubernetes custom resources. Moreover, the metrics for Kubernetes native resources were predefined and there was hardly any customization options. So, we decided to build our own generic resource metrics exporter, named Panopticon
, which can collect metrics from any kind of Kubernetes resources. Panopticon
is a Kubernetes controller that watches Kubernetes resources passively and exports Prometheus metrics. You can find more details here
. The MetricsConfiguration
for KubeDB resources are published via kubedb-metrics
chart.
KubeDB Operator uses kubedb
namespace
In previous releases, the KubeDB documentation will show KubeDB operator deployed in kube-system
namespace. From this release, we have updated the documentation to use the kubedb
namespace for installing the operator. This is generally recommended to deploy operators in their own namespace instead of kube-system
namespace. But you can still deploy KubeDB is the kube-system
namespace or any other namespace you like using Helm.
Changes to Community Edition
Kubernetes v2021.08.23 Community Edition will manage database custom resources in Kubernetes demo
namespace. Community Edition is feature limited and with this change we are making it clear to end users that Community Edition is primarily targeted for demo use-cases and the Enterprise Edition is targeted for production and/or sustained usage. To manage databases in any namespace, please try the Enterprise Edition.
Deprecating Previous KubeDB Releases
KubeDB as a product has evolved quite a bit since our decision to adopt an open/core model for the project last year and provide a sustainable future for the project. With this release, we are announcing the deprecation of all prior KubeDB releases. The previous versions of KubeDB operator will become unavailable by Dec 31, 2021. So, we encourage users to upgrade to the latest version of KubeDB.
What Next?
Please try the latest release and give us your valuable feedback.
If you want to install KubeDB, please follow the installation instruction from here .
If you want to upgrade KubeDB from a previous version, please follow the upgrade instruction from here .
Support
To speak with us, please leave a message on our website .
To receive product announcements, follow us on Twitter .
If you have found a bug with KubeDB or want to request for new features, please file an issue .