kube-vip vs MetalLB
kube-vip
kube-vip.ioMetalLB
metallb.ioSide by side
| Figure | kube-vip | MetalLB |
|---|---|---|
| Price from | — | Free |
| Free plan | — | Yes |
| Free trial | — | — |
| Open source | — | — |
| Linux | Yes | Yes |
| Self-hosted | Yes | Yes |
| Plans published | 0 | 1 |
| Spec score · Load Balancing Software | 6.9 (#15) | 7.5 (#7) |
| Purpose | kube-vip provides a virtual IP and load balancer for Kubernetes control planes and Services of type LoadBalancer. | MetalLB provides a network load balancer for Kubernetes clusters that do not run on a cloud provider. |
Plans
In their own words
kube-vip
kube-vip is free, open-source software that gives Kubernetes clusters a virtual IP and load balancing for control-plane traffic and LoadBalancer Services. It targets Linux, self-hosted deployments such as bare metal, on-premises systems, virtualization, and edge devices including ARM hardware and Raspberry Pi. Virtual IPs may be IPv4, IPv6, or DNS names. Networking modes are ARP, BGP, routing tables, and WireGuard; the documented modes are disjunctive, so only one can be enabled at a time. kube-vip can run as a static Pod or DaemonSet inside the cluster it serves. Control-plane options include leader election, kubeadm static Pods, and K3s or other distribution DaemonSets. Service support includes BGP across nodes, address pools, CIDR or ranges, DHCP, and UPnP. It uses Apache-2.0 licensing and provides Layer 4 routing, not Layer 7 routing.
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.