Couchbase Operator enables you to run Couchbase deployments natively on Open Source Kubernetes or Enterprise Red Hat OpenShift Container Platform.

The goal of the Couchbase Operator is to fully manage one or more Couchbase deployments by removing operational complexities of running Couchbase by automating the management of common Couchbase tasks such as the configuration, creation, upgrade and scaling of Couchbase clusters.

By reducing the complexity of running a Couchbase cluster, it lets you focus on the desired configuration and not worry about the details of manual deployment and lifecycle management.

What is Kubernetes Operator?

An Operator is an application-specific controller that extends the Kubernetes API to create, configure and manage instances of complex stateful applications on behalf of a Kubernetes user. It builds upon the basic Kubernetes resource and controller concepts, but also includes domain or application-specific knowledge to automate common tasks better managed by computers.

Kubernetes Operators was introduced by the team at CoreOS and in their announcement, CoreOS suggested Operators as a means to more efficiently manage database infrastructure.

How Does it Work?

The Couchbase Operator extends the Kubernetes API by creating a Custom Resource Definition(CRD) and registering a Couchbase specific controller (the Operator) to manage Couchbase clusters.

The CRD allows you to define a configuration describing what a Couchbase cluster should look like. For example, a configuration might define a cluster with three nodes, one bucket, and 8GB of memory for the data service. Once the configuration is loaded into Kubernetes, the configuration is passed to the custom Couchbase controller which takes actions to ensure a Couchbase cluster with the specified configuration is provisioned.

The controller can also detect updates to the configuration and reacts to changes that occur in the cluster itself. Like all Kubernetes standard built-in resources, the Couchbase Operator doesn’t just manage a single Couchbase cluster but multiple Couchbase clusters across an entire Kubernetes deployment.

Here is a sample configuration file for the Couchbase Operator:

And here is a sample configuration file for a Couchbase cluster.

 

What’s available in Beta?
To meet the goal of fully managing one or more Couchbase deployments on Kubernetes or OpenShift, this beta release comes with some of key capabilities:

  • Automated Cluster Provisioning
  • Elastic Scalability
  • Auto Recovery
  • Logging
  • Access to Couchbase Web Console

Let’s dive right in!

Automated Cluster Provisioning

Once the Couchbase cluster configuration “couchbase-cluster.yaml” is defined, it can be pushed into your Kubernetes or OpenShift cluster with the command:.

Or

 

Elastic Scalability

Based on the configuration, Couchbase cluster will be fully provisioned on Kubernetes cluster.

You can elastically scale your cluster up or down by updating cluster configuration and pushing the changes to Kubernetes cluster with the command below.

Or

 

Auto Recovery

The Couchbase Operator can detect node failures, rebalance out bad nodes, and bring the cluster back up to the desired capacity.

Auto recovery is completely automated including detection of failed node, auto-failover, removal of faulty node, replacing with new node and rebalancing new node to the cluster.

Logging

Supportability is one important aspect of this native integration ability to diagnose and troubleshoot problems with Couchbase cluster running Kubernetes or OpenShift platforms.

Read more about how to capture full deployment logs, Couchbase Operator logs and Couchbase Server logs here.

Access to Couchbase Web Console or CLI

Each platforms provides you with Deployment Dashboard – Kubernetes Web UI or OpenShift Origin Web Console but for database administrator or database developer they need access to Couchbase Web Console or CLI.

Read more how to get access to Couchbase Web Console and CLI here.

Ready to check out the Beta?

If you have any questions, comments, or additional feedback, leave a comment below or post on https://www.couchbase.com/forums/.

Author

Posted by Anil Kumar, Director Product Management, Couchbase Cloud-Native Database

Anil Kumar is the Director of Product Management at Couchbase. Anil’s career spans more than 19+ years of building software products across various domains, including enterprise software and cloud services. He is a hands-on product leader responsible for Couchbase Server, Couchbase Cloud, and Kubernetes product lines, including evangelizing the product strategy and vision with customers, partners, developers, and analysts. Before joining Couchbase, Anil spent several years working at Microsoft Redmond. Anil holds a master’s degree in computer science from the University of Toronto (Canada) and a bachelor’s in information technology from Visvesvaraya Technological University (India).

One Comment

Leave a reply