<p>When a Kubernetes service is exposed via an <code>Ingress</code> object, is the load balancer "phisically" deployed in the cluster, i.e. as some <code>pod</code> controller inside the cluster nodes, or is just another managed service provisioned by the given cloud provider?</p>

<p>Are there cloud provider specific differences. Is the above question true for Google Kubernetes Engine and Amazon Web Services?</p>

<p>I would like to make some clarification concerning the Google Ingress Controller starting from its definition:</p>

<blockquote>
  <blockquote>
    <p>An Ingress Controller is a daemon, deployed as a Kubernetes Pod, that watches the apiserver's /ingresses endpoint for updates to the Ingress resource. Its job is to satisfy requests for Ingresses.</p>
  </blockquote>
</blockquote>

<p>First of all if you want to understand better its behaviour I suggest you to read the official Kubernetes GitHub <a href="https://github.com/kubernetes/ingress-gce" rel="nofollow noreferrer">description</a> of this resource.</p>

<p>In particular notice that:</p>

<ul>
<li><p>It is a Daemon</p></li>
<li><p>It is deployed in a pod</p></li>
<li><p>It is in kube-system namespace</p></li>
<li><p>It is <a href="https://github.com/kubernetes/contrib/issues/1733#issuecomment-246410234" rel="nofollow noreferrer">hidden</a> to the customer</p></li>
</ul>

<p>However you will not be able to "see" this resource for example running :
<code>kubectl get all --all-namaspaces</code>, because it is running on the master and not showed to the customer since it is a managed resource considered essential for the operation of the platform itself. As stated in the <a href="https://kubernetes.io/docs/concepts/services-networking/ingress/#ingress-controllers" rel="nofollow noreferrer">official</a> documentation:</p>

<blockquote>
  <p>GCE/Google Kubernetes Engine deploys an ingress controller on the master</p>
</blockquote>

<p>Note that the master itself of any the Google Cloud Kubernetes clusters is not accessible to the user and completely managed.</p>
