Zur Community

Die Falle, die unseren Cluster fast über einen fremden Server repliziert hätte

, Immanuel Kutzbach

Am 14. September haben wir den onpit-Cluster aufgebaut: k3s auf fünf Raspberry Pi 5, drei davon als Steuerknoten mit etcd, dazu Longhorn als gespiegelter Speicher. Kurz vor dem Start fiel uns etwas auf, das den ganzen Aufbau leise ruiniert hätte.

Was passiert wäre

Alle Pis schicken ihren ausgehenden Verkehr über einen „Exit-Node” im NetBird-Netz, einen Server bei Hetzner. Das ist Absicht. Die Standardroute jedes Pis zeigt deshalb auf die VPN-Schnittstelle wt0.

k3s sucht sich seine eigene Knoten-Adresse aber genau dort aus: an der Schnittstelle der Standardroute. Ohne Gegenmaßnahme hätte jeder Pi eine VPN-Adresse als Knoten-Adresse bekommen. Dann wären die Abstimmung zwischen den Steuerknoten (etcd), das interne Netz der Container (Flannel) und die Speicher-Spiegelung (Longhorn) über das VPN und den Server in Nürnberg gelaufen, statt über das Kabel im Rack, das daneben liegt.

Es hätte sogar funktioniert. Nur langsam, abhängig von einem fremden Rechenzentrum, und niemand hätte es bemerkt.

Die Gegenmaßnahme

Auf jedem Knoten zwei Angaben beim Start von k3s:

--node-ip <LAN-Adresse>  --flannel-iface eth0

Danach zeigt kubectl get nodes -o wide für alle fünf Knoten eine Adresse aus dem lokalen Netz. Der Verkehr zwischen den Pis bleibt im Rack, nur der Weg nach draußen geht über den Exit-Node.

Noch eine Falle, gleich hinterher

Nach dem Beitritt zum Cluster haben wir die Datei mit dem Beitritts-Schlüssel gelöscht, aus Sicherheitsgründen. Beim nächsten Neustart kam ein Knoten nicht mehr hoch: Der Installer hatte den Pfad zu genau dieser Datei fest in den Systemdienst geschrieben, und k3s liest sie bei jedem Start, nicht nur beim Beitritt. Die Lösung: auf den Steuerknoten auf die interne Kopie des Schlüssels verweisen; auf den reinen Arbeitsknoten die Datei behalten, nur für root lesbar.

Warum wir das aufschreiben

Beide Fehler sieht man nicht, solange alles läuft. Genau deshalb gehören sie in die Anleitungen: Wer onpit nachbaut, soll nicht in dieselben Löcher fallen.