Freedom251 › Load Balancing Software
MetalLB

What MetalLB is
MetalLB provides a network load balancer for Kubernetes clusters that do not run on a cloud provider. It allocates service IP addresses from pools configured by the operator and announces them using ARP, NDP, or BGP, depending on the selected mode. In layer 2 mode, one cluster machine announces an address; in BGP mode, cluster machines peer with nearby routers, which can distribute traffic across multiple nodes. The recommended FRR-K8s mode supports BFD, IPv6, and merging additional FRR configuration.
MetalLB is free and open source, with no paid plans listed. It can be installed using Kubernetes manifests, Kustomize, or Helm, and an Operator is available on OperatorHub. It remains inactive until configured with resources such as an IPAddressPool in its deployment namespace. Listed requirements include Kubernetes 1.13.0 or later, a compatible cluster network, and IPv4 addresses. The project describes itself as beta and says its configuration format may change incompatibly. Its compatibility information marks AWS, Azure, DigitalOcean, and Google Cloud as unsupported; it also says MetalLB is generally incompatible with cloud providers. The speaker pod requires elevated permissions for its network functions.
Who it suits
MetalLB is for operators running Kubernetes clusters outside cloud-provider load-balancing support who need service IP allocation and announcement. The listed requirements and compatibility limits make cluster environment an important consideration.
What it does well
- Free and open source, with no paid plans listed.
- Supports ARP, NDP, and BGP announcement modes.
- BGP mode can distribute traffic across multiple nodes.
- Install options include manifests, Kustomize, and Helm.
- Layer 4 routing is supported.
What to know first
- Remains idle until configured with resources such as an IPAddressPool.
- Requires Kubernetes 1.13.0 or later and a compatible network.
- AWS, Azure, DigitalOcean, and Google Cloud are listed as unsupported.
- Project is beta and its configuration format may change incompatibly.
Limits
MetalLB is free and open source, with no paid plans listed. It stays idle until configured with resources such as an IPAddressPool; the project is beta and its configuration format may change incompatibly.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| MetalLB | No paid plans listed; open source project for Kubernetes load balancing | Free |
As metallb.io lists them, read 4 Oct 2026. The maker's own page has the final word.
Getting started
- Visit the MetalLB website.
- Confirm the cluster meets the listed Kubernetes, network, and IPv4 requirements.
- Install using Kubernetes manifests, Kustomize, Helm, or the OperatorHub Operator.
- Configure resources such as an IPAddressPool in MetalLB's deployment namespace.
- Select and configure an announcement mode such as layer 2 or BGP.
MetalLB is a free, open-source load balancer for Kubernetes clusters outside cloud-provider environments. It suits operators who can manage cluster networking and provide service addresses from their own pools. Its focused Layer 4 role is useful, but cloud incompatibility and beta status narrow the cases where it is a safe fit.
Overview
MetalLB assigns service IPs from address pools configured by the operator, then announces those addresses on the network. It does not begin allocating addresses after installation alone: operators must configure resources such as an IPAddressPool in its deployment namespace. That makes it a practical option for teams wanting control over service addressing, but not a hands-off load-balancing service.
Its announcement choices are Layer 2 and BGP. In Layer 2 mode, one cluster machine announces the service IP using ARP for IPv4 or NDP for IPv6. BGP instead peers cluster machines with nearby routers and can distribute traffic across multiple nodes. The choice depends on network setup and traffic needs; BGP's node distribution is useful where routers can peer with the cluster, while Layer 2 provides a distinct, single-machine announcement model.
Key features
- Address-pool allocation: MetalLB assigns and unassigns service IPs from operator-configured pools. This gives cluster administrators direct control of the addresses in use, while making pool configuration and ongoing address management their responsibility.
- Multiple announcement modes: ARP and NDP support Layer 2 announcements for IPv4 and IPv6 respectively; BGP offers a way to spread traffic across nodes through nearby routers. This flexibility helps match the deployment to its network, but does not remove the need for a compatible cluster network.
- FRR-K8s BGP backend: The recommended mode supports BFD, IPv6, and merging additional FRR configuration. Those capabilities make it the more capable documented BGP backend for networks that need them.
- Several installation paths: Kubernetes manifests, Kustomize, Helm, and an Operator on OperatorHub provide different ways to deploy MetalLB. That accommodates varied cluster workflows, though none eliminates the separate configuration step.
Pricing
MetalLB is open source and free. Its MetalLB plan costs nothing, with no paid plans listed. There is no free trial because the software is already free to use; this is a self-managed project rather than a managed service.
Platforms
MetalLB is categorized for Linux and self-hosted deployment, and supports Layer 4 routing. Its requirements include Kubernetes 1.13.0 or later, a compatible cluster network, and IPv4 addresses. The speaker pod needs elevated permissions for its network functions, a consideration for teams with strict privilege policies. Release notes report read-only root filesystems and disabled privilege escalation for containers that lacked those settings, as well as a fix for CVE-2025-22874; these changes do not remove the stated speaker-pod privilege requirement.
Who it's for
MetalLB is best suited to operators running Kubernetes outside a cloud provider who need to allocate and announce service IPs on a network they control. Its multiple deployment methods and announcement modes offer flexibility, but the operator must supply configuration and meet the cluster's networking requirements.
It is a poor fit for clusters on cloud providers: MetalLB is generally incompatible with them, and AWS, Azure, DigitalOcean, and Google Cloud are listed as unsupported. Teams that require a managed service or cannot accommodate elevated speaker-pod permissions should look elsewhere.
The project describes itself as beta and warns that its configuration format may change incompatibly as development continues. That makes it more suitable for teams able to manage configuration changes than for those requiring a format they can treat as stable. Users can turn to the project's mailing list or Slack channel, while ongoing development and maintenance are led by project maintainers.
Pros and cons
- Pro: Free, open-source Layer 4 load balancing lets self-hosted Kubernetes operators assign service IPs without a paid plan.
- Pro: Layer 2 and BGP modes address different network setups, and the recommended FRR-K8s mode adds BFD, IPv6, and FRR configuration merging.
- Con: Operators must configure address pools and meet networking requirements; installation by itself leaves MetalLB idle.
- Con: Cloud-provider incompatibility rules out several common managed-cloud environments, including AWS, Azure, DigitalOcean, and Google Cloud.
- Con: Beta status and possible incompatible configuration changes carry migration risk, and the speaker pod requires elevated permissions.
Alternatives
For another free self-hosted option with TCP and HTTP proxying, consider HAProxy Community Edition. OpenELB, kube-vip, and PureLB are also free Linux and self-hosted alternatives.
AWS Elastic Load Balancing is a paid cloud-oriented alternative with a free tier for new AWS customers: 750 hours per month shared between Classic and Application Load Balancers, plus 15 GB of data processing for Classic Load Balancers. Array APV is another paid option. F5 BIG-IP APM offers a free trial and a perpetual-license option for BIG-IP Virtual Editions, hardware, or hybrid environments. VMware Workstation Pro is free for Windows or Linux hosts on 64-bit Intel or AMD PCs, with no subscription or license key required; it is a virtualization product rather than a direct load-balancer comparison.
Browse more options in Load Balancing Software.
Verdict
Choose MetalLB if you run a compatible, self-hosted Kubernetes cluster and want free control over service IP allocation and network announcements. Its Layer 2 and BGP modes are the main reason to choose it; cloud incompatibility, elevated runtime privileges, and beta-era configuration risk are the reasons to look elsewhere.
Verdict
MetalLB provides service IP allocation and announcement for Kubernetes clusters where cloud-provider load balancing is not being used. Check the cluster requirements and beta status before adopting it.
Questions
How much does MetalLB cost?
MetalLB is free and open source. The listed plan costs nothing, and no paid plans are listed.
Is MetalLB a managed service?
No. The listed managed service value is no.
Which environments does it support?
The listed platforms are Linux and self-hosted. The project is generally incompatible with cloud providers, and its compatibility page lists AWS, Azure, DigitalOcean, and Google Cloud as unsupported.
How does MetalLB announce service addresses?
It uses ARP, NDP, or BGP depending on the selected mode. Layer 2 uses one cluster machine to announce an address, while BGP peers cluster machines with nearby routers.
How can I install it?
Options include Kubernetes manifests, Kustomize, or Helm. An Operator is also available on OperatorHub.
What does a cluster need to run MetalLB?
The project lists Kubernetes 1.13.0 or later, a compatible cluster network, and IPv4 addresses. MetalLB also needs configuration resources, such as an IPAddressPool in its deployment namespace, before it becomes active.
Facts from MetalLB's own pages
- Address allocation
- It assigns and unassigns service IPs from address pools configured by the operator. · metallb.io, 4 Oct 2026
- Announcement modes
- It announces service addresses using ARP, NDP, or BGP, depending on the selected mode. · metallb.io, 4 Oct 2026
- BGP
- BGP mode peers cluster machines with nearby routers and can distribute traffic across multiple nodes. · metallb.io, 4 Oct 2026
- BGP backend
- The recommended FRR-K8s mode supports BFD, IPv6, and merging additional FRR configuration. · metallb.io, 4 Oct 2026
- Cloud compatibility
- MetalLB is generally incompatible with cloud providers; its compatibility page lists AWS, Azure, DigitalOcean, and Google Cloud as unsupported. · metallb.io, 4 Oct 2026
- Community and support
- The project provides a users mailing list and Slack channel, and ongoing development and maintenance are led by project maintainers. · metallb.io, 4 Oct 2026
- Configuration
- MetalLB remains idle until configured with resources such as IPAddressPool in its deployment namespace. · metallb.io, 4 Oct 2026
- Install options
- MetalLB can be installed using Kubernetes manifests, Kustomize, or Helm; an Operator is also available on OperatorHub. · metallb.io, 4 Oct 2026
- Layer 2
- In layer 2 mode, one cluster machine announces a service IP using ARP for IPv4 or NDP for IPv6. · metallb.io, 4 Oct 2026
- Maturity
- MetalLB describes itself as a beta project and says its configuration format may change incompatibly as the project develops. · metallb.io, 4 Oct 2026
- Purpose
- MetalLB provides a network load balancer for Kubernetes clusters that do not run on a cloud provider. · metallb.io, 4 Oct 2026
- Requirements
- The project lists Kubernetes 1.13.0 or later, a compatible cluster network, and IPv4 addresses as requirements. · metallb.io, 4 Oct 2026
- Runtime privileges
- The speaker pod requires elevated permissions for its network functions. · metallb.io, 4 Oct 2026
- Security changes
- Release notes report read-only root filesystems and disabled privilege escalation for containers that lacked those settings, and a fix for CVE-2025-22874. · metallb.io, 4 Oct 2026
Where MetalLB stands on Freedom251
- Load Balancing Software#4 of 32