<p>I learnt that Kubernetes running via Minikube or kind (that's what I'm using) does not have a Load Balancer. That functionality comes from cloud providers. However, when I created a simple deployment with 3 replicas and a service:</p>
<pre class="lang-sh prettyprint-override"><code>kubectl create deployment kiada --image=luksa/kiada:0.1
kubectl scale deployment kiada --replicas=3
kubectl expose deployment kiada --type=LoadBalancer --port 8080
</code></pre>
<p>I am able to reach different pods via :8080.</p>
<p>My local cluster has 2 worker nodes. When I hit the :8080 I sometimes get a response from a pod running on worker-1, and sometimes I get a response from another pod running on node worker-2. Isn't that load balancing?</p>
<p>With that, I do not understand why it is said that Kubernetes does not provide load balancing by itself, since I can see that it clearly does.</p>

mnj
<p>A Kubernetes Service will load balance requests to any of the Pods matching the labels specified in the Service.</p>
<p>Don't mix this with <code>type: LoadBalancer</code> which is a way to <strong>expose</strong> your Service using a <em>Cloud Load Balancer</em>, typically with an <em>external IP address</em>.</p>
