Deploy MetalLB

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.

Address allocation

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 load-balancer services.

External announcement

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.