Untersuchung von Infrastructure as Code (IaC) Tools für den HPC-Clusterbetrieb
GitOps-gesteuerte HPC-Cluster mit Kubernetes und SLURM
Ausgangslage
Zurzeit existiert an der FHNW keine kursübergreifende Struktur, um Dozenten und Studierenden Zugang zu HPC-Clustern zu geben. Es muss für Projekte und Kurse jeweils neue Hardware beschafft, installiert und bereitgestellt werden. Dieser Prozess erfordert Vorlaufzeit und kann die IT-Management-Ressourcen der FHNW belasten.
Zielsetzung
Das Projekt zielt darauf ab, ein Konzept und einen Proof of Concept für eine Virtualisierungsplattform zu entwickeln, auf der verschiedene Nutzergruppen virtuelle SLURM-Cluster erstellen und betreiben können. Dabei wird ein Vergleich zwischen Bare-Metal-Slurm-Clustern und Kubernetes-basierten Varianten durchgeführt, um Performance, Latenzen und Overhead zu bewerten. Die Plattform soll so gestaltet sein, dass neue Hardware künftig automatisiert und mit minimalem Aufwand integriert werden kann.
GitOps-gestützte SLURM-Bereitstellung im k3s-Cluster
Die Bereitstellung neuer SLURM-Cluster-Instanzen im k3s-Cluster erfolgt vollständig GitOps-basiert, wodurch Deployments reproduzierbar, versioniert und leicht nachvollziehbar sind. Neue Cluster können in wenigen Minuten über GitLab konfiguriert und mit ArgoCD automatisch ausgerollt werden, inklusive persistentem Speicher über Longhorn. Jede Instanz ist in einem eigenen Namespace isoliert, was parallele Verwaltung und einfache Skalierung ermöglicht.
SLURM-Integration in Kubernetes mit Slinky
Zur Verwaltung der SLURM-Workloads im k3s-Cluster wird Slinky eingesetzt, ein Toolset zur Integration von SLURM in Kubernetes. Der zentrale Slurm Operator ermöglicht es, komplette SLURM-Cluster als deklarative Kubernetes-Ressourcen zu definieren und mit Helm oder ArgoCD zu verwalten. Jede Instanz läuft in Containern mit eigener Konfiguration und ist logisch isoliert, sodass mehrere Cluster parallel betrieben werden können. Für Nutzer bleibt die Kubernetes-Schicht unsichtbar – sie arbeiten wie gewohnt über Login-Pods mit den bekannten SLURM-Kommandos.
Zentrales Monitoring mit Prometheus und Grafana
Das k3s-Cluster wird vollständig mit Prometheus und Grafana überwacht, wobei neue virtuelle SLURM-Cluster automatisch ins Monitoring integriert werden. Prometheus sammelt Metriken aus Kubernetes und SLURM, während Grafana diese in übersichtlichen Dashboards visualisiert. Durch den Einsatz des slurm-exporters lassen sich Clusterstatus, Auslastung und Ressourcenverbrauch pro Namespace oder Pod analysieren, um Lastspitzen und Engpässe frühzeitig zu erkennen.
Automatisierte k3s-Installation auf dem physischen Cluster
Für den physischen Cluster wird k3s als leichtgewichtige Kubernetes-Distribution eingesetzt, da es ressourcenschonend und ideal für kleinere oder studentische Projekte ist. Die Installation und Konfiguration erfolgen vollständig automatisiert über Ansible, das den k3s-Server und die k3s-Agents einrichtet und verbindet. Die Playbooks und Rollen sind so strukturiert, dass sie idempotent und leicht an neue Hardware oder grössere Cluster erweiterbar sind. Studierende arbeiten nicht direkt mit Kubernetes, sondern nutzen ausschliesslich die bereitgestellten Anwendungen wie SLURM auf dem Cluster.
Fazit und Empfehlungen
Unsere Tests haben gezeigt, dass Slinky in seiner aktuellen Version zwar spannende Funktionen bietet – etwa eine automatisierte Einrichtung und Verwaltung von Systemen –, aber im praktischen Alltag noch nicht zuverlässig genug arbeitet. Einzelne Bausteine reagieren empfindlich auf Neustarts und es kam wiederholt zu fehlerhaften Abläufen bei der Verteilung von Rechenaufträgen. Das bedeutet, dass komplexe Berechnungen manchmal langsamer liefen oder ganz abbrachen.
Ein Grund dafür liegt in den unterschiedlichen „Denkweisen“ der Systeme: Kubernetes, das oft für Webanwendungen genutzt wird, verteilt Ressourcen sehr strikt in kleinen, abgeschlossenen Einheiten (Pods). SLURM, das in der Welt der Hochleistungsrechner weit verbreitet ist, geht hingegen davon aus, dass es die gesamte Rechenleistung einer Maschine sehen und frei einteilen kann. Wenn diese beiden Welten aufeinandertreffen, kommt es zu Missverständnissen bei der Ressourcenverteilung – ähnlich wie zwei Projektleiter, die beide ihren eigenen Plan haben und nicht ganz dasselbe Ziel verfolgen.
- Slinky ist aktuell noch nicht stabil genug für den Dauerbetrieb.
- Kubernetes und SLURM haben unterschiedliche Konzepte zur Ressourcenverteilung.
- Fehler führten zu ineffizienter Nutzung der verfügbaren Rechenleistung.
- Automatisierungstools wie Ansible haben sich hingegen sehr bewährt.
Besonders positiv fiel uns auf, wie hilfreich Infrastructure-as-Code-Tools wie Ansible sind. Mit ihnen konnten wir alle Schritte – von der Installation über die Konfiguration bis hin zur Wartung – automatisieren. Das spart nicht nur viel Zeit, sondern stellt auch sicher, dass die Abläufe jederzeit wiederholt werden können. Neue Rechner können so in wenigen Minuten in ein System integriert werden, ohne dass komplizierte Handarbeit nötig ist.
In unseren Leistungstests zeigte sich, dass unser „klassisch“ aufgebauter VM-Cluster in vielen Fällen schneller und stabiler arbeitete als die Variante mit Kubernetes und Slinky. Dieser Unterschied ist nicht allein auf die Software zurückzuführen, sondern auch auf Unterschiede in der Hardware und den gewählten Einstellungen. Trotzdem ist klar: Zusätzliche Schichten wie Kubernetes bringen nicht automatisch einen Vorteil in solchen Umgebungen – im Gegenteil, sie können den Betrieb sogar verkomplizieren.
Empfehlungen
Aus unseren Erfahrungen leiten wir einige konkrete Handlungsempfehlungen für zukünftige Projekte und den Betrieb von HPC-Clustern an der FHNW ab:
- Klare Testszenarien Vor dem produktiven Einsatz neuer Werkzeuge sollten standardisierte Tests auf einheitlicher Hardware durchgeführt werden. So lassen sich Stärken und Schwächen objektiv vergleichen.
- Direkte Ressourcensteuerung Wo möglich, sollte SLURM direkt eingesetzt werden, ohne zusätzliche Virtualisierungsschichten wie Kubernetes. Das ist transparenter und verhindert Konflikte.
- Slinky im Blick behalten Auch wenn es aktuell noch nicht bereit ist, kann sich Slinky in Zukunft zu einer praxistauglichen Lösung entwickeln. Wir empfehlen, die Weiterentwicklung zu beobachten und den Austausch mit anderen Institutionen zu suchen.
- Automatisierung ausbauen Tools wie Ansible, Terraform oder Packer können den Betrieb deutlich vereinfachen. Schrittweise Einführung minimiert Risiken.
Langfristig sehen wir den grössten Nutzen in einer Kombination aus bewährten HPC-Werkzeugen wie SLURM und modernen Automatisierungsansätzen. So lassen sich leistungsfähige Systeme betreiben, die sowohl für Forschende als auch für Studierende zuverlässig und leicht zugänglich sind.
Kund:in

FHNW Institut für Data Science
Simon Marcin
Bahnhofstrasse 6
5210 Windisch
I4DS
Team
Fabian Frei
Martin Vogt
Betreuer
Simon Marcin
Manuel Stutz