Skip to content

Cassandra Seed, Rack, and DC Providers for Kubernetes deployments

Notifications You must be signed in to change notification settings

k8s-for-greeks/k8s-cassandra-providers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 

Repository files navigation

Cassandra on Kubernetes Custom Seed Provider

Within any deployment of Cassandra a Seed Provider is used to for node discovery and communication. When a Cassandra node first starts it must discover which nodes, or seeds, for the information about the Cassandra nodes in the ring / rack / datacenter.

This Java project provides a custom Seed Provider which communicates with the Kubernetes API to discover the required information. This provider is bundled with the Docker provided in this example.

Configuring the Seed Provider

The following environment variables may be used to override the default configurations:

ENV VAR DEFAULT VALUE NOTES
KUBERNETES_PORT_443_TCP_ADDR kubernetes.default.svc.cluster.local The hostname of the API server
KUBERNETES_PORT_443_TCP_PORT 443 API port number
CASSANDRA_SERVICE cassandra Default service name for lookup
POD_NAMESPACE default Default pod service namespace
K8S_ACCOUNT_TOKEN /var/run/secrets/kubernetes.io/serviceaccount/token Default path to service token

Using

If no endpoints are discovered from the API the seeds configured in the cassandra.yaml file are used.

Provider limitations

This Cassandra Provider implements SeedProvider. and utilizes SimpleSnitch. This limits a Cassandra Ring to a single Cassandra Datacenter and ignores Rack setup. Datastax provides more documentation on the use of SNITCHES. Further development is planned to expand this capability.

This in affect makes every node a seed provider, which is not a recommended best practice. This increases maintenance and reduces gossip performance.

About

Cassandra Seed, Rack, and DC Providers for Kubernetes deployments

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages