Helm ist ein Paketmanager für Kubernetes für die einfache Bereitstellung und Verwaltung von Anwendungen.
Anstatt Dutzende separater Konfigurationsdateien manuell zu erstellen und zu pflegen, bündelt Helm alles, was für eine Anwendung benötigt wird, in einem einzigen, wiederverwendbaren Paket, der sogenannten Helm Chart.
Die Lösung trägt dazu bei, die Arbeit mit Kubernetes zu erleichtern – der Open-Source-Plattform, die Bereitstellung und den Betrieb von containerisierten Anwendungen auf mehreren Servern automatisiert. Kubernetes ist zwar leistungsstark, erfordert jedoch häufig umfangreiche und detaillierte Konfigurationen in YAML-Dateien, in denen festgelegt wird, wie Anwendungen ausgeführt werden sollen, wie sie sich verbinden und welche Ressourcen sie benötigen.
Die manuelle Verwaltung dieser Konfigurationen durch Entwickler, Systemadministratoren und DevOps-Techniker, insbesondere in mehreren Umgebungen wie Entwicklung, Test und Produktion, kann schnell zeitaufwändig und fehleranfällig werden. Helm begegnet dieser Herausforderung durch die Einführung von Standardisierung, Wiederverwendbarkeit und Versionskontrolle mit Funktionen wie Rollbacks und umgebungsspezifische Anpassungen.
Branchen-Newsletter
Bleiben Sie mit dem Think-Newsletter über die wichtigsten – und faszinierendsten – Branchentrends in den Bereichen KI, Automatisierung, Daten und darüber hinaus auf dem Laufenden. Weitere Informationen finden Sie in der IBM Datenschutzerklärung.
Ihr Abonnement wird auf Englisch geliefert. In jedem Newsletter finden Sie einen Abmeldelink. Hier können Sie Ihre Abonnements verwalten oder sich abmelden. Weitere Informationen finden Sie in unserer IBM Datenschutzerklärung.
Bevor Sie sich in Helm vertiefen, ist es wichtig, Containerisierung, die Grundlage von Kubernetes und moderne cloudnative Tools zu verstehen.
Bei der Containerisierung wird eine Anwendung mit allem, was sie zum Ausführen benötigt – Code, Bibliotheken und Konfiguration – in einer leichten, portablen Einheit namens Container verpackt. Diese Funktion ermöglicht die konsistente Ausführung von Software in verschiedenen Umgebungen, vom Laptop eines Entwicklers bis hin zu einer Cloud-Umgebung für die Produktion.
Container basieren typischerweise auf Linux und sind schneller und effizienter als herkömmliche virtuelle Maschinen. Sie eignen sich auch gut für Microservices-Architekturen, bei denen Anwendungen in kleinere, unabhängig einsetzbare Komponenten aufgeteilt werden, die je nach Bedarf skaliert werden können. In Kubernetes werden diese containerisierten Workloads auf einem Cluster ausgeführt – einer Gruppe von Maschinen, die aus einer Steuerebene besteht, die das System verwaltet, und Arbeitsknoten, die Anwendungen in der gesamten Infrastruktur ausführen.
Docker, eine Open-Source-Plattform, die 2013 der Öffentlichkeit vorgestellt wurde, ist das am weitesten verbreitete Tool zur Containerisierung. Heute ist die Containerisierung ein zentraler Bestandteil des cloudnativen Open-Source-Ökosystems und ermöglicht eine schnellere Entwicklung, zuverlässigere Bereitstellungen und eine größere betriebliche Flexibilität.
Kubernetes orchestriert Container in großem Maßstab, indem es die Bereitstellung, Skalierung und Ressourcenverwaltung automatisiert. Die direkte Verwaltung von Kubernetes-Konfigurationen kann jedoch komplex und fehleranfällig sein. Helm spielt hier eine Schlüsselrolle, indem es die Bereitstellung und Wartung von containerisierten Anwendungen vereinfacht, standardisiert und rationalisiert.
Deis (später von Microsoft übernommen) entwickelte Helm 2016 als eines der ersten Tools zur Vereinfachung der Kubernetes-Anwendungsverwaltung in Anwendungen. Im Jahr 2018 spendete das Team das Projekt an die cloudnativ Computing Foundation (CNCF), die es 2020 als vollständiges CNCF-Projekt abschloss.
Die Open-Source-Entwicklung von Helm wird aktiv auf GitHub gepflegt, wo Mitwirkende aus der ganzen Welt an der Weiterentwicklung arbeiten. Die offizielle Website, helm.sh, bietet umfassende Dokumentation (Dokumente), Downloads und Ressourcen, die Benutzern den Einstieg erleichtern und auf dem Laufenden bleiben.
Ein wichtiger Meilenstein war die Veröffentlichung von Helm 3 Ende 2019. In dieser Version wurde die Tiller-Komponente aus Helm 2 entfernt, wodurch die Sicherheit verbessert und die Zugriffskontrolle durch direkte Interaktion mit den Kubernetes-Anwendungsprogrammierschnittstellen (API) vereinfacht wurde. Helm 3 verbesserte auch die Upgrade-Prozesse, die Verwaltung von Abhängigkeiten und die Unterstützung von Bibliotheksdiagrammen, was die Lösung sicherer, flexibler und benutzerfreundlicher in Unternehmen macht.
Helm wurde im gesamten Cloud-nativen Ökosystem sehr gut angenommen. Jüngsten CNCF-Umfragen zufolge ist Helm der bevorzugte Kubernetes-Paketmanager, mit einer Akzeptanz von 75 % bei den Unternehmen, die Kubernetes einsetzen.1
Artifact Hub (das den ursprünglichen Helm Hub ersetzt hat) beherbergt Tausende von Diagrammen, und große Softwareanbieter stellen routinemäßig Helm-Diagramme als ihre primäre Kubernetes-Verteilungsmethode bereit.
Helm vereinfacht die Anwendungsverwaltung von Kubernetes, indem Kubernetes-Manifeste (Konfigurationsdateien), Konfigurationsvorlagen und Metadaten in wiederverwendbaren Paketen, den sogenannten Helm-Diagrammen, gebündelt werden. Diese Diagramme enthalten alle Spezifikationen, die erforderlich sind, um die entsprechenden YAML-Dateien für Kubernetes-Ressourcen, wie Bereitstellungen, Services, Ingress-Controller, PersistentVolumes, ConfigMaps und Secrets, zu generieren, aus denen eine Anwendung besteht.
„YAML“ ist das Akronym für „YAML Ain't Markup Language“ oder „Yet Another Markup Language“. Es handelt sich um ein menschenfreundliches Datenformat, das zum Schreiben von Konfigurationsdateien verwendet wird und eine klare, strukturierte Möglichkeit bietet, Informationen darzustellen, die sowohl Personen als auch Programme lesen können.
Wenn ein Diagramm installiert wird, wendet Helm diese Ressourcen automatisch auf den Ziel-Kubernetes-Cluster an, mit integrierter Unterstützung für Versionierung, Rollbacks und Abhängigkeitsverwaltung.
Helm fungiert in erster Linie als clientseitiges Tool, das direkt mit dem Kubernetes-API-Server interagiert, um Anwendungs-Bereitstellungen zu verwalten:
Ein Helm-Client ist ein Befehlszeilentool (CLI), das mit Kubernetes-Clustern interagiert und Diagramme und Versionen verwaltet. Dieses Tool ist das, was Entwickler und Betreiber tagtäglich verwenden. Im Gegensatz zu kubectl, dem nativen Befehlstool von Kubernetes, verwaltet Helm ganze Anwendungen statt einzelner Komponenten.
Ein Helm-Diagramm ist ein Paketformat, das alle Ressourcendefinitionen enthält, die für die Ausführung einer Anwendung auf Kubernetes erforderlich sind. Diagramme enthalten Vorlagen, Standardkonfigurationswerte und Metadaten.
Eine Helm-Version ist eine Instanz eines Diagramms, das in einem Kubernetes-Cluster ausgeführt wird. Jedes Release hat einen eindeutigen Namen und kann unabhängig verwaltet werden.
Helm-Repositorys sind Sammlungen von Charts, die gemeinsam genutzt und verteilt werden können, ähnlich wie App-Speicher oder Paketbibliotheken in anderen Ökosystemen.
Ein Helm Chart ist eine Sammlung von Dateien, die eine Reihe miteinander verbundener Kubernetes-Ressourcen beschreiben. Die Chart-Struktur umfasst:
Kubernetes-Entwickler, Systemadministratoren und andere IT-Betriebsexperten (ITOps) in Unternehmen verwenden Helm, um folgende Aufgaben zu erledigen:
Helm reduziert die betriebliche Komplexität im Zusammenhang mit der Verwaltung von Kubernetes-Bereitstellungen erheblich. Durch die Automatisierung und Standardisierung des Konfigurationsmanagements optimiert Helm Workflows, die andernfalls eine komplexe und fehleranfällige manuelle YAML-Bearbeitung erfordern würden.
Diese Effizienz wird besonders wichtig, wenn Unternehmen ihre cloudnative Umgebungen skalieren und neue Technologien wie Workload für künstliche Intelligenz (KI) und maschinelles Lernen (ML) sowie Edge Computing einführen.
Die integrierten Rollback-Funktionen von Helm bieten ein wichtiges Sicherheitsnetz für die Produktion-Bereitstellungen. Wenn ein Upgrade fehlschlägt oder Probleme verursacht, können Teams mit einem einzigen Befehl sofort zur vorherigen Arbeitsversion zurückkehren. Diese Funktion reduziert die mittlere Wiederherstellungszeit (MTTR) bei einsatzbedingten Vorfällen, was eine wesentliche Voraussetzung für hochverfügbare Anwendungen und Echtzeit-KI-Inferenzdienste ist.
Helm-Diagramme und -Schemata können wie jedes andere Software-Artefakt versioniert und im Code überprüft werden. Dieser Ansatz bietet Prüfpfade für die Bereitstellungen und stellt sicher, dass Änderungen die ordnungsgemäßen Genehmigungsprozesse durchlaufen. Viele Unternehmen verwenden Helm mit GitOps-Workflows zur Verbesserung der Governance und ermöglichen es Unternehmen, die Compliance-Anforderungen regulierter Branchen zu erfüllen, die cloudnative Architekturen verwenden.
Durch die Abstraktion der Komplexität von Kubernetes ermöglicht Helm Entwicklern, sich auf die Anwendungslogik statt auf die Infrastrukturkonfiguration zu konzentrieren. Teams können Bereitstellungen selbst bedienen, die vorab genehmigte Diagramme verwenden, wodurch die Abhängigkeiten von Plattformteams reduziert und die Entwicklungsgeschwindigkeit beschleunigt werden, die für wettbewerbsfähige AI- und digitale Transformation-Initiativen erforderlich ist.
Unternehmen nutzen Helm in der Regel für die Verwaltung benutzerdefinierter Anwendungen in Entwicklungs-, Staging- und Produktionsumgebungen. Ein einzelnes Diagramm kann mit unterschiedlichen Ressourcenlimits, Replikaten und Funktionflags für jede Umgebung konfiguriert werden.
Die Installation und Verwaltung von Software von Drittanbietern, z. B. Datenbanken, Überwachungstools oder CI/CD-Komponenten, ist mit Helm einfacher. Anstatt einer komplexen Installationsdokumentation zu folgen, können Teams produktionsbereite Konfigurationen mit einem einzigen Helm-Installationsbefehl installieren.
Helm überzeugt in Szenarien, in denen dieselbe Anwendung mehrfach mit unterschiedlichen Konfigurationen in separaten Namespaces bereitgestellt werden muss. SaaS-Plattformen nutzen beispielsweise häufig Helm, um kundenspezifische Bereitstellungen von Anwendungen zu verwalten.
Helm lässt sich nahtlos in Pipelines zur kontinuierlichen Integration und kontinuierlichen Bereitstellung integrieren und dient als Bereitstellungsmechanismus in automatisierten Delivery-Pipelines. E-Commerce-Plattformen verwenden Helm, um die saisonale Skalierung zu verwalten, indem sie andere Anwendungen in Zeiten mit hohem Traffic schnell bereitstellen und in Zeiten mit geringem Andrang herunterskalieren. Das alles wird über Helm verwaltet.
Helm ist eine ideale Lösung für die Verwaltung von Workloads aus den Bereichen künstliche Intelligenz (KI) und maschinelles Lernen (ML), die oft komplexe Konfigurationen erfordern, einschließlich GPU-Ressourcen, speziellem Speicher, Komponenten und Überwachungssystemen. Unternehmen verwenden Helm Charts, um die Bereitstellung von ML-Pipelines zu standardisieren und konsistente Umgebungen für Trainings- und Inferenz-Workloads in Entwicklung- und Produktions-Clustern sicherzustellen.
Kustomize ist eine weitere weit verbreitete Lösung für die Verwaltung von Kubernetes-Konfigurationen, verfolgt jedoch einen anderen Ansatz als Helm. Während Helm Vorlagen verwendet, um Manifest zu generieren, verwendet Kustomize einen deklarativen Ansatz mit Patches und Overlays, um Basiskonfigurationen zu ändern.
Kustomize ist einfacher und erfordert eine geringere Lernkurve, aber es fehlen die Paketverwaltungsfunktionen, Versionssteuerung und Rollback-Funktionen von Helm. Viele Unternehmen nutzen beide Tools zusammen, wobei Kustomize Konfigurationsvarianten verwaltet und Helm den gesamten Anwendungslebenszyklus verwaltet.
Kubernetes-Operatoren sind anwendungsspezifische Controller, die Kubernetes-APIs erweitern, um komplexe Anwendungen zu verwalten. Während sich Helm auf die Paketierung und Bereitstellung konzentriert, kümmern sich die Operatoren um das laufende Lebenszyklusmanagement. Sie können anwendungsspezifische Betriebsaufgaben wie Backups, Skalierung und Upgrades übernehmen.
Helm ist besser geeignet für die allgemeine Anwendungs-Bereitstellung und einfachere Workloads. Gleichzeitig zeichnen sich die Betreiber durch die Verwaltung zustandsabhängiger Anwendungen mit komplexen betrieblichen Anforderungen aus. Viele Unternehmen setzen Helm ein, um die Operatoren selbst bereitzustellen.
Optimieren Sie die Anwendungsverwaltung und erhalten Sie KI-generierte Erkenntnisse, auf die Sie reagieren können, indem Sie IBM Concert verwenden, eine generative KI-gestützte Technologieautomatisierungsplattform.
Verbinden Sie die Full Stack Observability mit dem automatisierten Application Resource Management, um Leistungsprobleme zu beheben, bevor sie sich auf die Customer Experience auswirken.
Entdecken Sie hochinnovative Services von IBM Consulting für die Verwaltung komplexer Hybrid- und Multicloud-Umgebungen.
1. Jährliche Umfrage von CNCF 2023, Cloud Native Computing Foundation, 2023