<p>Do I need <code>kube-proxy</code> to use <code>Ingress</code> for load distribution? Or do you get the <code>endpoint</code> and distribute it directly to the <code>pod</code> and use <code>kube-proxy</code> only when using <code>Load Balancer</code> and <code>nodeport</code>?</p>
<p>If so, then when you use <code>Ingress</code> for load distribution, it only takes care of the load from <code> routes</code> to <code> service</code>, and the load from <code> service</code> to <code> pod</code> is still done through <code>kube-proxy</code>. Is this the right understanding?</p>
<p>If not, what is the mechanism?</p>
<p>I'm a newbie to <code>K8s</code>, so if there is something wrong with my question itself, or with my understanding, please point it out, thank you very much!</p>
<p>I've looked up some information and it says that <code>Ingress</code> does not use <code>kube-proxy</code> to do the load.</p>
<p>I'm skeptical, I'd like to know why it doesn't use it and how it implements the <code>kube-proxy</code> part of the functionality?</p>

山河以无恙
<p>Since Ingress is just an API it actually depends on the implementation.</p>
<p>For example the traefik proxy ingress implementation is making loadbalancing over the endpoints it queries from the kubernetes API server. In that case the kube-proxy is not used.</p>
<p>Keep in mind: kube-proxy usually configures DNAT rules in iptables, so it is not a user space proxy and connections to the Service IPs are loadbalanced by the kernel and iptables.</p>
