<p>I am a kubernetes newbie, and no matter how much I read about it I cannot get my head around this issue. <br> 
I have a simple deployment , which is creating a pod with a not so complex app. 
<br> I know what an ingress and an ingress controller is doing ,but as far as I understand it is not required for me to expose my pod-app externally. <br> Only a LoadBalancer service should be enough. 
<br>
I do not have need of more than one rule for traffic routing.<br>
Am I wrong about that?</p>

Flora Biletsiou
<p>Traditionally, you would create a LoadBalancer service for each service you want to expose externally. This can get rather expensive. Ingress gives you a way to route requests to services based on the request host or path, centralizing a number of services into a single entrypoint.</p>

<p>Also load balancer provisioning takes time and works only in supported cloud providers such as AWS, GCP etc.</p>

<p>One more thing to consider is the need of L4(TCP/UDP) layer routing because kubernetes Ingress API is primarily L7 layer but some of the ingress controllers such as traefik, nginx supports L4 layer(TCP/UDP) along with L7 layer(HTTP) routing.</p>

<p>So answer to your question is it depends based on your environment and use cases.</p>
