The situation
- I have a Spring Boot service running inside Kubernetes
- Multiple instance are running (the kubernetes deployment has multiple replicas configured)
- I have an incoming HTTP from outside the cluster that hits on of the instances
- I want to relay the fact to all other instances
Question
Is there an easy, no external things needed, solution to find a list of “all pods of my service” ? I think I remember that this could be possible via DNS resolution but my Google-Fu seems to weak to find something.
Of course I can always to this via some other solution (e.g. Redis, Kafka, whatever) but since I only need this for a one-off feature I would like to not introduce any moving parts and keep it as simple as possible.
2
Answers
You can list all pods behind a service by running
Internal K8s DNS would only get you the IP-address of the service. Luckily, there is the Endpoints resource exactly for the purpose of getting the Pods that back a Service.
With kubectl you can check endpoints out like this:
With this command you get hold of the Pod names:
To execute the same thing from your Spring Boot app, you can try to make use of the official Kubernetes Java client library.