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.
Per E-Mail antworten