Die Open Source Firewall OPNsense ist eine sinnvolle Lösung für die folgenden Aufgaben:
Für diesen Demo Aufbau wurde ein Port "kube" für das Kubernetes Netz definiert.
Hier noch die in den Firewall Regeln verwendeten Aliases:
Für das Kubernetes Netz wird ein DHCP Server konfiguriert. Der dynmische Pool wurde hier nur für neue Nodes eingerichtet, damit man diese nach dem erstmaligen Boot mit ssh weiter einrichten kann. Es wird empfohlen, mit statischen DHCP Zuweisungen zu arbeiten. Das macht die BGP4 Anbindung einfacher.
Mit den statischen Zuweisungen hat man auch gleichen einen Überblick darüber, welche Nodes im Kubernetes Netz sein sollten.
Falls in diesem Szenario dynamische Zuweisungen erfolgt sind, dann sind das evtl. Nodes, die noch nicht konfiguriert sind.
In dem Haproxy werden die die Control Planes als "Real Servers" angegeben. In diesen Beispielen befindet sich das Kubernetes Control-Plane Netz im Netz 10.67.0.0/16.
Hier ein Beispiel für eine der Control-Planes, die anderen Control-Planes unterscheiden sich nur in der IP-Adresse.
Im nächsten Dialog wird der Backend Pool festgelegt, dort werden die Real-Server verwendet.
In dem Backend Pool werden die 3 Control-Planes zu einem Backend zusammengefasst.
Die anderen, hier nicht gezeigten Parameter bleiben auf ihren Default Werten, bzw. werden nicht angegeben. Im letzten Schritt wird das Frontend konfiguriert.
Der Public Service ist das, was als Control-Plane im Kubernetes Cluster sichtbar wird.
Die Control-Plane soll einmal in der Admin-DMZ und natürlich im Kubernetes Netz sichtbar sein. An dieser Stelle wird der Backend Pool verwendet.
Unter Rules & Checks wird noch ein Health Montor gesetzt, der ist von zentraler Bedeutung, damit der Haproxy merkt, wenn eine der Control Planes nicht verfügbar ist.
Der Health-Monitor prüft einfach nur, ob der Port 6443 auf dem Backend offen ist. Die Health Monitor Defintion wird im Backend Pool verwendet.
Die haproxy Statistiken sind sehr nützlich, um evtl. Probleme im Control Plane Cluster zu ermitteln. Diese sollte in der Haproxy Konfiguration ebenfalls aktiviert werden. Wichtig: Unbedingt einen User/Passwort setzen, damit der Zugang zu den Statistiken nur über eine Authentifizierung möglich ist.
Nachdem 3 Control Planes laufen sollte die haproxy Statistik folgendes Resultat liefern: