<p>The following example would expose the services externally. So why is <code>NodePort</code>/<code>LB</code> allowed in this context, would not that be redundant?</p>
<pre><code>  rules:
  - host: lab.example.com
    http:
      paths:
      - path: /service-root
        backend:
          serviceName: clusterip-svc
          servicePort: 8080
      - path: /service-one
        backend:
          serviceName: nodeport-svc
          servicePort: 8080
      - path: /service-two
        backend:
          serviceName: headless-svc
          servicePort: 8080
</code></pre>
<p>Is there any particular advantage of using <code>NodePort</code>, <code>ClusterIP</code>, <code>LoadBalancer</code>, or <code>Headless</code> as back-end to Ingress?</p>

<p>Services are a way to define logical set of Pods and a policy to access them. The Pods are ephemeral resources, so Services make it possible to connect to them regardless of their IP addresses. They usually use selectors to do so. There are different types of Services in Kubernetes and these are the main differences.</p>
<p>Cluster IP is a default type of Service. It exposes the Service on a cluster-internal IP and makes it available only from within the cluster.</p>
<p>NodePort exposes the Service on each Node's IP at a static port. This option also creates ClusterIP Service, to which NodePort routes.</p>
<p>LoadBalancer goes a step further and exposes the Service externally using cloud provider's load balancer. NodePort and ClusterIP resources are created automatically.</p>
<p>Follow <a href="https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types" rel="noreferrer">this link</a> to get more information about different ServiceTypes.</p>
<p>And there are Headless Services. You would use these when you don't need load-balancing and a single Service IP. You can follow <a href="https://kubernetes.io/docs/concepts/services-networking/service/#headless-services" rel="noreferrer">this</a> section in documentation for further clarification.</p>
<p>Answering your question - it depends on your use-case, you might find different advantages using these Services.</p>
