Suchen

Definition: Paketmanager für Kubernetes und Cloud-native Apps Was ist Helm?

Helm ist ein Incubating Project der Cloud Native Computing Foundation. Es handelt sich um einen Package-Manager für Kubernetes, der das automatisierte Installieren, Verwalten und Updaten auf Kubernetes basierender Anwendungen ermöglicht. Ziel ist es die Arbeit mit Kubernetes und Container-Umgebungen zu vereinfachen und komfortabler zu machen.

Firmen zum Thema

Helm – Paketmanager für Kubernetes und Cloud-native Anwendungen.
Helm – Paketmanager für Kubernetes und Cloud-native Anwendungen.
(Bild: gemeinfrei (© Gerd Altmann / pixabay) / Pixabay )

Helm ist der Name eines Paketmanagers für Kubernetes-Anwendungen. Es handelt sich um ein Projekt der Cloud Native Computing Foundation (CNCF) im Status Incubating Project. Mithilfe von Helm lässt sich Software für Kubernetes einfacher bereitstellen, verwalten, installieren, updaten, managen und teilen. Der Prozess der Installation und Konfiguration der Software wird stark vereinfacht und beschleunigt. Entwicklungszeiten für neue Cloud-native Anwendungen verkürzen sich durch die Verwendung des Paketmanagers.

Vergleichbar ist seine grundsätzlichen Funktionsweise und Aufgabe mit Paketmanagern wie apt oder yum, die im Linux-Umfeld zur Installation von Linux-Anwendungen zum Einsatz kommen. Ursprünglich wurde Helm 2015 von einer später von Microsoft gekauften Firma mit dem Namen Deis entwickelt. Helm wurde anschließend ein Teil der Kubernetes-Community und andere Unternehmen wie Google beteiligten sich an der Entwicklung und Verbreitung des Paketmanagers. 2018 schließlich wurde Helm ein Incubating Projekt der CNCF.

Ziel von Helm ist es, die Arbeit mit Kubernetes und Container-Umgebungen für Cloud-native Anwendungen zu vereinfachen und komfortabler zu machen. Die Informationen über die Kubernetes-Anwendungen und die benötigten Komponenten inklusive ihrer Abhängigkeiten befinden sich in sogenannten Charts. Wichtige Bestandteile von Helm sind die Versionsverwaltung, das Organisieren der Repositories und Rollback-Funktionen. Die aktuellste Version ist Helm 3. Die Software ist Open Source und steht unter Apache License 2.0. Sie kann kostenlos über GitHub heruntergeladen werden.

Helm und die Cloud Native Computing Foundation (CNCF)

Helm wurde ursprünglich von Deis entworfen und entwickelt. Heute hat die Cloud Native Computing Foundation (CNCF) die Hoheit über die Entwicklung des Paketmanagers. Das Helm-Projekt hat bei der CNCF den Status eines Incubating Projects. Einige weitere Projekte wie gRPC, Harbor, CloudEvents, Linkerd, NATS, OpenTracing oder TiKV und andere befinden sich ebenfalls in diesem Projektstatus.

Die Cloud Native Computing Foundation ist ein Teilprojekt der Linux Foundation und hat sich zum Ziel gesetzt, das Cloud Native Computing und die Zusammenarbeit zwischen Herstellern, Entwicklern und Anwendern zu fördern. Cloud Native Computing hat sich weltweit etabliert und wird von großen Internet-Unternehmen wie eBay, Pinterest, Google oder Twitter und anderen intensiv genutzt.

Das Cloud Native Computing basiert auf Microservices und Containern. Diese Architektur bietet den Vorteil, dass sich neue Applikationen schneller realisieren lassen und die Möglichkeiten des Cloud Computings voll ausgeschöpft werden. Die Cloud Native Computing Foundation wurde 2015 gegründet und hatte sich ursprünglich zum Ziel gesetzt, die Verbreitung und Verwendung der Container-Technologie voranzutreiben.

Das Projekt Kubernetes zur Orchestrierung von Containern wurde damals von Google an die Cloud Native Computing Foundation gespendet. Mittlerweile zählt die Organisation mehrere hundert Mitglieder wie große Public Cloud Provider und Software-Hersteller beispielsweise Amazon, Google, IBM, Microsoft, Oracle, Red Hat oder VMware und viele andere.

