<p>So running and scaling a deployment running <strong>multiple pods</strong> on a <strong>single node</strong> works nicely, and when exposing the service with a type "nodePort" nicely balances requests to the virtual IP between the multiple pods on that individual node. </p>

<p>I've since added an additional node to my cluster, and when exposing the Service using nodePort and then running pods over 2 nodes, I of course need to specify each host specifically to hit the endpoints running in different pods on different nodes.</p>

<p>I would like to send requests to a single VIP and load balance accross the different nodes. I am running this small cluster on my home network, so my question is, is there anyway to send requests to a single VIP, and load balance across the nodes / pods without using an external load-balancer? E.g., is there some config within kubernetes to handle this?</p>

<p>I tried using a service type load balancer (instead of node port) but this didn't load balance accross nodes.</p>

<p>Take a look at <a href="https://github.com/kubernetes/contrib/blob/master/keepalived-vip/README.md" rel="nofollow noreferrer">Keepalived in Kubernetes</a>.</p>

<blockquote>
  <p>The idea is to expose a Virtual IP (VIP) address per service, outside
  of the kubernetes cluster. keepalived then uses VRRP to sync this
  "mapping" in the local network. With 2 or more instance of the pod
  running in the cluster is possible to provide HA using a single VIP
  address.</p>
</blockquote>
