Jump to section

Was ist Helm? Wie funktionieren Helm Charts?

URL kopieren

Die Anwendungsentwicklung in Kubernetes ist grundsätzlich komplex. Für eine bestimmte Anwendung müssen Sie möglicherweise Hunderte von Konfigurationen installieren, verwalten und aktualisieren. 

Helm vereinfacht diesen Prozess durch die Automatisierung der Distribution Ihrer Anwendungen mithilfe eines Paketformats, das als Helm Chart bezeichnet wird. Ähnlich der Verwaltung von RPM-Paketen für Red Hat® Enterprise Linux® durch Yum, managt Helm die Helm Charts für Kubernetes. Charts erhalten die Konsistenz zwischen Containern aufrecht und stellen gleichzeitig fest, wie spezifische Anforderungen für eine Anwendung erfüllt werden.

Als Paketmanager für Kubernetes ermöglicht Helm Ihnen die Anwendung desselben Konfigurations-Frameworks auf mehrere Instanzen mithilfe von Variablen-Overrides, die auf den Prioritäten für Ihre spezifische Konfiguration basieren. 

Helm logo

Fun Fact: Helm ist ein Open Source-Projekt, das von der Cloud Native Computing Foundation (CNCF) entwickelt wurde. Helm wurde erstmals 2015 auf der ersten KubeCon vorgestellt und ist mit Kubernetes zur CNCF migriert.

Helm beschreibt die Anwendung von der Definition bis zum Upgrade in der so genannten Helm Chart. Helm verwendet Diagramme (ähnlich wie eine Vorlage), um Ressourcen über die Kubernetes-API an Ihren Kubernetes-Cluster zu übergeben. 

Helm verwendet ein einziges Befehlszeilentool (CLI) mit der Bezeichnung helm, um die Helm Chart zu verwalten, zusammen mit einigen einfachen Befehlen, mit denen Sie Ihre Anwendung entwickeln, verwalten und konfigurieren können 

Helm Charts sind Kollektionen von Dateien, die die Ressourcen eines Kubernetes-Clusters beschreiben und sie zu einer Anwendung zusammenfassen. Sie verfügen über 3 grundlegende Komponenten:

  • Die Chart – Chart.yaml definiert die Metadaten der Anwendung wie Name, Version, Abhängigkeiten usw. 
  • Die Werte – values.yaml legen die Werte fest, mit denen Sie die Variablenersetzungen für die Wiederverwendung Ihrer Chart festlegen
    • Möglicherweise verwenden Sie auch ein JSON-Werteschema, das eine Struktur für die Wertedatei beschreibt, die bei der Erstellung dynamischer Formulare und der Validierung Ihrer Werteparameter hilfreich sein kann.
  • Das Vorlagenverzeichnis – templates/ beinhaltet Ihre Vorlagen und kombiniert sie mit den in der Datei values.yaml festgelegten Werten, um Manifeste zu erstellen
  • Im Charts-Verzeichnis – charts/ werden die Chart-Abhängigkeiten gespeichert, die Sie in Chart.yaml definieren und mit Helm Dependency Build oder Helm Dependency Update rekonstruieren.

Bei der Installation einer Helm Chart erstellen Sie auch eine Instanz der Chart, die als Release bezeichnet wird. Helm Charts bleiben mit neuen Releases erhalten, und Sie können problemlos frühere Versionen der Charts verwenden, um zu Ihrer bevorzugten Konfiguration zurückzukehren.

In dieser Folge von „Ask a Product Manager Office Hours“, in dem die Verwendung von Helm mit Red Hat OpenShift® diskutiert wird können Sie Helm Charts in Aktion sehen.

Nach der Installation der Helm-CLI haben Sie 2 Möglichkeiten: Sie können vorhandene Charts mit vordefinierten Ressourcen und Werten verwenden oder benutzerdefinierte Charts zum Verpacken Ihrer eigenen Anwendungsressourcen erstellen.

Verwendung bereits bestehender Charts

Bei der Verwendung bereits bestehender Charts müssen Sie zunächst das Helm-Repository zu Ihrem Helm-Client hinzufügen und dann zum Zeitpunkt der Installation bestimmte Konfigurationsparameter in Ihren Wertedateien festlegen.

