![]() - updating java to 3.7 - added pet set example - adding pet set for Cassandra e2e tests - changed service as we do not want a lb service, as we are running C* - updated docs fixing headers and adding exception for run.sh adding documentation, thank god for reflog Did not mean to commit that as the README ... fixing fixing problems in README fixing more problems in README more README tweaks munge updates updating examples_test for PetSet in Cassandra examples updating petset to no use better security context |
||
---|---|---|
.. | ||
src | ||
.gitignore | ||
README.md | ||
pom.xml |
README.md
PLEASE NOTE: This document applies to the HEAD of the source tree
If you are using a released version of Kubernetes, you should refer to the docs that go with that version.
The latest release of this document can be found [here](http://releases.k8s.io/release-1.4/examples/storage/cassandra/java/README.md).Documentation for other releases can be found at releases.k8s.io.
Cassandra on Kubernetes Custom Seed Provider: releases.k8s.io/HEAD
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.