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