A service in kubernetes is a object representation that is used by kube-proxy to link the VIP of the service to one of the containers behind the service. This can be done by several kube-proxy modes that each has different load distribute patterns. All this smells a lot like a load balancer. But this is done on all service types.
What differentiates the raw distribution made by the proxy and a load balancer?
I myself has concluded the following:
- Sole purpose of the service is to provide a stable VIP
- Load distribution done by the kube-proxy smells like a very simple load balancer, but it is done ON the node. And the job 5o be executed by this entity actually lies in the name: kube-proxy. It is a proxy.
- An external load balancer has only one job, to balance the load. The resources (RAM and CPU) used here is devoted to this and nothing else.
Am I on the right track here or have I misunderstood something?