<p><code>Loadbalancer</code> is used to handle a request and forward that request to a particular pod, but my question is how does the <strong>GKE</strong> LoadBalancer work, how is it different from the LoadBalancer we have in <strong>minikube</strong>, and how should we use LoadBalancer properly.</p>

<p>In <strong>GKE</strong> when you add a Service of type LoadBalancer, it makes the necessary Google Cloud API calls to create either an external network LB, or an internal TCP/UDP LB.</p>
<p>The <code>cloud.google.com/load-balancer-type: &quot;Internal&quot;</code> annotation denotes an internal LB; otherwise, GKE creates an external network load balancer.   This type of LB operates at layer 3/4, and is not an application load balancer, and thus not aware of HTTP requests or headers.</p>
<p>The LB service was designed for deployments in external cloud providers. In <strong>Minikube</strong> you need to use the <code>tunnel</code> feature to expose it.  <code>tunnel</code> runs as a process, creating a network route on the host to the service CIDR of the cluster using the cluster’s IP address as a gateway. The <code>tunnel</code> command exposes the external IP directly to programs running on the host OS.</p>
