Kubernetes provides an internal DNS: each Service gets a name resolvable in the cluster, of the form service.namespace.svc.cluster.local. Within the same namespace, the Service's short name is enough. Applications thus call each other by name, without knowing any IP address.
Example
curl http://api.production.svc.cluster.local