<p>In the context of Kubernetes and <em>Nginx ingress-controller</em>, I can't grasp the <strong>difference between an <em>external</em> ingress and an <em>internal</em> ingress</strong>.</p>
<ul>
<li><p><em>what an <em>external</em> ingress and an <em>internal</em> ingress differ in?</em></p>
</li>
<li><p><em>when should they be used and what use cases do they serve?</em></p>
</li>
<li><p><em>when should one use <code>ingressClassName: nginx-internal</code>, <code>ingressClassName: nginx</code>, <code>metadata.annotations: [ kubernetes.io/ingress.class: nginx-external ]</code> aut similis?</em></p>
</li>
</ul>
<p>I can't find much on the net, that discusses such difference or exemplifies how to use them. There's always some implicit knowledge assumed.</p>

Kamafeather
<p>Both types allow ingress into the service in the ingress definition, but the external ingress will expose it to the internet.  The internal does not, it's only on the local subnet outside the kubernetes bubble.  Internal is used in situations where you need to allow a connection from another workload cluster on the same network but don't want it exposed to the internet.</p>
