Skip to main content

Was ist Metallb

Kurzbeschrieb

Metallb ist ein Loadbalancer für Baremetal Kubernetes Cluster.

Wie Funktioniert es?

Bei der Installation von Metallb wird ein Master Pod auf dem Cluster erstellt, so wie ein Speaker Pod auf jeder Node. Der Master Pod ist der Controller, welcher die Speakter kontrolliert. Mittels einer Configmap wird dem Metallb Deployment ein IP Bereich Zugewiesen, aus welchem die IPs frei verteilt werden können. Metallb routet danach die Anfragen zu den Richtigen Container / Pods.

Warum Metallb?

Wenn man ein Service welcher auf mehreren Nodes Läuft veröffentlichen möchte, gibt es verschiedene Arten wie man dies tun kann.

1. Cluster IP

Jeder Pod verfügt über eine Cluster IP, jedoch ist die Cluster IP nur intern vom Cluster erreichbar.

2. Host-Port

In diesem Fall öffnet der Pod auf der Node, aufwelcher er aktuell läuft einen Host-Port, mit welchem man direkt auf den Pod zugreifen kann. Nachteil ist, dass dieser nur auf einer Node zur verfügung steht was bedeutet, dass bei einem Ausfall dieses Hosts der Pod nicht mehr erreichbar ist.

3. Node-Port

In diesem Fall öffnet der Pod auf jeder Node einen Gewissen Port, aus der Port range von Kubernetes(30'000 - 32768), sämtliche Nodes leiten allen verkehr, welcher über einen bestimmten Port kommen an den Pod weiter. Nachteil ist, wenn alle Ports verwendet werden ist der ganze Spass vorbei & es werden keine Floating & Virtual IP's unterstützt.

4. Loadbalancer

Metallb ist ein Loadbalancer, dieser unterstützt Floating & virtual IP's, was die perfekte Redundanz ermöglicht. Kubernetes kann mit diesem Loadbalancer die Redundanz auf Layer 2 absichern.