CertGrid CertGrid
Hands-on Lab·Certified Kubernetes Administrator

LoadBalancer Services on Bare Metal with MetalLB

A LoadBalancer Service off-cloud sits at Pending forever, because nothing is listening for it. MetalLB is the thing that listens: it hands out addresses from a pool and answers ARP for them from one node.

Services and Networking Guide 63 of 103 Intermediate

Written against the versions above. L2 mode, which needs only a free range on the node subnet. BGP mode needs a router that will peer, and behaves quite differently.

Nodes on 192.168.0.175-178, and 192.168.0.240-244 handed to MetalLB as a pool. The pool must be free and outside the DHCP range.
Server NameIP AddressOSRolesCPURAMHDD
CKA1001192.168.0.175Ubuntu 26.04 LTSControl Plane Node2 Core4 GB50 GB
CKA1001-NODE01192.168.0.176Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB
CKA1001-NODE02192.168.0.177Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB
CKA1001-NODE03192.168.0.178Ubuntu 26.04 LTSWorker Node2 Core4 GB50 GB

Before you start

  1. The Pending that never resolves

  2. Install MetalLB: a controller and a speaker on every node

  3. Installed and still Pending, which is the point

  4. A pool and an advertisement, and the address appears

  5. It answers, and one node is answering for it

  6. Allocation: sequential, requested, refused, exhausted

Official sources