Installation von MetallLB (Lokaler LoadBalancer für Kubernetes)

In diesem Beitrag erkläre ich, wie wir MetallLB installieren können. Bei MetallLB handelt es sich um einen lokalen LoadBalancer für unsere Kubernetes-Cluster. Diesen können wir verwenden, wenn wir z.B. einen Kubernetes-Cluster im eigenen LAN betreiben oder die IP-Adressen eigenständig vergeben möchten oder müssen.

Wenn wir einen LoadBalancer in der Cloud betreiben bei einem Cloudanbieter, wird automatisch eine IP-Adresse bestellt und zugewiesen, wenn wir in der Definition der Manifest-Dateien einen LoadBalancer verwenden.

Installation

Um den LoadBalancer zu installieren, müssen wir lediglich auf unserem Kubernetes Master Node den folgenden Befehl ausführen:

kubectl apply -f https://raw.githubusercontent.com/metallb/metallb/v0.14.8/config/manifests/metallb-native.yaml

Im Anschluss können wir überprüfen, ob die Pods ausgeführt werden. Dazu führen wir den folgenden Befehl aus:

kubectl get pods --namespace metallb-system

Bei den Pods müsste bei allen der Status auf Running gesetzt sein. Wenn dies der Fall ist, wurde MetallLB ordnungsgemäß installiert.

Konfiguration

Jetzt müssen wir noch den MetallLB-LoadBalancer konfigurieren, damit dieser richtig funktioniert. Im ersten Schritt definieren wir den IP-Adressbereich, welcher verwendet werden darf, um die Adressen zu vergeben. Dazu legen wir eine Manifest-Datei mit dem folgenden Inhalt an:

apiVersion: metallb.io/v1beta1
kind: IPAddressPool
metadata:
  name: <pool-name>
  namespace: metallb-system
spec:
  addresses:
  - <ip-von_ip-bis>

Jetzt müssen wir noch eine zweite Datei anlegen, die dann die IP-Vergabe übernimmt.

apiVersion: metallb.io/v1beta1
kind: L2Advertisement
metadata:
  name: l2metallb
  namespace: metallb-system
spec:
  ipAddressPools:
  - <pool-name>

Als letzten Schritt müssen wir jetzt die Manifest-Dateien übernehmen und auf unseren Kubernetes-Cluster anwenden.

kubectl get services --all-namespaces