Das Provisioning in Kubernetes kann sich bei mehreren Ressourcen schwierig gestalten, weil verschiedene YAML-Dateien notwendig sind. Helm vereinfacht die Bereitstellung auch in komplexen Szenarien vereinfachen.
Helm kann unter anderem auf Repositories im Internet zugreifen.
(Bild: Joos / ArtifactHub)
Um Anwendungen in Kubernetes bereitzustellen, sind häufig verschiedene Abhängigkeiten, Pods, Container und andere Ressourcen notwendig. Tools zum Paketieren können nebenher die Installation und Einrichtung auch dieser Abhängigkeiten und noch mehr übernehmen.
Das Open-Souce-Tool Helm gehört zu den bekanntesten Lösungen, wenn es darum geht, Anwendungen für Kubernetes zu paketieren. Das Tool gehört als Projekt zu Kubernetes und damit auch zur Cloud Native Computing Foundation. Der Paketmanager lässt sich eng mit Kubernetes integrieren und erleichtert das Erstellen von Ressourcen und das Installieren von Anwendungen deutlich, vor allem bei komplexen Lösungen und umfassenden Kubernetes-Clustern.
Das sind die Funktionen von Helm
Helm verfügt im Grunde genommen über die gleichen Funktionen wie die Paketmanager der verschiedenen Programmiersprachen und Betriebssysteme. Mit Helm lassen sich daher auch Anwendungen inklusive der notwendigen Abhängigkeiten installieren. Daher lässt sich Helm in Kubernetes auf gleichem Weg nutzen wie „apt“ in Debian/Ubuntu oder „pip“ mit Python.
Das Aktualisieren bereits installierter Software ist mit Helm ebenfalls möglich. Hinzu kommt die Funktion zum Herunterladen und Installieren von Paketen aus Software-Repositories im Internet oder zum Betreiben eigener Repositories. Das Deinstallieren und auch Rollbacks sind mit Helm über Befehle in der Kommandozeile möglich, ohne einzelne Dateien eines Projektes mit kubectl zurückspielen zu müssen.
Helm stellt für seine Funktionen ein Terminal-Tool (helm) und eine Server-Komponente, die auf Anfragen dieses Tools wartet, zur Verfügung. Die Bereitstellung der Anwendungen übernimmt der Server-Part, das Suchen nach Paketen, in Helm auch „Charts“ genannt, erfolgt auf dem Client. Die Software muss dazu im Helm-Paketformat „Charts“ zur Verfügung gestellt werden. Jedes Paket besteht aus verschiedenen YAML-Dateien, zum Beispiel die Datei „chart.yaml“ inklusive Vorlagen, die Kubernetes lesen kann.
Die Vorlagen sind in der Programmiersprache Go geschrieben. Abhängigkeiten von Paketen sollten mit einer eigenen YAML-Datei gesteuert werden. Die Datei „requirements.yaml“ gehört dazu zum Stammverzeichnis eines Helm-Pakets. Die Standardwerte für Charts sind wiederum in der Datei „values.yaml“ gespeichert. Um Werte von Charts abzufragen, kann zum Beispiel „helm inspect values <Chart>“ verwendet werden.
Eigene Charts mit Helm erstellen
Erstellen eines eigenen Charts mit Helm.
(Bild: Joos / Canonical)
Eigene Charts lassen sich relativ leicht auf Basis bereits vorhandener Charts erstellen. Gibt es kein Chart, das den gewünschten Einstellungen entspricht, kann mit „helm create <Chartname>“ ein neues Chart kreiert werden. Dadurch erstellt Helm auch eine passende Verzeichnisstruktur mit den jeweiligen Standardwerten. Danach müssen nur noch „chart.yaml“ angepasst und die notwendigen Dateien und Vorlagen in die jeweiligen Verzeichnisse kopiert werden.
So läuft die Installation von Anwendungen mit Helm ab
Installieren von Anwendungen mit Helm in Kubernetes.
(Bild: Joos / Canonical)
Wer eine eigene Datei schreibt, kann deren Werte bei „helm install“ mitgeben, um die Konfiguration der Anwendung so durchzuführen, wie es in der Datei festgelegt ist. Sobald ein Chart installiert wird, handelt es sich bei der installierten Anwendung in Kubernetes um ein Release. Einstellungen der Releases können auch über die Datei „values.yaml“ eines Charts angepasst werden. Daher kann eine App auch aus verschiedenen Releases und Versionen bestehen, die wiederum über eine eigene „values.yaml“ besteht.
Helm nutzt zur Installation der Anwendung und der Erstellung der notwendigen Ressourcen, wie Pods und Container, seinen Serverpart. Dieser baut eine Verbindung zur Kubernetes-API auf. Wenn ein Chart installiert wird, nutzt Helm zunächst die Daten aus den Konfigurationsdateien. Zusätzlich erfolgt eine Kombination mit den Werten aus „values.yaml“ und der angegebenen, benutzerdefinierten Konfiguration.
Anbinden von Repositories, Herunterladen von Charts und bearbeiten der Installationsdateien des Charts mit Helm.
(Bild: Joos / Canonical)
Hier besteht auch die Möglichkeit mit dem Parameter „--set“ von „helm“ zu arbeiten. Dazu lassen sich Werte verwenden, die von den Standardwerten abweichen. Um fertige Charts aus dem Repository herunterzuladen und vor der Installation erst die notwendigen Dateien zu bearbeiten, kann ebenfalls Helm eingesetzt werden. Der Befehl dazu lautet zum Beispiel:
helm pull bitnami/mysql“
Danach befindet sich die Tar-Datei des Paketes im Verzeichnis und kann mit „ls“ angezeigt werden.
Anpassen der Datei „values.yaml“ eines Charts.
(Bild: Joos / Canonical)
Die Tar-Datei lässt sich mit Helm auch gleich extrahieren:
helm pull --untar bitnami/mysql
Nach dem Extrahieren ist es auf diesem Weg auch möglich, die Dateien anzupassen, zum Beispiel die Datei „values.yaml“ von MySQL:
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.
cat mysql/values.yaml
Mit diesen sehr flexiblen Möglichkeiten lassen sich ähnliche oder gleiche Anwendungen auf Basis unterschiedlicher Releases und damit verschiedenen Einstellungen betreiben. Dadurch können bei Fehlern in neuen Releases auch Rollbacks auf ältere Releases über die Konfigurationsdateien durchgeführt werden.
Helm-Repositories steuern
Helm kann auch auf Repositories im Internet zugreifen.
(Bild: Joos / ArtifactHub)
Verschiedene Helm-Pakete können in einem Netzwerk auch in einem Helm-Repository gespeichert werden. Dabei kann es sich um eine einfache HTTP-Seite handeln. Neben eigenen Repositories kann Helm auch auf Repository-Seiten im Internet zugreifen, zum Beispiel auf ArtifactHub.io.
Die einzelnen Charts werden im Repository als *.tar.gz-Datei gespeichert. Zusätzlich verfügt ein Repository über eine Datei „index.yaml“. Neben dem Standard-Repository können in Helm auch weitere Repositories hinzugefügt werden. Dazu kann der Befehle „helm repo add“ zum Einsatz kommen. Um zum Beispiel das Repository von MySQL anzubinden und MySQL zu installieren, können folgende Befehle verwendet werden:
Anzeigen von weiterführenden Informationen zu einem Chart in den Helm-Repostories.
(Bild: Joos / Canonical)
Nicht mehr benötigte Repositories lassen sich aus Helm auch leicht wieder entfernen zum Beispiel mit „helm repo remove bitnami“. Um die Repos zu durchsuchen, kann zum Beispiel der Befehl „helm search hub mysql“ oder „helm search repo mysql“ verwendet werden. Auf dieser Basis können auch verschiedene andere Charts gefunden und installiert werden. Ausführlichere Informationen zu einem Chart liefert:
helm inspect hub mysql
Für erste Tests können auch bereits Anwendungen im Cluster installiert werden, zum Beispiel mit „helm install myrelease stable/redis“. Informationen zu Bereitstellungen lassen sich dann wiederum mit „helm ls“ anzeigen. Der Befehl verbindet sich mit dem Serverpart in Kubernetes und zeigt die entsprechenden Informationen an.
Helm im Kubernetes-Cluster installieren
Helm ist in wenigen Sekunden auf einer Verwaltungs-Arbeitsstation installiert.
Die Überprüfung der Installation von Helm kann anschließend mit „helm version“ erfolgen. Ist die Installation über diesen Weg nicht möglich, sind in der Dokumentation zu Helm zahlreiche Informationen dazu zu finden.
Bereitgestellte Anwendungen in Kubernetes überprüfen
Anzeigen von Informationen zu bereitgestellten Anwendungen.
(Bild: Joos / Canonical)
Wenn eine Anwendung über Chart in Kubernetes bereitgestellt wurde, lassen sich die neuen Pods und Container mit „kubectl“ anzeigen, zum Beispiel mit „kubectl get all“. Um ein Release wieder zu deinstallieren und damit ein Rollback durchzuführen, kann ebenfalls Helm zum Einsatz kommen. Eine Deinstallation erfolgt zum Beispiel mit „helm uninstall my-release“.
Fazit
Helm ermöglicht die schnelle Bereitstellung auch von komplexen Anwendungen mit nur einem Befehl. Durch die Paketierung und die Anbindung von verschiedenen Repositories wird die Installation von Anwendungen in Kubernetes genauso einfach, wie in Linux.