Kubernetes networking, How to transfer a variable to container

5/25/2018

I have a K8s, currently running in single node (master+kubelet,172.16.100.81). I have an config server image which I will run it in pod. The image is talking to another pod named eureka server. Both two images are spring boot application. And eureka server's http address and port is defined by me. I need to transfer eureka server's http address and port to config pod so that it could talk to eureka server.

I start eureka server: ( pesudo code)

kubectl run eureka-server --image=eureka-server-image --port=8761
kubectl expose deployment eureka-server --type NodePort:31000

Then I use command "docker pull" to download config server image and run it as below:

kubectl run config-server --image=config-server-image --port=8888
kubectl expose deployment config-server --type NodePort:31001

With these steps, I did not find the way to transfer eureka-server http server (master IP address 172.16.100.81:31000) to config server, are there methods I could transer variable eureka-server=172.16.100.81:31000 to Pod config server? I know I shall use ingress in K8s networking, but currently I use NodePort.

-- user84592
kubernetes
spring-boot

1 Answer

5/25/2018

Generally, you don't need nodePort when you want two pods to communicate with each other. A simpler clusterIP is enough.

Whenever you are exposing a deployment with a service, it will be internally discoverable from the DNS. Both of your exposed services can be accessed using: http://config-server.default:31001 and http://eureka-server.default:31000. default is the namespace here.

172.16.100.81:31000 will make it accessible from outside the cluster.

-- Amrit Bera
Source: StackOverflow