vyshane / cassandra-kubernetes Goto Github PK
View Code? Open in Web Editor NEWEasily launch a Cassandra cluster on Kubernetes
License: Apache License 2.0
Easily launch a Cassandra cluster on Kubernetes
License: Apache License 2.0
I deploy Cassandra to a k8s cluster using your Cassandra-kubernetes service and replication controller definitions. Unfortunately, the Cassandra pod is restarting frequently and these are the last lines from the pod log:
INFO 15:25:25 Cassandra version: 3.5
INFO 15:25:25 Thrift API version: 20.1.0
INFO 15:25:25 CQL supported versions: 3.4.0 (default: 3.4.0)
/custom-entrypoint.sh: line 20: 19 Killed /docker-entrypoint.sh "$@"
What can be a possible cause of that and how one would go about to fix it?
@vyshane - hello, I'm experimenting with your examples, everything seems to run fine, I have an openshift 3.1 cluster running master + 1 node and gluster cluster on the backend for Persistent Volume support.
I created peer-service, service and rc and my pods run, and I'm using a glusterfs volume for data persistence, the data is persisted on multiple restarts of the pods/rc but when I scale I'm not seeing the pods join the C* ring - and not sure what I'm missing. I don't have a ton of experience with k8 or cassandra but from each container I can ping cassandra-peer (peer service)- so I know they are able to connect.
Unclear to me right now if I need to change my PEER_DISCOVERY_DOMAIN or something else?
env:
# Feel free to change the following:
- name: CASSANDRA_CLUSTER_NAME
value: Test Cluster
- name: CASSANDRA_DC
value: datacenter1
- name: CASSANDRA_RACK
value: rack1
- name: CASSANDRA_ENDPOINT_SNITCH
value: GossipingPropertyFileSnitch
# The peer discovery domain needs to point to the Cassandra peer service
- name: PEER_DISCOVERY_DOMAIN
value: cassandra-peers.default.cluster.local.
some output from oc (kubectl for openshift):
[root@ose1 cassandra-custom]# oc get pods
NAME READY STATUS RESTARTS AGE
cassandra-vfujv 1/1 Running 0 59s
cassandra-x36ay 1/1 Running 0 1m
[root@ose1 cassandra-custom]# oc exec -it cassandra-x36ay -- nodetool status testspace
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID Rack
UN 10.1.0.32 176.43 KB 256 100.0% 03b19bd1-ce65-4525-89e7-b23c9b3f0a92 rack1
Also set up OpsCenter for the Cassandra cluster.
Hi,
I deploy cassandra-replication-controller.yaml with replicas of 2 on Kubernetes v1.5.4. I create a keyspace name ks1 on node A but when I verify in node B the keyspace ks1 was not replicate to node B. How do I troubleshoot to why it is not replicating? I've create a env variable PEER_DISCOVERY_DOMAIN=nodeA.default.svc.cluster.local
Any help would be appreciate.
Thanks,
David
When I create my own docker image using your Dockerfile, I get an error:
docker: Error response from daemon: Container command '/custom-entrypoint.sh' could not be invoked.
But when I pull your image, vyshane/cassandra:latest it runs fine.
Are you doing something else to make it work?
Thanks!
First of all thanks for this great project.
I tried to expose the cassandra service as a Nodeport using Kubernetes version 1.5.7. I ran the cassandra-replication controller as defined in this project.
I used the cassandra-stress tool for testing a five-node cassandra cluster using cql2
The cassandra-stress tool reported that it retrieved IP addresses for all cassandra nodes: one IP address was a virtual IP address of the openstack cloud. The other IP addresses where PodIP addresses, and therefore not reachable from outside the cluster.
The throughput was very low as a result.
When I added the VM, on which the cassandra-stress tool ran, as a Kubernetes worker node, the throughput was back to normal.
I experienced the same problem with the YCSB benchmark tool.
Of course returning the cassandra nodes as PodIP addresses is not ideal as all these IP addresses are transient. But this is how the headless cassandra-peer service works via DNS lookup. Is it possible to configure the headless service such that host ports are added as a DNS A record?
I would like to know why the cassandra-stress tool needs to have access to all cassandra nodes. Why isn't it enough to just connect to the VM on which I connect to the Nodeport.
Shortly after scaling up from 1 (a single pod runs fine), the replicas will start up, and shortly after self-execute with the following error:
2017-04-03T15:15:17.407322294Z /custom-entrypoint.sh: line 20: 21 Killed /docker-entrypoint.sh "$@"
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.