K3s on-prem Kubernetes wird durch den deklarativen Ansatz von k0rdent und BYOT verwaltet. Wir erläutern, wie man einen reproduzierbaren Cluster ohne Skripte und manuelle Zusammenstellung erstellt.
Das Problem zeigt sich nicht sofort — bis der on-prem Kubernetes beginnt, zu skalieren. Manuell erstellte Cluster verlieren ihre Reproduzierbarkeit. Jede Änderung erfordert Skripte oder manuelle Anpassungen. Unter diesen Bedingungen steigen die Wartungskosten und die Vorhersehbarkeit des Systems sinkt. Dies ist besonders in Umgebungen spürbar, in denen es keine fertigen Managed-Lösungen gibt und man auf Proxmox oder eine ähnliche Infrastruktur angewiesen ist.
In diesem Fall haben wir die Kombination K3s on-prem Kubernetes + k0rdent + Proxmox gewählt. Die Hauptidee besteht darin, von der imperativen Verwaltung zur deklarativen zu wechseln. Anstatt Schritte zu beschreiben, erhält das System eine Beschreibung des gewünschten Zustands. k0rdent übernimmt die Reconciliation-Loop und überwacht die Übereinstimmung. Dies ist ein Kompromiss: mehr anfängliche Konfiguration, aber langfristig erheblich weniger manuelle Arbeit. K3s fungiert hier als leichtgewichtige Kubernetes-Distribution, die für on-prem und Edge optimiert ist.
Die Architektur ist schichtweise aufgebaut. Der Ablauf sieht folgendermaßen aus: Der Benutzer definiert den Zustand über k0rdent, dann werden virtuelle Maschinen in Proxmox über BYOT (Bring Your Own Template) erstellt, anschließend werden Control Plane Provider und Bootstrap Provider für K3s angeschlossen. Jede Schicht löst eine Aufgabe. Dies reduziert die Kopplung und vereinfacht das Debugging.
Ein entscheidender Punkt ist das Fehlen eines nativen Proxmox-Providers in k0rdent. Stattdessen wurde ein eigener Infrastructure Provider über ein Helm-Chart implementiert. Dieser ist nur für die Erstellung von VMs verantwortlich. Kubernetes-Logik wird nicht hinzugefügt. Diese Trennung der Verantwortlichkeiten macht das System transparent: Infrastruktur und Orchestrierung werden nicht vermischt.
In der Implementierung wurden im Voraus vorbereitete Vorlagen für virtuelle Maschinen in Proxmox verwendet. Diese beinhalten bereits cloud-init, SSH-Zugriff und grundlegende Pakete. Dies beseitigt die Notwendigkeit, bei jedem Provisioning Images zu erstellen. Infolgedessen wird der Start beschleunigt und die Anzahl der Ausfallpunkte verringert. Es gibt jedoch einen Trade-off: Die Vorlagen müssen manuell aktuell gehalten werden.
Nach der Erstellung der VM übernimmt der Control Plane Provider die Verwaltung. Er weist den Knoten Rollen zu und bildet den Control Plane. Hier ist wichtig, dass die Rollen deklarativ zugewiesen werden. Der Cluster wird vorhersehbar: Jeder Knoten hat eine klar definierte Funktion. Dies verringert das Risiko von Konfigurationsfehlern, die häufig bei manueller Zusammenstellung auftreten.
Der Bootstrap Provider ist für die Installation von K3s verantwortlich. Er verwaltet den Lebenszyklus des Clusters: Installation, Aktualisierung, Konfiguration. K3s wurde aufgrund minimaler Abhängigkeiten und schneller Installation ausgewählt. Dies ist besonders wichtig für on-prem, wo Ressourcen und Netzwerk begrenzt sein können.
Nach Abschluss aller Phasen wechselt das System in den Modus der kontinuierlichen Zustandsüberprüfung (Reconciliation). Wenn etwas von der Deklaration abweicht, korrigiert k0rdent dies automatisch. Dies ist der entscheidende Unterschied zum traditionellen Ansatz, bei dem Drift unbemerkt bleibt, bis ein Vorfall eintritt.
Das Ergebnis ist ein vollständig deklarativer K3s on-prem Kubernetes-Cluster. Skalierung erfordert keine manuelle Vorbereitung mehr. Das Wiederherstellen des Clusters wird zu einem wiederholbaren Vorgang. Allerdings fehlen in den Ausgangsdaten quantitative Metriken zur Bereitstellungszeit oder zur Fehlerreduzierung, sodass die Bewertung qualitativ bleibt.
Es ist wichtig zu beachten, dass der BYOT-Ansatz das System flexibel macht. Wenn die Infrastruktur nicht standardmäßig unterstützt wird, kann sie über Vorlagen und Helm integriert werden. Dies erweitert die Anwendbarkeit, erfordert jedoch Ingenieurdiziplin: Fehler in den Vorlagen wirken sich direkt auf den gesamten Cluster aus.
In der Branche wird dieser Übergang zu deklarativer Verwaltung seit langem diskutiert. In on-prem-Umgebungen gestaltet sich dies jedoch schwieriger aufgrund des Fehlens standardisierter Provider. In diesem Sinne erscheint die Kombination aus k0rdent, Proxmox und K3s als pragmatischer Weg zur Vereinheitlichung des Infrastrukturmanagements.