The Google Container Engine does not automatically bind the DNS host name to the main endpoint or to any application that you run in your cluster.
Instances (virtual machines) in the cluster have public IP addresses (and you can open the firewall rules to make them public), but you should usually access the services (which represent the applications), and not the instances directly.
Services for which an external load balancer (L3 or L7) is created will have a public IP address, but will not automatically receive the associated DNS name.
App Engine maintains a 1: 1 ratio between the application (where you select a globally unique name when creating, if you want the appspot.com domain) and your deployed code.
Container Engine allows you to deploy multiple "applications" in one cluster and does not require registration of a globally unique name when creating a cluster or creating a service. This gives you more flexibility, but also means that if you want to map the DNS name in your application, you have to do it yourself.
It would be unreasonable to expect that the Ingress controller (used to create L7 services) will help simplify this process, but today it does not. Feel free to submit a function request on github .
Robert Bailey
source share