MetalLB
Gibt einem Service vom Typ LoadBalancer eine echte externe IP in Clustern, die auf eigener Hardware laufen — dort, wo kein Cloud-Anbieter existiert, den man danach fragen könnte.
In einer Cloud ruft Kubernetes die API des Anbieters auf und bekommt einen Lastverteiler zurück. Auf blanker Hardware passiert schlicht nichts — der Dienst bleibt für immer im Zustand pending hängen. MetalLB vergibt Adressen aus einem konfigurierten Pool und kündigt sie auf zwei Arten an. Im Layer-2-Modus beantwortet ein ausgewählter Knoten ARP oder NDP für die Adresse — einfach einzurichten, aber der gesamte Verkehr läuft über diesen einen Knoten, und ein Ausfall braucht einige Sekunden zum Umschalten. Im BGP-Modus baut MetalLB eine Sitzung zu den Routern des Netzwerks auf und kündigt die Adresse von mehreren Knoten gleichzeitig an, was über ECMP echte Lastverteilung erlaubt — allerdings muss einen zuerst jemand ins Routing hineinlassen.