k3d no external ip for a service of load balanacer type k3d no external ip for a service of load balanacer type kubernetes kubernetes

k3d no external ip for a service of load balanacer type


LoadBalancer type service will get external IP only if you use a managed kubernetes Service provided by cloud providers such as AWS EKS, Azure AKS, Google GCP etc.Tools such as k3d is for local development and if you create a LoadBalancer type service external ip will be pending. Alternative is to use NodePort type service or ingress . Here is the doc on this.

Also you can use kubectl port forward or kubectl proxy to access the pod.


You'll need a cloud controller manager to act as a service controller to do that. As far as on-prem goes, your best option is likely MetalLB.

That being said, I don't know how that will behave with the underlying docker network in K3d. It's on my list of things to try out. If I find it works well, I'll come back and update this post.


I was following this example

with k3d and there it seems to work fine:

(base) erik@buzzard:~/kubernetes/tutorial> kubectl  get services NAME                    TYPE           CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGEkubernetes              ClusterIP      10.43.0.1       <none>        443/TCP          3d6hmongodb-service         ClusterIP      10.43.215.113   <none>        27017/TCP        27mmongo-express-service   LoadBalancer   10.43.77.100    172.20.0.2    8081:30000/TCP   27m

As I understand, k3d is running k3s which is more of a full kubernetes setup than minikube for instance. I can access the service at http://172.20.0.2:8081 without problems.