K8ssandra provides a complete Apache Cassandra™ Kubernetes ecosystem. This means that K8ssandra provides not only Cassandra, but also useful tools for the care, feeding and use of your Cassandra database - all within the Kubernetes framework.
If you’ve used Kubernetes, you realize that Kubernetes is a powerful framework for cloud-based systems. However, creating, deploying and managing these systems can be daunting. Besides creating the necessary Kubernetes objects such as pods, deployments, services and configMaps, you also have to wire all the pieces so they can talk to each other. The more components your system has, the more complex this job becomes. Fortunately, when it comes to Cassandra, K8ssandra takes care of all this heavy lifting for you.
As A Reminder, What’s Included In K8ssandra?
K8ssandra is an Apache Cassandra ecosystem that contains the following:
- Cassandra-Operator - a Kubernetes-ready CRD for running Cassandra
- Prometheus - a metrics gathering facility
- Grafana - a UI with dashboards for viewing metrics collected by Prometheus
- Reaper - a utility for maintaining data consistency within the Cassandra cluster
- Medusa - a backup/restore utility crafted specifically for Cassandra
- Stargate - a service that provides multiple APIs, such as REST, GraphQL and more, for Cassandra data
Since an open source community supports K8ssandra, as the community adds more resources to K8ssandra, you will be able to leverage their work. You may even want to join the community at k8ssandra.io and contribute some feedback or work of your own.
How Do I Install K8ssandra?
K8ssandra is Helm-based. Helm is a Kubernetes package manager like yum, or apt. You can deploy all the pieces of K8ssandra with a single Helm command, saving you days of work. The K8ssandra community has already figured out how to configure all the parts and pieces so they work together right out of the box.
To install K8ssandra, you’ll need a Helm client. Then you update your client with the URL for the K8ssandra Helm repository () and access the chart right from the URL.
Can I Customize My K8ssandra Config?
Yes! K8ssandra is easy to customize - just create a configuration file including the settings you wish to modify, and apply the configuration using Helm.
If you have ever deployed your own stand-alone Apache Cassandra database, then you know there is a myriad of configuration settings. The K8ssandra Helm chart simplifies this process while encouraging Cassandra best-practices. For example, changing the size of a Cassandra cluster can be challenging. But, in K8ssandra, you merely set the size of the cluster and tell Helm to make it so. The process of scaling down is similar - just lower the desired number of nodes and K8ssandra takes care of all the procedural details needed to create a Cassandra database of the size specified.
The K8ssandra Helm chart is very well documented, which takes the guesswork out of the configuration process. When you want to customize, find the section in the Helm chart that applies to your customization, read through the instructions in the comments, create a corresponding configuration file and apply the changes.
Items related to Kubernetes
An overview of K8ssandra
Helm Youtube video tutorial
An overview of Helm and Helm Charts
Blog: DBA to SRE With K8ssandra
Transitioning from a DBA to an SRE with K8ssandra