How to implement Kubernetes POD to POD Communication?

ghz 1years ago ⋅ 3933 views

Question

This question has been asked and answered before on stackoverflow but because I'm new to K8, I don't understand the answer.

Assuming I have two containers with each container in a separate POD (because I believe this is the recommend approach), I think I need to create a single service for my two pods to be apart of.

  1. How does my java application code get the IP address of the service?
  2. How does my java application code get the IP addresses of another POD/container (from the service)?
  3. This will be a list of IP address because these are stateless and they might be replicated. Is this correct?
  4. How do I select the least busy instance of the POD to communicate with?

Thanks Siegfried


Answer

How does my java application code get the IP address of the service?

You need to create a Service to expose the Pod's port and then you just need to use the Service name and kube-dns will resolve the Pod's IP address

How does my java application code get the IP addresses of another POD/container (from the service)?

Yes, using the service's name

This will be a list of IP address because these are stateless and they might be replicated. Is this correct?

The Service will load balance between all pods that matches the selector, so it could be 0, 1 or any number of Pods

How do I select the least busy instance of the POD to communicate with?

Common way is round robin policy but here are other specific balancing policies <https://kubernetes.io/docs/concepts/services- networking/service/#proxy-mode-ipvs>

Cheers ;)