A service in kubernetes is an object representation that uses kube-proxy to link the VIP of the service to one of the containers behind the service. This can be done through several kube proxy modes, each with different load distribution patterns. All this smells a lot like a load balancer. But this is done in all types of services.
What differentiates the raw distribution made by the proxy and a load balancer?
I myself have concluded the following:
- The sole purpose of the service is to provide a stable VIP.
- The load distribution performed by the proxy kube smells like a very simple load balancer, but it is done in the node. And the work that must be executed by this entity is actually 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 are dedicated to this and nothing else.
Am I on the right path here or have I misunderstood something?