MetalLB: a load balancer for bare metal Kubernetes clusters
Until recently, Kubernetes did not have the native support for load balancing for the bare metal clusters.
As of now, Kubernetes comes with Network LB solution, which is actually a glue code calling for various IaaS cloud platforms (AWS, Azure, GCP, etc.). However, deploying Kubernetes on anything but the supported platforms (like a private cloud or a bare metal cluster) resulted in service objects with
spec.type=LoadBalancer to remain in Pending status forever.
Thus said, going for bare metal clusters left Kubernetes administrators with the choice between Nodeport and ExternalIPs, none of which was a perfect solution. MetalLB, a new load balancer offers a Network LB implementation that works on top of standard network equipment.
MetalLB prerequisites and requirements
The prerequisites for MetalLB stable operation include:
- A clean cluster version 1.8.0 or above, without any other load balancing solution installed
- One or several routers working with 4-byte AS numbers ( )
- A bundle of IPv4 addresses for the routers to assign
Here are more details of the. As MetalLB project will surely evolve, please refer to the for explanations.
You can test the self-contained minikube MetalLB functionality by following this. To deploy this tool to a production cluster, please head to the and guides. This detailed will help you get the tool up and running in no time.
In case you wish to take part in the project evolution — please follow thisfor technical info. Any will make the MetalLB developers very happy, so feel free to share your thoughts and ideas!