Portworx is a Kubernetes data-services platform that provides persistent storage, data protection, disaster recovery, and…
June 3, 2022
How to deploy Apache Cassandra on Kubernetes using Portworx Data Services
Apache Cassandra is an open-source, NoSQL distributed database that organizations in all industry verticals—including banking, retail, healthcare, telecommunications, financial services, etc.—have adopted. Cassandra’s distributed architecture enables features like high availability, fault tolerance, high performance, elasticity, and scalability. As a result, Cassandra is a perfect fit for cloud-native applications that are deployed on Kubernetes.
Cassandra on Kubernetes allows users to start small and add more nodes as they grow and scale. Kubernetes also helps Cassandra recover from failures by automatically respawning failed pods on different nodes on the cluster. Although there are many benefits of running Cassandra on Kubernetes, organizations still need to find the best way to do it. As we covered in a previous blog, multiple Kubernetes operators, from different vendors in the ecosystem, have different features when it comes to Day 0 deployment, performance tuning, and Day 2 operations like backup and scaling.
In this blog, we are going to talk about how you can leverage Portworx Data Services to deploy a highly available and performant Cassandra cluster on an Amazon EKS cluster that you can start using with your cloud-native applications in a matter of minutes. Portworx Data Services gives users a huge head start when it comes to deploying data services on Kubernetes, as it provides a consistent deployment and ongoing management experience, regardless of the database that you want to use for your application.
- To deploy Cassandra, you can log into the Portworx Data Services console and select the right Account, Tenant, and Project.
- On the dashboard, you will see a list of data services that you can deploy on any PDS-connected Kubernetes cluster.
- Select Cassandra, and let’s fill out the deployment wizard to deploy Cassandra on an Amazon EKS cluster.
- Enter a name for the Cassandra cluster and select a target Kubernetes cluster and namespace.
- Select the right Application Configuration and Resource Setting templates for your cluster deployment. The application configuration template allows you to pass runtime parameters for the database deployment, and the resource settings allow you to select a t-shirt size for the database deployment. Resource settings include things like the resource quotas and limits for CPU and memory resources per pod, as well as the size of the persistent volume that will be deployed for each pod. By default, PDS will deploy a Cassandra Datacenter called DC1 and Cassandra Rack called RAC1. If you want to override these values, you can use ‘CASSANDRA_DC’ and ‘CASSANDRA_RACK’ in your application configuration templates.
- Next, you can select the number of Cassandra nodes (pods) you want in your cluster and select the type of storage you need.
- Optionally, you can also choose to configure an hourly, daily, weekly, or monthly backup schedule for your Cassandra database and choose a backup location to store your backups.
- Once you have entered all the requirement information, you can hit Deploy, and PDS will initiate the deployment of the Cassandra cluster on your Amazon EKS cluster.
- PDS will configure the backend storage class that will be used to dynamically provision any persistent volumes that your Cassandra instance will need.
- Next, PDS will create a Kubernetes StatefulSet object for your Cassandra instance, with the replica count set to the number of nodes you specified in the Deployment wizard. PDS will also deploy load balancer instances for your service endpoints, so once the deployment is successful, you can view the connection details from the PDS dashboard and start using the Cassandra database for your applications.
- You can also use the PDS dashboard to monitor the performance of your Cassandra database and get application-specific metrics. PDS also allows you to take ad hoc backups of your Cassandra instance and to change the resource settings so you can scale up your database, or it also allows you to add more nodes so you can scale out your database.
Portworx Data Services follows this simple workflow for any database deployment if you want to use it to deploy database instances on your Kubernetes clusters. Learn more about Portworx Data Services, here!. If you want to see a demonstration of deploying Cassandra using PDS and using it as part of a simple PetClinic application, click below: