MetalLB #
Deployment #
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 Konfiguration der IP-Adresspools erfolgt nicht über dieses Helm-Chart, sondern vermutlich direkt über IPAddressPool- und L2Advertisement-Custom-Ressourcen, die separat im Cluster angewendet werden.
Wichtige Einstellungen #
- Namespace:
metallb-system - Helm Chart:
metallb/metallb - IP Address Pool (
pool):- Example IPv4 range:
192.168.10.0/24 - Example IPv6 range:
fc00:f853:ccd:e793::/64
- Example IPv4 range:
- L2 Advertisement: All addresses from the
poolare announced via L2. - Logging: The log level for the controller and speaker is set to
warn. - FRR: Free Range Routing (FRR) is enabled for the speaker.
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