<p>I used to work with Openshift/OKD cluster deployed in AWS and there it was possible to connect cluster to some domain name from Route53. Then as soon as I was deploying ingress with some hosts mappings (and the hosts defined in ingres were subdomains of the basis domain) all necessary lb rules (Routes in Openshift) and subdomain itself were created by Openshift and were directly available. For example: Openshift is connected to domain &quot;somedomain.com&quot; which is registered in Route53. In ingress I have the host mapping like:</p>
<pre><code>  hosts:
    - host: sub1.somedomain.com
      paths:
        - path
</code></pre>
<p>After deployment I can reach sub1.somedomain.com. Is this kind of functionality available in GKE?
So far I have seen only mapping to static IP.</p>
<p>Also I red here <a href="https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-http2" rel="nofollow noreferrer">https://cloud.google.com/kubernetes-engine/docs/how-to/ingress-http2</a> that if I need to connect service with ingress, the service have to be of type NodePort. Is it realy so? In Openshift it was not required any normal ClusterIP service could be connected to ingress.</p>
<p>Thanks in advance!</p>

Dmitri Zamysloff
<p>The type of service exposition depends on the K8S implementation on each cloud provider.</p>
<ul>
<li>If the ingress controller is a component inside  your cluster, a ClusterIP is enough to have your service reachable (internally from inside the cluster itself)</li>
<li>If the ingress definition configure an external element (in case of GKE, a load balancer), this element isn't a part of the cluster and can't know the ClusterIP (because it is only accessible internally). A node port is required in this case.</li>
</ul>
<p>So, in your case, either you expose your service in NodePort, or you configure GKE with another Ingress controller, locally installed in the cluster, instead of using this one by default.</p>
