Seed provider of rc-based cassandra pod is configured with only one Pod IP address
Closed this issue · 1 comments
Context: I deployed kubernetes version 1.7.2 using kubeadm:1.7.2.
I first created cassandra-service, then created cassandra-rc, then scaled cassandra-rc to 3 replicas.
The configuration of cassandra.yaml only lists one seed-provider.
# Ex: "<ip1>,<ip2>,<ip3>"
- seeds: "10.244.2.11"
Does this has a negative effect on throughput metrics for write/read requests? Otherwise, all podIPs should be listed.
The headless service has been correctly registered with the internal DNS service in my kubeadm based deployment:
ubuntu@kubeadm-master:~$ kubectl exec busybox -- nslookup cassandra
Server: 10.96.0.10
Address 1: 10.96.0.10 kube-dns.kube-system.svc.cluster.local
Name: cassandra
Address 1: 10.244.1.10
Address 2: 10.244.2.11
Address 3: 10.244.3.11
Logs of cassandra instance (see attached file) indeed confirm that only one podIP is passed on:
seed_provider=org.apache.cassandra.locator.SimpleSeedProvider{seeds=10.244.2.11)
Followup to my question whether one seed node per cluster is bad for performance. According to this site https://blog.threatstack.com/scaling-cassandra-lessons-learned#7, it is not bad for performance. Actually, making all nodes seed nodes is bad for performance. Therefore one seed node per data center rack is sufficient. 2 seeds nodes are recommended for improved fault tolerance.
I also understand now that entrypoint.sh script is programmed such that it only extracts the first podIP. So this script needs to be adjusted if you need 2 seeds.