<p>On AWS EKS, I have ALB Ingress Controller with Ingress resource pointing to NodePort service on port 32509 with targetPort 80, with <code>externalTrafficPolicy: Local</code> on service.
<br><br>
How is external traffic routed to my pods under NodePort service in this case?
<br><br>
Something like, ALB > random Node kube-proxy > Node port 32509 (?) > Pod port 80? 
<br><br>
Edit: kube-proxy is working in iptables mode.</p>

Andrija
<p>The NodePort service builds on ClusterIP. But if the <code>externalTrafficPolicy</code> is Local, then traffic arriving at a node is forwarded only to pods that are on this node. So, the way your traffic is routed must be something like this:</p>

<pre><code>ALB -&gt; random node on port 32509 -&gt; random pod on this node on port 80
</code></pre>

<p>The problem is that if there are no pods of the NodePort service on this specific node, then the request is dropped. This is explained <a href="https://www.asykim.com/blog/deep-dive-into-kubernetes-external-traffic-policies" rel="nofollow noreferrer">here</a> in detail.</p>
