MetalLB is a Kubernetes load balancer implementation and IP address manager designed for bare metal clusters. It functions as a networking tool that provides external connectivity and traffic distribution by assigning external IPv4 and IPv6 addresses to services.
The project differentiates itself by providing two distinct advertisement modes. It can operate as a BGP routing controller, using the Border Gateway Protocol to announce service IPs to external routers with support for bidirectional forwarding detection and VRF-aware routing. Alternatively, it can act as a Layer 2 network advertiser, responding to ARP and NDP requests to route traffic without requiring router configuration.
The system covers comprehensive IP address management, including the definition of CIDR-based pools, static and dynamic allocation policies, and dual-stack networking support. It also includes capabilities for monitoring network telemetry, managing service failover, and integrating with various Kubernetes network plugins.
Installation and lifecycle management are supported through a Kubernetes Operator, with specific deployment adaptations available for OpenShift and OpenStack environments.