Skip to main content

Kubernetes, Note to Self: Need Load Balancer Installed on Bare Metal



Intended Audience

Mostly me. Also other grizzly sysadmins who are learning devops like me.

One thing that bit me when I was trying to expose my apps to the world when working on the home cluster, is that Kubernetes on bare metal—I was using Kind at the time—expects to talk to a load balancer service, which then talk to an actual load balancer. Which if you are using bare metal, you won’t usually have.
I had to then go expose a “NodePort” to gain access from outside.

So to expose my stuff in as “real world” a way as possible, we need to:

  1. Either install a load balancer implementation like MetalLB. OR
  2. Use a Kubernetes distribution that has a load balancer implementation built-in, like K3s.

I chose option 2 and used K3s, because I am, as they say in popular parlance, using Kubernetes at the edge.1
In which case, I prefer to have as many batteries built-in as possible.


Feedback on this post?
Mail me at feedback at this domain or [continue the discourse here][2].

P.S. Subscribe to my mailing list!
Forward these posts and letters to your friends and get them to subscribe!


  1. Although, from the articles I’ve read, if you’re doing a multiple node cluster, then you’re better off using MetalLB. ↩︎