Search code examples
nginxkuberneteskubernetes-ingressnginx-ingress

What's the difference between an External and an Internal ingress?


In the context of Kubernetes and Nginx ingress-controller, I can't grasp the difference between an external ingress and an internal ingress.

  • what an external ingress and an internal ingress differ in?

  • when should they be used and what use cases do they serve?

  • when should one use ingressClassName: nginx-internal, ingressClassName: nginx, metadata.annotations: [ kubernetes.io/ingress.class: nginx-external ] aut similis?

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.


Solution

  • 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.