MetalLB vs PureLB
MetalLB
metallb.ioPureLB
purelb.ioSide by side
| Figure | MetalLB | PureLB |
|---|---|---|
| Price from | Free | — |
| Free plan | Yes | — |
| Free trial | — | — |
| Open source | — | — |
| macOS | — | Yes |
| Linux | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 1 | 0 |
| Spec score · Load Balancing Software | 7.5 (#7) | 6.8 (#18) |
| BGP | BGP mode peers cluster machines with nearby routers and can distribute traffic across multiple nodes. | The default installation includes a k8gobgp sidecar for advertising remote addresses to upstream BGP routers; BGP can be disabled during installation. |
| Configuration | MetalLB remains idle until configured with resources such as IPAddressPool in its deployment namespace. | PureLB uses Kubernetes Custom Resource Definitions with schema validation to configure address pools, node agents, and BGP peering. |
| Purpose | MetalLB provides a network load balancer for Kubernetes clusters that do not run on a cloud provider. | PureLB provides Kubernetes LoadBalancer services for bare-metal deployments by allocating IP addresses from configured pools and announcing them through Linux networking or optional BGP. |
| Requirements | The project lists Kubernetes 1.13.0 or later, a compatible cluster network, and IPv4 addresses as requirements. | PureLB requires a Kubernetes cluster with a working CNI and Linux nodes; BGP use also requires TCP port 179 connectivity to an upstream router. |
Plans
In their own words
MetalLB
MetalLB provides network load balancing for Kubernetes clusters that do not run on a cloud provider. It assigns service IP addresses from operator-configured pools and announces them through ARP, NDP, or BGP, depending on the chosen mode. In layer 2 mode, one cluster machine announces an address using ARP for IPv4 or NDP for IPv6. 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 open source, with no paid plans listed. Installation options include Kubernetes manifests, Kustomize, Helm, and an Operator on OperatorHub. After installation it remains idle until configured with resources such as an IPAddressPool in its deployment namespace. Requirements include Kubernetes 1.13.0 or later, a compatible cluster network, and IPv4 addresses. The project lists AWS, Azure, DigitalOcean, and Google Cloud as unsupported and says it is generally incompatible with cloud providers. MetalLB describes itself as a beta project and cautions that its configuration format may change incompatibly as development continues.
PureLB
PureLB is a Kubernetes Service LoadBalancer for bare-metal Linux clusters. It allocates external IP addresses from configured pools and announces them through Linux networking, with optional BGP for remote addresses. ServiceGroups use exactly one pool type: local, remote, or Netbox. Local addresses are attached to host interfaces, and a Kubernetes Lease election chooses which node announces each address; another node can take over if that node fails. Remote addresses are placed on a dummy interface on every node and advertised through BGP, allowing an upstream router to distribute traffic with ECMP. Pools can contain IPv4, IPv6, or both for dual-stack deployments. Kubernetes Custom Resource Definitions configure pools and node agents. Installation uses kubectl manifests or Helm, with Helm recommended for production. PureLB requires a Kubernetes cluster with an operational CNI and Linux nodes. It is free, open source, Apache 2.0 licensed, and self-hosted. Prometheus metrics are exposed on port 7472 at /metrics. NetBox integration is documented but currently unsupported and may not work with recent versions.