<p>I have created an ingress resource in my Kubernetes cluster on google cloud. </p>

<pre><code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: gordion
  annotations:
    nginx.ingress.kubernetes.io/rewrite-target: /
    kubernetes.io/ingress.global-static-ip-name: gordion-ingress
    networking.gke.io/managed-certificates: gordion-certificate,gordion-certificate-backend
spec:
  rules:
  - host: backend.gordion.io
    http:
      paths:
      - path: /
        backend:
          serviceName: backend
          servicePort: 80
</code></pre>

<p>Everything works. However, I have not created any <code>ingress-controller</code>. <a href="https://kubernetes.io/docs/concepts/services-networking/ingress/" rel="nofollow noreferrer">the official docs state</a> that it must have it.</p>

<blockquote>
  <p>You must have an ingress controller to satisfy an Ingress. Only
  creating an Ingress resource has no effect.</p>
</blockquote>

<p>So where is my ingress-controller if my routing actually works? how do I see its configuration?</p>

<p>In GKE, if you do not specify the <code>kubernetes.io/ingress.class: nginx</code> annotation, the GCE L7 load balancer controller (GLBC) will be used by default (it is actually equivalent to setting <code>kubernetes.io/ingress.class: gce</code>). This controller will be automatically provisioned and will rely on GCP's global HTTP(s) load balancer. </p>

<p>You can find more information on this topic on the <a href="https://github.com/kubernetes/ingress-gce" rel="nofollow noreferrer">GLBC GitHub's page</a> as well as <a href="https://kubectl.wordpress.com/2019/09/14/using-gclb-as-an-ingress-controller/" rel="nofollow noreferrer">in this How-To article</a>.</p>