Die Organisation begleitet zahlreiche Projekte, arbeitet Hersteller-neutral und setzt auf frei verfügbare Open-Source-Software wie Helm. Die Projekte sind in verschiedene Kategorien eingeteilt. Diese Kategorien sind:

  • CNCF Graduated Projects
  • CNCF Incubating Projects
  • CNCF Sandbox Projects
  • CNCF Member Projects/Products
  • Non-CNCF Member Projects/Products

Helm zählt wie gesagt zur Kategorie der CNCF Incubating Projects.

Grundsätzliches zu Kubernetes

Zum besseren Verständnis des Paketmanagers Helm im Folgenden ein kurzer Überblick zu den grundlegenden Aufgaben und Funktionen von Kubernetes. Bei Kubernetes handelt es sich um eine Open-Source-Plattform zur Orchestrierung von Containern. Sie wurde 2015 von Google entwickelt und später an die CNCF gespendet. Häufig wird auch die Abkürzung K8s verwendet. Ziel von Kubernetes ist es, das Einrichten, Betreiben, Verwalten, Warten und Skalieren von containerbasierten Anwendungen und Anwendungsumgebungen zu automatisieren und zu vereinfachen. Zahlreiche Container-Engines wie Docker werden ebenso unterstützt wie verschiedene Cloud-Computing Plattformen. Die Kubernetes-Plattform fasst mehrere Container-Einheiten zu Clustern zusammen. Die Cluster bestehen aus physischen oder virtuellen Nodes und arbeiten in einer Master-Slave-Architektur. Wie Helm steht Kubernetes unter Apache License 2.0 und ist frei verfügbar.

Die Gründe für den Einsatz eines Paketmanagers für Kubernetes

Grundsätzlich funktioniert K8s auch ohne einen Paketmanager. Es existieren jedoch zahlreiche Gründe, warum der Einsatz des Package-Managers Helm für Kubernetes sinnvoll ist. Im Folgenden ein Überblick der wichtigsten Gründe:

  • ein Paketmanager bringt Expertise in die Verwaltung der Kubernetes-Anwendungen und managt die Code-Abhängigkeiten der Software-Pakete
  • Software-Paketierungen lassen sich flexibel einsetzen und beliebig wiederverwenden. Entwicklungs- und Rolloutprozesse werden beschleunigt
  • der Paketmanager verwaltet anwendungsabhängige Konfigurationen und stellt sie schnell und einfach bereit
  • Installationen lassen sich mit einem Paketmanager schneller erledigen und sind weniger fehleranfällig als manuelle Installationen und Konfigurationen in Einzelschritten
  • Definitionen und Konfigurationen der Anwendungen lassen sich leichter anderen zur Verfügung stellen
  • öffentliche Repositories ermöglichen einen schnellen Einstieg in eine bestimmte Kubernetes-Anwendung

Die grundlegende Funktionsweise des Paketmanagers Helm

Was die grundsätzliche Arbeits- und Funktionsweise angeht, ähnelt Helm den Paketmanagern, die im Umfeld von Linux-Betriebssystemen wie yum oder apt zum Einsatz kommen. Helm sorgt dafür, dass die für Kubernetes-Anwendungen benötigten Komponenten an den richtigen Stellen installiert und passend konfiguriert werden. Eine zentrale Rolle in Helm übernehmen die sogenannte Charts. Es handelt sich bei den Charts um das Packaging-Format des Paketmanagers bestehend aus einer Sammlung von Daten und Anweisungen, mit denen die Kubernetes-Ressourcen und Abhängigkeiten der spezifischen Kubernetes-Anwendungen beschrieben sind.

In einem Chart lassen sich auch userspezifische Einstellungen speichern. Charts sind aus entfernten Repositories abrufbar oder direkt auf einem System speicherbar. Sie sind in YAML verfasst. Aufgabe der Charts ist die Bereitstellung der Informationen für die automatisierte Installation der Anwendungen, das Deployment der Anwendungen und das Updaten der Installationen. Über die integrierte Versionsverwaltung von Helm ist auch der Rollback auf ältere Anwendungsversionen möglich.

Bis einschließlich der Version Helm 2 basierte der Paketmanager auf den beiden Komponenten Helm-Client und Tiller-Server. Der Helm-Client hat die Aufgabe der lokalen Chart-Entwicklung und interagiert mit dem Tiller-Server, der letztendlich für die Interaktionen mit Kubernetes wie das Installieren oder Updaten von Charts verantwortlich ist. Ab Helm 3 ist Tiller nicht mehr notwendig. Seine Aufgaben übernimmt der Kubernetes-API-Server.

(ID:46347773)

Über den Autor