I create a deployment which results in 4 pods existing across 2 nodes.
I then expose these pods via a service which results in the following cluster IP and pod endpo
Everything you need is explained in second paragraph "Virtual IPs and service proxies" of this documentation: https://kubernetes.io/docs/concepts/services-networking/service/#defining-a-service
In nutshell: currently, depending on the proxy mode, for ClusterIP it's just round robin/random. It's done by kube-proxy, which runs on each nodes, proxies UDP and TCP and provides load balancing.
It's better to think of kubernetes as a whole rather than specific nodes. Abstraction does its thing here.
Hope it answers your question.