Überblick
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.
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.
Funktionsweise von Helm
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
Red Hat Ressourcen
Was sind Helm Charts?
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 inChart.yaml
definieren und mitHelm Dependency Build
oderHelm 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.
Verwendung von Helm Charts
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.
Warum Helm? Vorteile von Helm Charts
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.
Der offizielle Red Hat Blog
Lernen Sie mehr über unser Ökosystem von Kunden, Partnern und Communities und erfahren Sie das Neueste zu Themen wie Automatisierung, Hybrid Cloud, KI und mehr.