Available since MKE 3.7.0
MetalLB is a load balancer implementation for bare metal Kubernetes clusters.
It monitors for the services with the type
LoadBalancer and assigns them an
IP address from IP address pools that are configured in the MKE system.
For information on how to install and uninstall MetalLB, refer to MetalLB load-balancer for Kubernetes.
MetalLB uses two features to provide service: Address allocation and External announcement.
When a service of type
LoadBalancer is created in a bare-metal cluster, the
external IP of the service remains in
<pending> state. This is because the
Kubernetes implementation for network load balancers is only supported on known
IaaS platforms. To fill in this gap you can use MetalLB, which can assign the
IP to the service from a custom address pool resource, which is comprised of a
list of IP addresses. And administrators can add multiple pools to the cluster,
thus enabling you to control which IP addresses MetalLB can assign to
After assigning an IP address to a service, MetalLB must make the network aware so that the external entities of the cluster can learn how to reach the IP. To achieve this, MetalLB uses standard protocols, depending on whether the ARP or or BGP mode is in use.
When you install and configure MetalLB in MKE, support is restricted to Layer 2 (ARP) mode.