This blog by Arun Gupta of Coucbase explains how to use Docker Volume Plugins and…
February 6, 2019
Running HA Couchbase on OpenShift
The general availability of StatefulSets in the Kubernetes project has made it easier for users to run persistent workloads, like databases on Kubernetes or Red Hat OpenShift. Using StatefulSets, users of Kubernetes or OpenShift, can persist data for complex multi-container applications across pods and/or service restarts. But that is just the first step of running a stateful application on Kubernetes.
Orchestrating complex use cases like multi-cloud platforms and mission-critical stateful applications via the built-in Kubernetes primitives can be a challenge. For instance, Kubernetes does not provide a mechanism for data security (encryption, role-based access controls to persistent volumes), backup and recovery workflows, app migrations including data, etc. Day 1 deployments of stateful apps are becoming easier and easier, but Day 2 ops are still a challenge.
To provide a model for software providers to automate these complex workflows (Failover, backup, recovery, security, etc), Red Hat released the Operator SDK in May 2018 to extend the Kubernetes application programming interface (API) in order to better manage the lifecycle of a stateful application like Couchbase. Any software provider, including Couchbase and Portworx, can write an Operator that automates the tasks that a knowledgeable SRE would perform in the event of a system failure, scheduled, or unscheduled maintenance. This blog will show you how a combination of the Couchbase Autonomous Operator for Kubernetes along with the Portworx data platform, makes the combination a natural choice for running cloud native workloads on the Red Hat OpenShift Container platform.
Couchbase is a NoSQL document-store database which provides application developers a unified programming model for many use cases like mobile and event-driven applications. Couchbase server offers inbuilt caching via Memcached to accommodate fast data ingest from producers of data. Couchbase has developed a Kubernetes operator to create, configure and manage instances of Couchbase on behalf of a Kubernetes user. The Couchbase Autonomous Operator provides auto-provisioning, auto-cluster bootstrapping and centralized management of Couchbase service instances or pods running in a Kubernetes cluster. The Couchbase Autonomous Operator is available in Red Hat Container Catalog and is responsible for performing rebalancing operation on the cluster. In the event of a failure, Couchbase pods are recovered by the Kubernetes cluster while Couchbase service resiliency at the application level is handled by Couchbase Operator. The Couchbase Operator embeds the recovery business logic by creating a custom resource definition (CRD) in the Kubernetes cluster. Couchbase Autonomous Operator is responsible for Couchbase application recovery and cluster rebalancing whereas Couchbase cluster’s data volume resiliency is handled by the Portworx data platform.
Why Portworx data platform?
Portworx is a cloud native storage platform used to run persistent workloads deployed on cloud native platforms like Kubernetes and OpenShift. Portworx’s data management layer can help stateful services like Couchbase recover from a pod or node failure efficiently by influencing the placement of Couchbase pod on the same physical host that has an up-to-date copy of its persistent data volume.
Portworx enterprise-ready data platform offers:
- High availability of data by offering lightning-fast data replication for multi-pod application deployments.
- A flexible solution which offers shared volumes and topology awareness for applications deployed across data-center racks or data-center zones.
- Security enhancements offered via volume encryption and BYOK encryption keys.
- Integrations with external key vault systems like AWS KMS and HashiCorp Vault.
- Data platform observability through PX-Central user interface (UI).
- Portworx data control plane for on-prem or cloud deployment of Kubernetes applications.
Portworx solves the application mobility problem across hybrid and or multi-cloud environments by allowing you to migrate the application and the data associated with the application across Kubernetes environments.
Portworx achieved Red Hat certification for Red Hat OpenShift Container Platform and PX-Enterprise is now available in the Red Hat Container Catalog. This certification enables enterprises to confidently run high-performance stateful applications like databases or machine learning applications on the Red Hat OpenShift Container Platform in a multi-tenant manner.
Video – Table of Contents
The video will show steps to deploy a Couchbase cluster with Portworx
- Deploy Couchbase Autonomous Operator (0’22”)
- Create Portworx-based storage class for Couchbase cluster on Kubernetes (0’44”)
- Create a Couchbase cluster using Portworx Volumes with High Availability (HA) enabled (1’12”)
- Load data into Couchbase cluster using cbc-pillowflight tool (3’24”)
- Cordon a data-node with persistent volume to simulate failure (4’05”)
- Spin up replacement node with reattached Portworx persistent volume (4’26”)
- Auto-rebalancing of Couchbase cluster (5’30”)
- Download Couchbase Operator for OpenShift here
- Learn more about Couchbase Autonomous Operator here
- Download Portworx OpenShift product brief here
- Download Portworx Container image for Red Hat OpenShift here
If you have questions about how Portworx platform can help your organization with data protection and data portability when running on cloud native container orchestrators, please reach out to one of our Portworx experts and request a demo.