The goal of the Couchbase Autonomous Operator is to fully manage one or more Couchbase deployments so that you don’t need to worry about the operational complexities of running Couchbase. Not only does the Operator automatically administer your Couchbase cluster, it also manages the cluster according to Couchbase best practices.
Autonomous Operator 1.0 is production-ready and provides many features that make it easier to manage Couchbase in Kubernetes environments. Take a look at the release notes for a list of known issues in this release.
Automated Cluster Provisioning
Simply send a configuration file to Kubernetes and watch the Operator automatically deploy your Couchbase Server cluster. The Operator takes care of all the heavy lifting, such as:
Creating Kubernetes pods
Installing Couchbase Server nodes with multi-dimensional scaling
Initializing the Couchbase cluster
Creating server groups
Once you’ve created a configuration file, you can use it to easily deploy the same configuration across development, test, and production environments; or use it as a starting point to create deployments that fit even more use-cases.
Use the same configuration file to scale Couchbase Server that you did to deploy it. Scaling a cluster up or down is as simple as editing a single number in the configuration file, and then watching the Operator autonomously handle all of the pod creation/deletion, as well as the rebalancing of nodes in and out of the cluster. Specify any number of nodes, running any number of services, and let the Operator do the work.
Changing a provisioned node’s services
If you’ve used Couchbase Server in the past, then you might have found that once a Couchbase Server node is joined to a cluster, the services running on that node cannot change. The Operator eliminates this challenge by allowing you to edit the configuration in a way that seamlessly removes the old nodes and adds in the new nodes with the desired services.
The Operator is always monitoring the Couchbase cluster for failures. When a node or group failure is detected, the Operator automatically rebalances out the bad nodes and brings the cluster back up to full capacity.
In addition, with its support for Kubernetes persistent volumes, the Operator can use Delta recovery for even greater recovery performance. In all cases, the Operator removes the faulty node from the Couchbase cluster and replaces it with a new node, ensuring that the cluster is back up to the desired configuration without any loss of data.
See Node Recovery
High Availability Across Distributed Infrastructure
Leveraging Kubernetes labels, the Operator is capable of automatically scheduling pod creation across failure domains and ensuring that they are added to the correct Couchbase server groups for rack/zone awareness. Combined with support for XDCR and TLS, the Operator can automatically and securely recover a Couchbase cluster after even the largest of physical infrastructure failures, all while remaining available to your customers and applications.
Persistent volumes offer a way to create Couchbase pods with data that resides outside of the actual pod itself. This decoupling provides a higher degree of resilience for data within the Couchbase cluster in the event that a node goes down or its associated pod is terminated. Likewise, persistent volumes give you greater flexibility and efficiency in your deployment because you can let Kubernetes automatically move Couchbase pods between nodes without worrying about any downtime or data-loss.
The Operator supports some of the most popular persistent volume vendors, including major cloud providers like AWS, GCE, and Azure.
Couchbase provides extra tools to help prevent issues from occurring in your deployment, as well as troubleshoot problems if things go wrong.
- Configuration validation
Native Kubernetes tools (
oc) don’t have enough knowledge about Couchbase to ensure that your cluster configuration is valid — so Couchbase developed its own command-line tool, cbopctl, that implements a custom subset of the
occommands to ensure that Couchbase configurations are valid before they are uploaded to Kubernetes.
- Log collection
To assist with troubleshooting and status monitoring, Couchbase developed the cbopinfo command-line tool to collect information and logs about any or all Couchbase clusters in a given Kubernetes namespace.
Centralized Configuration Management
The Operator allows you to enjoy the operational benefits of Kubernetes, without worrying about the administrative complexities. Instead of logging into each Couchbase cluster individually, you can manage multiple Couchbase clusters all through a single deployment of the Operator.