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: spec: initContainers: - name: echo-username image: busybox imagePullPolicy: IfNotPresent…
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"}
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:
This post explores how to configure some different Cassandra cluster topologies.
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:
This post explores how to configure some different Cassandra cluster topologies.
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. …