Deploy and manage production Apache Cassandra clusters on Kubernetes using the K8ssandra operator. Covers EKS, GKE, and AKS with cloud-specific storage classes, monitoring (Prometheus/Grafana), backup/restore (Medusa), automated repairs (Reaper), TLS encryption, authentication, and scaling. Use this skill whenever the user wants to deploy Cassandra on Kubernetes, set up a K8ssandra cluster, configure Cassandra backups on K8s, add monitoring to Cassandra on K8s, scale a Cassandra datacenter, or manage any aspect of Cassandra running in a Kubernetes environment.
This skill guides you through deploying production-grade Apache Cassandra clusters on Kubernetes using the K8ssandra operator. K8ssandra bundles the Cassandra operator (cass-operator), Medusa for backups, Reaper for repairs, and metrics integration into a single declarative workflow.
K8ssandraCluster manifestAsk the user which cloud provider they're targeting, then read the appropriate reference file:
references/eks.mdreferences/gke.mdreferences/aks.mdIf the user hasn't specified, ask them before proceeding — storage classes and networking details differ significantly across providers.
helm repo add jetstack https://charts.jetstack.io
helm repo update
helm install cert-manager jetstack/cert-manager \
--namespace cert-manager --create-namespace \
--set installCRDs=true
Wait for cert-manager pods to be ready before continuing:
kubectl wait --for=condition=Ready pods --all -n cert-manager --timeout=120s
helm repo add k8ssandra https://helm.k8ssandra.io/stable
helm repo update
helm install k8ssandra-operator k8ssandra/k8ssandra-operator \
-n k8ssandra-operator --create-namespace
For multi-namespace deployments, add --set global.clusterScoped=true.
The StorageClass must use volumeBindingMode: WaitForFirstConsumer so that PVs
are provisioned in the same availability zone as the scheduled pod. Without this,
Cassandra pods can fail to mount their volumes.
Read the cloud-specific reference file for the exact StorageClass YAML. Summary:
| Cloud | StorageClass name | Provisioner | Disk type |
|---|---|---|---|
| EKS | gp3-csi | ebs.csi.aws.com | gp3 |
| GKE | pd-ssd | pd.csi.storage.gke.io | pd-ssd |
| AKS | managed-premium | disk.csi.azure.com | Premium_LRS |
Here is a production-ready template. Customize the values marked with comments:
apiVersion: k8ssandra.io/v1alpha1