Ihre Wertedateien sind die Basis für die Wiederverwendung von Helm Charts für individuelle Konfigurationen. Sie können sämtliche in values.yaml deklarierten Variablen ersetzen, und Helm erstellt die .values-Struktur, um diese Variablen in der Vorlage zu speichern. Dadurch können die Variablen in späteren Konfigurationen ersetzt werden. Sie können beliebig viele Wertedateien an eine Chart übergeben, Helm kombiniert sie und rendert sie zusammen, sodass es möglich ist, variable Dateien wiederzuverwenden.

Sobald Sie Ihre Wertekonfigurationen festgeschrieben oder übertragen haben, können Sie Updates, Upgrades und Management des Lifecycles Ihrer Anwendung mit den üblichen Helm-Befehlen ausführen.

Erstellung benutzerdefinierter Charts

Zum Verpacken von Anwendungen, die Sie in Ihrem Unternehmen oder innerhalb Ihrer spezifischen Workloads wiederverwenden möchten, müssen Sie möglicherweise eine benutzerdefinierte Chart erstellen. Dazu müssen Sie die Ressourcen Ihrer Anwendung im Verzeichnis templates/ der Chart definieren, Konfigurationsparameter durch Wertedateien festlegen sowie Metadaten und Dokumentationen zur Datei Chart.yaml hinzufügen.

Sie können die Chart dann mit Helm Package verpacken, sie in ein öffentliches oder privates Helm-Repository hochladen oder direkt verteilen.

Die Validated Patterns von Red Hat sind nützliche Beispiele für bestehende Helm Charts, die Sie auch anpassen können. Validated Patterns sind Helm Charts, die eine vollständige Workload beschreiben, die an einem Kundenstandort bereitgestellt wurde und eine Reihe von Anforderungen für Tests und Wartung erfüllt. Sie können direkt verwendet oder an die Anforderungen Ihrer eigenen Konfiguration angepasst werden.

Als Teil Ihrer allgemeinen GitOps-Strategie ist Helm ein leistungsstarkes Tool, das Ihnen Agilität, Sicherheit und Konsistenz in vielen verschiedenen Umgebungen bietet. In Verbindung mit einem Multi Cloud-Kommunikationstool wie Red Hat Service Interconnect ist Helm besonders hilfreich in komplexen Deployments, die mehrere Microservices bei mehreren Cloud-Anbietern nutzen.

Für Kubernetes-Entwicklerinnen und -Entwickler sind Helm Charts eine einfache, schnelle und unkomplizierte Möglichkeit, Anwendungen zu starten, die dann wiederverwendet oder mit anderen geteilt werden können.  

Für Systemadministrations- und IT-Operations-Teams bietet Helm ein konsistentes Tool für das Implementieren und Optimieren von CI/CD (Continuous Integration/Continuous Development) in ihren Anwendungs-Pipelines. Dieses Tool sorgt für Flexibilität und Konsistenz.

Wenn Sie das gesamte Verfahren ausprobieren möchten, von der Erstellung einer Chart bis hin zur Konfiguration von Werten und dem Deployment der Chart, sehen Sie sich die folgenden Tutorials von Red Hat® Developer an.

Weiterlesen

ARTIKEL

Was ist DevSecOps?

Wenn Sie die Agilität und Reaktionsfähigkeit von DevOps vollständig ausschöpfen möchten, muss die IT-Sicherheit im gesamten Lifecycle Ihrer Apps eine Rolle spielen.

ARTIKEL

Was ist CI/CD?

CI/CD sorgt für eine kontinuierliche Automatisierung und Überwachung über alle Phasen des App-Lifecycles hinweg, von der Integration und Tests bis hin zur Bereitstellung und Implementierung.

ARTIKEL

Was ist ein DevOps-Ingenieur?

DevOps-Ingenieure besitzen verschiedene besondere Fähigkeiten und Kenntnisse, die für eine bessere Zusammenarbeit, mehr Innovationen und kulturelle Verschiebungen innerhalb einer Organisation sorgen können. 

Mehr über DevOps erfahren

Produkte

Ein fokussierter Intensiv-Workshop mit Red Hat Experten, bei dem Sie lernen, eine agile Methodik und Open Source-Tools zu verwenden, um die geschäftlichen Probleme Ihres Unternehmens anzugehen.

Interaktionen mit unseren strategischen Beratern, die sich ein Gesamtbild von Ihrem Unternehmen machen, Ihre Herausforderungen analysieren und Ihnen helfen, diese mit umfassenden, kosteneffektiven Lösungen zu meistern.

Ressourcen