[email protected]

Basics · Kubernetes

MetalLB vs. kube-vip: load balancing on bare metal

Editorial note: Versions, commands and prices may change. Please verify critical steps independently before production use. This guide does not replace individual professional, legal or tax advice.

Have your bare-metal cluster connected to the network cleanly? WZ-IT plans and operates Kubernetes networks: load balancing, control-plane HA, Ingress and Gateway API, DNS and TLS - on Proxmox, bare metal and European infrastructure. See Network & Secure Access

In the cloud, load balancing is a given: a service of type LoadBalancer automatically gets an external IP. On bare metal and Proxmox exactly that is missing - Kubernetes ships no implementation for it. Two projects fill the gap: MetalLB and kube-vip. They overlap but solve different core problems. This comparison places both and answers the question: when to use which. As of July 2026.

Table of contents

Why bare metal has no load balancing

The core of the problem is stated in the MetalLB documentation: "Kubernetes does not offer an implementation of network load balancers for bare-metal clusters." In the cloud, AWS, Azure or GCP ship this implementation - a type: LoadBalancer service immediately gets an external IP. On bare metal, without an additional solution, only NodePort or the now-deprecated externalIPs remain.

This is exactly where MetalLB and kube-vip come in. Both assign external IPs on your own network so that services "just work" as in the cloud. The difference lies in which task they primarily solve.

MetalLB: LoadBalancer for services

MetalLB is the established load balancer implementation for bare-metal clusters. It assigns external IPv4/IPv6 addresses from a configured pool to services of type LoadBalancer and integrates with standard network equipment in doing so. The project holds CNCF sandbox status.

MetalLB thus solves exactly one task, and does it well: load balancing for application services. It knows two modes - Layer 2 and BGP (with FRR-K8s as the default backend) - compared further below. What MetalLB does not do: it provides no virtual IP for the control plane. For high availability of the API server, another solution is needed.

kube-vip: VIP for control plane and services

kube-vip takes a broader approach. According to the kube-vip documentation it delivers "a virtual IP and load balancer for both the control plane (for building a highly-available cluster) and Kubernetes Services of type LoadBalancer" - without any external hardware or software.

The original and most important use case is the virtual IP for the control plane: in a multi-master cluster the API server needs a single, highly available endpoint. kube-vip provides this VIP and moves it over when a node fails. Beyond that, kube-vip can also handle service load balancing and thus covers both tasks in one tool. Like MetalLB it supports ARP (Layer 2) and BGP, plus routing-table and WireGuard modes.

The two compared

Dimension MetalLB kube-vip
Control-plane VIP (HA) No Yes (core use case)
Service load balancer Yes (core use case) Yes
Modes Layer 2, BGP ARP (L2), BGP, routing table, WireGuard
External hardware Not required Not required
Maturity CNCF sandbox, widely used Widely used, often in kubeadm setups
Typical role Service LB in bare-metal clusters Control-plane HA, optionally service LB too

L2 or BGP

Independent of the tool, the question of the mode arises. In Layer 2 mode (ARP/NDP) a single node answers requests for an IP; if it fails, another takes over. That is simple to set up and works on any network - but the throughput of a single IP hangs on one node, there is no true load spreading across several.

In BGP mode the nodes announce the IPs via a routing protocol to the network infrastructure. This enables true multipath routing (ECMP) across several nodes - more capable and more resilient, but it requires BGP-capable switches or routers. The rule of thumb: L2 for simple setups and homelabs, BGP for data centers with matching network infrastructure.

Which solution when

The short version follows the problem that presses first:

  • kube-vip when you need control-plane high availability - the multi-master cluster needs a VIP for the API server. That is the task MetalLB does not solve.
  • MetalLB when you want a mature, widely used service load balancing and control-plane HA is covered elsewhere (for example via kube-vip).
  • Both together is a common, clean pattern: kube-vip for the control-plane VIP, MetalLB for the application services. Alternatively kube-vip takes on both roles.

Important: load balancing is the foundation, not the HTTP routing. On the external IP the Ingress or Gateway API controller then runs. Anyone still using externalIPs as a stopgap should put the foundation cleanly on type: LoadBalancer first - externalIPs was marked deprecated with Kubernetes 1.36 due to CVE-2020-8554. How the modern HTTP routing is built on top is shown in Gateway API vs. Ingress.

Rather have it operated?

You'd rather not run Kubernetes yourself? WZ-IT handles setup, operations and maintenance - privacy-focused from Germany.

Enquiry

Design, take over, or operate Kubernetes

We design and operate Kubernetes on bare metal, Proxmox, and European cloud platforms, including networking, GitOps, observability, and backups.

  • Straight with Timo and Robin - no sales team, no pitch
  • A professional assessment of your situation
  • Concrete next steps for infrastructure, software or AI

The conversation is free and non-binding.

WZ-IT supported us professionally with the provisioning and setup of NetBird. Alongside the technical implementation, we also received well-founded advice on connecting our Kubernetes clusters. The recommendations were concrete and directly actionable. The collaboration was consistently reliable, fast and on equal terms. We can recommend WZ-IT without reservation.
Kai ClaußHead of Development, SweetConnect GmbH
Timo and Robin, founders of WZ-IT

Design, take over, or operate Kubernetes

WZ-IT supported us professionally with the provisioning and setup of NetBird. Alongside the technical implementation, we also received well-founded advice on connecting our Kubernetes clusters. The recommendations were concrete and directly actionable. The collaboration was consistently reliable, fast and on equal terms. We can recommend WZ-IT without reservation.
Kai ClaußHead of Development, SweetConnect GmbH

Frequently Asked Questions

Answers to the most important questions

Companies worldwide trust WZ-IT

  • Stadtwerke Brühl
  • DGHO e.V.
  • ABCO Water Systems
  • Golem.de
  • EVADXB
  • nextGYM
  • AInergy
  • ml&s
  • Odiseo Solutions
  • Annota
  • ARGE
  • SweetConnect GmbH
  • Aphy AG
  • CORGOS
  • Rekorder
  • SolidProof
  • Yonju
  • Keymate
  • Paritel
  • Mr. Clipart
  • Millenium
  • Negosh
  • Führerscheinmacher
  • Boese VA
Read client reviews