Kubernetes: access "public" urls from within a pod

7/7/2016

First of all, I am not very expert of K8s, I understand some of the concepts and made already my hands dirty in the configurations.

I correctly set up the cluster configured by my company but I have this issue

I am working on a cluster with 2 pods, ingress rules are correctly configured for www.my-app.com and dashboard.my-app.com. Both pods runs on the same VM.

If I enter in the dashboard pod (kubectl exec -it $POD bash) and try to curl http://www.my-app.com I land on the dashboard pod again (the same happens all the way around, from www to dashboard). I have to use http://www-svc.default.svc.cluster.local and http://dashboard-svc.default.svc.cluster.local to land on the correct pods but this is a problem (links generated by the other app will contain internal k8s host, instead of the "public url").

Is there a way to configure routing so I can access pods with their "public" hostnames, from the pods themselves?

-- Leonardo Rossi
dns
kubernetes

1 Answer

7/7/2016

So what should happen when you curl is the external DNS record (www.my-app.com in this case) will resolve to your external IP address, usually a load balancer that then sends traffic to a kubernetes service. That service then should send traffic to the appropriate pod. It would seem that you have a misconfigured service. Make sure your service has an external IP that is different between dashboard and www. To see this a simple kubectl get svc should suffice. My guess is that the external IP is wrong, or the service is pointing to the wrong podm which you can see with a kubectl describe svc <name of service>.

-- Christian Grabowski
Source: StackOverflow