1 Introduction to the MetalLB Module

Network load balancers provide a method of externally exposing Kubernetes applications. A Kubernetes LoadBalancer service is used to create a network load balancer that provides and exposes an external IP address that can be used to connect to an application from outside the cluster.

More information on Kubernetes services, including the LoadBalancer service, is available in the upstream Kubernetes documentation.

MetalLB is a network load balancer for Kubernetes applications running on bare metal hosts. MetalLB lets you use Kubernetes LoadBalancer services, which traditionally use a cloud provider network load balancer, in a bare metal environment.

MetalLB has two features that enable the network load balancer: address allocation, and external announcement.

Address allocation provides IP addresses to Kubernetes applications from the pool of IP addresses you provide in the MetalLB configuration file.

External announcement makes the network beyond the Kubernetes cluster aware that the IP is available in the cluster. This is provided using either Address Resolution Protocol (ARP) and Neighbor Discover Protocol (NDP) in Layer 2 mode, or Border Gateway Protocol (BGP) in BGP mode.

For more information on MetalLB, see the upstream MetalLB documentation.

The MetalLB module is used to set up network load balancers for Kubernetes applications using MetalLB.

Oracle Cloud Native Environment deploys MetalLB onto the control plane nodes using a configuration file you set up beforehand.