MetalLB
MetalLB is a Kubernetes-native network load-balancer implementation (networking / load balancing) that provides external IP address allocation for services running on bare-metal and other non-cloud Kubernetes clusters.
- Implements LoadBalancer-type service support for Kubernetes clusters without built-in cloud provider load balancers (networking / load balancing).
- Provides IP address assignment to Kubernetes services using a pool-based configuration model (IP address management).
- Supports Border Gateway Protocol (BGP) and layer 2 modes for advertising service Intrusion Prevention System (IPS) on the local network (routing / L2-L3 networking).
- Integrates with standard Kubernetes resources and controllers without requiring custom node agents (Kubernetes networking).
- Operates within the cluster as standard pods and config maps, enabling configuration through Kubernetes-native tooling (platform operations).
More About Metallb
MetalLB addresses the absence of built-in network load-balancer functionality in bare-metal and some on-premises (on-prem) Kubernetes environments (Kubernetes networking). In cloud environments, Kubernetes LoadBalancer-type services typically rely on the cloud provider’s native load-balancing implementation. On bare-metal clusters and other infrastructures without such integration, LoadBalancer services do not automatically obtain external IP addresses. MetalLB provides a load-balancer implementation that runs inside the cluster and allocates and announces external IPS so services can be reachable from outside the Kubernetes network.
The project offers two primary operating modes for publishing service IPS to the external network (routing / L2-L3 networking). In layer 2 (L2) mode, MetalLB uses Automated Retraining Pipeline (ARP) or NDP to claim ownership of service IPS on the local network segment, making the cluster appear as the destination for those addresses on the local Local Area Network (LAN). In BGP mode (routing protocol), MetalLB peers with upstream routers using BGP and advertises the service IP ranges, integrating Kubernetes service IPS into the broader routed infrastructure. These modes allow operators to align MetalLB with existing network designs.
MetalLB uses a pool-based IP address management approach (IP address management). Administrators define one or more address pools, representing ranges of IP addresses that MetalLB can assign to LoadBalancer-type services. When a service of this type is created, MetalLB allocates an IP from a configured pool and binds it to the service. Configuration is managed through Kubernetes-native objects, typically via custom resources or config maps, so the entire behavior is declarative and versionable alongside other cluster manifests.
From an enterprise operations perspective, MetalLB integrates into existing Kubernetes clusters without requiring changes to application workloads (platform operations). It runs as pods in system namespaces and relies on Kubernetes Role-Based Access Control (RBAC), configuration, and lifecycle management. Because it exposes services using standard IP and routing constructs, it interoperates with common enterprise switches and routers when configured according to network policies. This makes it a component in categories such as on-prem Kubernetes networking, service exposure, and IP address governance, especially where organizations run clusters on physical servers, virtual machines, or environments without a native cloud load-balancing layer.
In the broader cloud native ecosystem, MetalLB is hosted by the Cloud Native Computing Foundation (CNCF), aligning it with other Kubernetes-focused infrastructure projects (cloud native infrastructure). Its technical role in an enterprise directory is as a Kubernetes load-balancing and IP advertisement layer that bridges Kubernetes service abstractions with standard LAN and routed network infrastructure.