c't 11/2023
S. 164
Praxis
Kubernetes-Pakete mit Helm
Bild: KI Midjourney, Bearbeitung c’t

Containerverpacker

Kubernetes-Anwendungen mit Helm paketieren

Kubernetes-Administratoren definieren ihre Containerumgebungen in YAML – viel YAML. Damit die Clusterverwaltung nicht im Chaos versinkt, sollten Sie sich mit einem Paketmanager wie Helm vertraut machen und eigene parametrisierte Pakete schnüren. Die kann man auch an Kunden und Kollegen weitergeben.

Von Jan Mahn

Für Docker- und Podman-Umsteiger fühlen sich die ersten Schritte mit Kubernetes seltsam an: Selbst für einfachste Aufgaben braucht man zig Kubernetes-Objekte. Ein Pod hier, ein Service da, vielleicht noch ein PersistentVolumeClaim und eine ConfigMap dort und dazu eine IngressRoute. Schnell häuft man Hunderte Zeilen YAML an – der Preis für die Flexibilität, jede erdenkliche Feinheit einstellen zu können, wenn man das mal muss.

Entsprechend großzügig mit YAML sind wir auch bei der Cluster-Einrichtung in unserer fünfteiligen Kubernetes-Einführung [1] umgegangen: Legen Sie folgende YAML-Schnipsel an und bringen Sie diese per Kubectl in den Cluster, löschen Sie dafür ein altes Objekt, ersetzen Sie ein anderes. Wenn Sie der Anleitung gefolgt sind, haben sich auf Ihrer Festplatte Dutzende solcher Schnipsel angesammelt. Viele der darin definierten Objekte laufen im Cluster, einige haben Sie vielleicht auch wieder gelöscht, andere per Hand geändert. Zum Ausprobieren ist dieses Vorgehen auch kein Problem, im produktiven Betrieb hat dieser imperative, also aus vielen Befehlen zusammengesetzte Stil, aber zahlreiche Tücken. Denn was wirklich im Cluster läuft, entspricht nicht automatisch dem, was in YAML auf Ihrer Festplatte liegt. Wenn Sie eine Datei mit der Definition eines Objekts löschen, heißt das noch nicht, dass das Objekt aus dem Cluster verschwindet – und andersherum. Wenn dann noch mehrere Admin-Kollegen am Cluster tüfteln, ist das YAML-Chaos perfekt. „Configuration Drift“ heißt dieses Problem in der Fachwelt.

Kommentieren