<p>If I expose a (single) web service (say <code>http://a.b.c.d</code> or <code>https://a.b.c.d</code>) on a (small) Kubernetes 1.13 cluster, what is the benefit of using <code>Ingress</code> over a <code>Service</code> of type <code>ClusterIP</code> with <code>externalIPs [ a.b.c.d ]</code> alone?</p>

<p>The address <code>a.b.c.d</code> is routed to one of my cluster nodes. <code>Ingress</code> requires installing and maintaining an <a href="https://github.com/kubernetes/ingress-nginx" rel="nofollow noreferrer">ingress controller</a>, so I am wondering when this is justified.</p>

<ul>
<li>Each service of type ClusterIP has its own public IP address, whereas an Ingress only requires single IP even if you want to provide access to dozens of services.</li>
<li>You can also forward the client requests to the corresponding service based on the host and path based routing provided by Ingress.</li>
<li>As Ingresses operate at layer 7 (application layer), it can also provide features like cookie-based session, which is not possible via services.</li>
</ul>
