I have been working with Cass Operator a lot as part of my work on K8ssandra. I have a new favorite feature that I want to discuss. That feature is the podTemplateSpec property of CassandraDatacenter.

The podTemplateSpec property is for advanced use cases. It is essentially a hook to customize the underlying StatefulSets that Cass Operator creates.

Let’s look at an example to illustrate how it can be put to use.

apiVersion: cassandra.datastax.com/v1beta1
kind: CassandraDatacenter
metadata:
name: dc1
spec:
clusterName: demo
serverType: cassandra
serverVersion: 3.11.7
managementApiAuth:
insecure: {}
size: 3
podTemplateSpec…

In this post we will take a look at how to configure and deploy Cass Operator so that it can watch multiple namespaces. We will make the necessary RBAC changes so that the operator can manage CassandraDatacenters in the watched namespaces.

This post served as a great resource as I started looking into how to do this.

Here is version info of the Kubernetes cluster that I used for testing:

$ kubectl version
Client Version: version.Info{Major:"1", Minor:"16", GitVersion:"v1.16.9", GitCommit:"a17149e1a189050796ced469dbd78d380f2ed5ef", GitTreeState:"clean", BuildDate:"2020-04-16T11:44:51Z", GoVersion:"go1.13.9", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"16+", GitVersion:"v1.16.11-gke.5", GitCommit:"baccd25d44f1a0d06ad3190eb508784efbb990a5", GitTreeState:"clean", BuildDate:"2020-06-25T22:55:26Z", GoVersion:"go1.13.9b4", Compiler:"gc", Platform:"linux/amd64"}

Background

Someone in the community created…


In my previous post, we looked at how to deploy Cassandra clusters in Kubernetes using CassKop. CassKop makes it easy to configure different topologies for Cassandra. In this post we continue with the theme of topology configuration. We will explore how we can leverage CassKop to make sure Cassandra pods run on particular Kubernetes nodes as well as to make sure pods run in specific availability zones. CassKop makes this possible by using labels and affinity rules.

Labels in Kubernetes are key/value pairs that can be added to objects such as pods, services, and even the nodes on which pods…


CassKop is a Kubernetes operator for Cassandra. It can create, configure, and manage Cassandra clusters running in Kubernetes. CassKop has a number of interesting features. One of those feature is data center- and rack-aware deployments, which is the focus of this post.

CassKop introduces a new Custom Resource Definition, CassandraCluster, which allows you to specify a number things like:

  • The CPU and memory resources
  • Node anti-affinity
  • Resource limits
  • Storage class
  • Topology (in terms of data center and rack configuration)

This post explores how to configure some different Cassandra cluster topologies.

Install CassKop

CassKop is available is as Helm chart. Helm is the…


CassKop is a Kubernetes operator for Cassandra. It can create, configure, and manage Cassandra clusters running in Kubernetes. CassKop has a number of interesting features. One of those feature is data center- and rack-aware deployments, which is the focus of this post.

CassKop introduces a new Custom Resource Definition, CassandraCluster, which allows you to specify a number things like:

  • The CPU and memory resources
  • Node anti-affinity
  • Resource limits
  • Storage class
  • Topology (in terms of data center and rack configuration)

This post explores how to configure some different Cassandra cluster topologies.

Install CassKop

CassKop is available is as Helm chart. Helm is the…


Running Cassandra in Kubernetes presents some interesting challenges. Performance is almost always an important consideration with Cassandra, no less so when running in Kubernetes. In this post, I demonstrate how to deploy tlp-stress in Kubernetes and run it against a Cassandra cluster that is also running in the same Kubernetes cluster.

tlp-stress is a workload-centric tool for stress testing and benchmarking Cassandra. It is developed and maintained by my colleagues at The Last Pickle. If you are not familiar with it, checkout this introductory article along with this one for a great overview.

Enough with formalities. …

John Sanda

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store