Why use Couchbase Within Kubernetes

Couchbase provides some great ways to manage its clusters, from REST api calls to a full featured webui.  While those options may be sufficient, an higher level abstraction is often desired. Users commonly use Kubernetes and more recently are deploying Couchbase within a Kubernetes cluster.

To provide that abstraction the Couchbase Operator is an excellent solution.  The Couchbase Operator simplifies the management of cluster topology.  Through configuration the Couchbase Operator provides:

  • Automated Cluster Provisioning
  • Elastic Scalability
  • Auto Recovery

Next we will look into the technologies that are needed to utilize the Couchbase Operator.

Try it Yourself

Go directly to the technical walkthrough, if you just want to try things out and you already have the background knowledge.  The Couchbase Operator is currently in beta, but is fully functional.

Kubernetes In A Nutshell

Kubernetes is an open-source container-orchestration system that automates the deployment, scaling and management of containerized applications. Traditionally Kubernetes has been applied to stateless workloads like application servers.  As a greater number of applications have moved to Kubernetes, there’s been an increasing need to provide stateful storage within Kubernetes clusters. Initial models included pet sets, stateful sets, a sidecar approach, and most recently, the operator approach.

Integrating Couchbase With Amazon EKS

Kubernetes solves the problem of managing containers but the management of Kubernetes clusters  can be daunting.  The major cloud service providers (CSP) have self-managed and a managed solutions, with Amazon Elastic Container Service for Kubernetes (Amazon EKS) being a top-tier managed option.  Amazon EKS is integrated with many AWS services with some of the most noteworthy being:

  • Elastic Load Balancing for load distribution
  • IAM for authentication
  • Amazon VPC for isolation
  • AWS CloudTrail for logging

This blog post will illustrate how Amazon EKS and the Couchbase Operator integrate seamlessly together.

What is an 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.  

The Couchbase Operator

Couchbase has developed the Couchbase Operator that simplifies the management of couchbase clusters within Kubernetes.  The most exciting functions are deploying a topography on the fly based on your configuration and handling auto-recovery.  A link is provided at the end of the post where you can try it out for yourself.

Couchbase Operator high-level diagram

Couchbase Operator high-level diagram

   

Meetup!

We had a meetup at Couchbase HQ on this topic (and more) on June 21st.  It was a blast.   A video of the sessions will be provided shortly.

Author

Posted by Shomari Liburd

Shomari Liburd is a Cloud Architect for Couchbase and lives in Seattle WA. He has two decades of experience in roles from Developer, Risk Management Advisor and airline passenger. “Guerilla Technologist” is also his self-proclaimed title, which means he has no problem doing the dirty work to get things done. A New Yorker and an island boy you can find him on twitter @ShoNY2SK.

One Comment

  1. That’s great. It sounds good after reading this blog about couchbase operator that helps in managing clusters.

Leave a reply