<p>I'm following the tutorial here (<a href="https://kubernetes.io/docs/tutorials/hello-minikube/" rel="nofollow noreferrer">https://kubernetes.io/docs/tutorials/hello-minikube/</a>) to test a local development setup for kubernetes. However, I am using kind, instead of minikube.</p>
<p>At the moment, I am stuck on step 3:</p>
<pre><code>minikube service hello-node
</code></pre>
<p>which is supposed to expose a LoadBalancer service.</p>
<p>However, kind doesn't seem to have such a command, and I am wondering how I would expose the service from the tutorial.</p>
<p>My set up is a WSL2 distro with docker, kind, and kubectl. My current port bridges are:</p>
<pre><code>$ docker ps
CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                       NAMES
b62c43ac3b2e        kindest/node:v1.17.0   &quot;/usr/local/bin/entr…&quot;   49 minutes ago      Up 49 minutes       127.0.0.1:32769-&gt;6443/tcp   kind-control-plane
</code></pre>
<pre><code>$ kubectl cluster-info
Kubernetes master is running at https://127.0.0.1:32769
KubeDNS is running at https://127.0.0.1:32769/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy
</code></pre>
<p>and</p>
<pre><code>$ kubectl get services
NAME         TYPE           CLUSTER-IP     EXTERNAL-IP   PORT(S)          AGE
hello-node   LoadBalancer   10.96.65.157   &lt;pending&gt;     8080:31578/TCP   46m
kubernetes   ClusterIP      10.96.0.1      &lt;none&gt;        443/TCP          51m
</code></pre>

<p><code>LoadBalancer</code> type service internally creates <code>NodePort</code>. So you can access it via <code>http://NODEIP:31578</code> where <code>31578</code> is the NodePort as you can see in output of <code>kubectl get service</code>. To get <code>NODEIP</code> you can use <code>kubectl get nodes -o wide</code></p>
<p>If you look at the output of <code>minikube service hello-node</code> it's has got the same <code>NODEIP</code> and <code>NODEPORT</code>. Unfortunately there is no equivalent command in kind and so you need to use the method described above.</p>
<p><code>EXTERNAL-IP</code> will be pending because there is no cloud(AWS, GCP, Azure) like implementation in local kind cluster. If you really want to make <code>LoadBalancer</code> type service work you can use metallb as loadbalancer implementation. In this way you will have <code>EXTERNAL-IP</code> assigned instead of <code>pending</code> and you can use that IP to access the pod.</p>
<p><a href="https://mauilion.dev/posts/kind-metallb/" rel="nofollow noreferrer">Here</a> is a guide on how to make metallb with kind work.</p>
