Kubernetes cannot access cassandra database

9/29/2018

I cannot access my Cassandra database, deployed on the same namespace in kubernetes.

My service has no cluster IP but an internal endpoint cassandra.hosting:9042 but whenever I try to connect from an internal spring application using

spring.data.cassandra.contact-points=cassandra.hosting

it fails with the error All host(s) tried for query failed

--
cassandra
kubernetes
spring-boot

1 Answer

9/29/2018

How did you configure your endpoint? Generally, all services and pods in a Kubernetes cluster are discoverable through a standard DNS notation. It looks like this:

<service-name>.<namespace>.svc.cluster.local # or
<pod-name>.<namespace>.svc.cluster.local # or
<pod-name>.<subdomain>.<namespace>.svc.cluster.local

If you are within the same namespace this would work too:

<service-name>
<pod-name>
<pod-name>.<subdomain>

I would also check either core-dns or kube-dns are running and ready:

kubectl -n kube-system get pods | grep dns
-- Rico
Source: StackOverflow