<p>I have ingress and service with LB. When traffic coming from outside it hits ingress first and then does it goes to pods directly using ingress LB or it goes to service and get the pod ip via selector and then goes to pods? If it's first way, what is the use of services? And which kind, services or ingress uses readinessProbe in the deployment?</p>

<p>All the setup is in GCP</p>

<p>I am new to K8 networks.</p>

<p>Depends whether your LoadBalancer service exposes the Ingress controller or your application Pods (the first is the correct approach).</p>

<p>The usual way to use Services and Ingresses is like this:</p>

<pre><code>LoadBalancer Service -&gt; Ingress -&gt; ClusterIP Service -&gt; Pods
</code></pre>

<p>In that case, the traffic from the Internet first hits the load balancer of your cloud provider (created by the LoadBalancer Service), which forwards it to the Ingress controller (which is one or multiple Pods running NGINX in your cluster), which in turn forward it to your application Pods (by getting the Pods' IP addresses from the ClusterIP Service).</p>

<p>I'm not sure if you currently have this constellation:</p>

<pre><code>Ingress -&gt; LoadBalancer Service -&gt; Pods
</code></pre>

<p>In that case, you don't need a LoadBalancer Service there. You need only a ClusterIP Service behind an Ingress, and then you typically expose the Ingress with a LoadBalancer Service. </p>
