Zum Hauptinhalt springen
  1. Beiträge/
  2. Kleines Homelab/
  3. k3s-prod: Kubernetes Cluster Konfiguration und Anwendungsbereitstellung/

MetalLB

··253 Wörter· ·
Inhaltsverzeichnis

MetalLB
#

Quelle
#

Die Anwendung wird als Helm-Chart von metallb.github.io bezogen.

Dokumentation
#

Die offizielle Dokumentation von MetalLB ist unter metallb.universe.tf zu finden.

Funktion
#

MetalLB ist eine essenzielle Komponente für diesen Cluster. Es implementiert die Funktionalität eines Netzwerk-Load-Balancers. Wenn ein Service vom Typ LoadBalancer erstellt wird, weist MetalLB ihm eine externe IP-Adresse aus einem vordefinierten Adresspool zu. Es arbeitet im L2-Modus, was bedeutet, dass ein Node im Cluster die Verantwortung für die zugewiesene Service-IP übernimmt und den Traffic an den entsprechenden Service weiterleitet.

Lokale Anpassungen
#

Die IP-Adresspools kommen nicht aus dem Helm-Chart, sondern aus eigenen IPAddressPool- und L2Advertisement-Manifesten in diesem Verzeichnis.

Wichtige Einstellungen
#

  • Namespace: metallb-system
  • Helm Chart: metallb/metallb
  • IP Address Pool (pool): Je ein IPv4- und ein IPv6-Bereich aus dem lokalen Netz. Die tatsächlichen Bereiche stehen in den Manifesten dieses Verzeichnisses und dürfen sich nicht mit dem DHCP-Bereich des Routers überschneiden.
  • L2 Advertisement: Alle Adressen des Pools werden per ARP/NDP angekündigt, allerdings nur von den Control-Plane-Knoten (nodeSelectors).
  • Logging: Log-Level von Controller und Speaker steht auf warn.
  • FRR: Free Range Routing (FRR) ist deaktiviert (frr.enabled: false). Es wird der native MetalLB-Speaker verwendet.

Installation
#

Die Anwendung wird mittels Kustomize und Helm durch ArgoCD im Kubernetes-Cluster bereitgestellt. Die Konfiguration befindet sich im apps/metallb-Verzeichnis. Eine manuelle Installation kann mit folgendem Befehl durchgeführt werden:

1kubectl kustomize --enable-helm apps/metallb | kubectl apply -n metallb-system -f -

Abhängigkeiten
#

MetalLB ist eine grundlegende Netzwerkinfrastruktur-Komponente und hat keine externen Anwendungsabhängigkeiten. Viele andere Dienste in diesem Cluster sind jedoch von MetalLB abhängig, um externe IP-Adressen zu erhalten.

Fabrice Kirchner
Autor
Fabrice Kirchner
stolzer Vater, Nerd, Admin