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.