<p>Before I begin, I would like to mention that I am on the free trial version of GKE. 
I have a simple server running in a GKE cluster. I have a service that I use to expose the server. I am trying to configure an Ingress Controller and attach it to this service. </p>

<p>Everything works perfectly if my service is of type LoadBalancer, NodePort. However, if my service is of type ClusterIP, I get an error saying </p>

<pre><code>error while evaluating the ingress spec: service "default/simple-server" is type "ClusterIP"
, expected "NodePort" or "LoadBalancer" 
</code></pre>

<p>GKE then stops trying to provision an IP for the ingress. Why can't I provision a service of type clusterIP and is there a work around? </p>

<p>I tried using <code>annotations.kubernetes.io/ingress.class: "nginx"</code> and it still didn't work.</p>

<p>The native GKE ingress controller does not support <code>ClusterIP</code>, but it works perfectly with <code>LoadBalancer</code> and <code>NodePort</code> type. Take a look at this <a href="https://github.com/kubernetes/kubernetes/issues/26508#issuecomment-222376886" rel="nofollow noreferrer">issue</a> </p>

<p>Non-native ingress controller <a href="https://github.com/kubernetes/ingress-nginx" rel="nofollow noreferrer">Nginx</a> works with <code>ClusterIP</code>.</p>
