How does a service choose which pod to send request to? The inner workings

How does a service choose which pod to send request to? The inner workings.

I understand what a Cluster IP service is and everything, I just don’t understand the ‘behind the scenes’ and routing. Can someone PLEASE explain it to me!

  1. A request is made to the Cluster IP service. If this service is serving multiple pods, how does the service choose which pod to send the request to, what is controlling and deciding that?
  2. Once a pod is chosen and the request is sent are there iptables (added by kube-proxy) on that node where the pod is located and within that node mappings for the service exist to all the other corresponding pods? and if so does the node then forwards/load-balances that request off again to another pod? unless it’s that pods turn to process the request?

Thank you so much