I have two kubernetes controllers and services with pods running named web
and api
respectively.
In my web pod
I am using superagent to try and access an api pod
with the following http://api:3000/api/user
this results in the error ERR_NAME_NOT_RESOLVED
However if I run a shell on my web pod
and curl http://api:3000/api/user
everything works as it should
Am I missing something fundamental about how superagent works? Or something else?
If you launch your superagent in a browser, the browser is not a part of Kubernetes cluster, hence it neither uses kube DNS nor can it access cluster IPs.
To make it work you need to expose your api service to the external world by means of NodePort/Loadbalancer service or Ingress