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.
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.