Einführung in Kubernetes Helm Charts

Einführung in Kubernetes Helm Charts

  • ITOps & DevOps
6 Minuten Lesezeit Aktualisiert Apr 10, 2020

Auf einen Blick: Kubernetes Helm ist ein Paketmanager, der die Anwendungsbereitstellung vereinfacht, indem wiederverwendbare Helm-Diagramme verwendet werden, die notwendige Ressourcen in einzelne Pakete bündeln. Dieses Tool steigert die Produktivität und reduziert die Komplexität der Bereitstellung von Anwendungen in Kubernetes.

  • Helm ermöglicht es Entwicklern, Anwendungen mit einem einzigen Befehl bereitzustellen.
  • Es vereinfacht die Verwaltung von Kubernetes-Anwendungen und -Umgebungen.

In diesem Beitrag werden wir ein mit Kubernetes verwendetes Tool namens Helm besprechen. Als Teil unseres mehrteiligen Kubernetes-Leitfadens wird dieser Artikel:

  • Erkunden Sie die Helm-Charts
  • Bestimmen Sie, wann und warum Sie Helm und Helm Charts verwenden
  • Geben Sie Anleitungen zum Einstieg bereit

Um weitere K8s-Themen zu erkunden, nutzen Sie das Navigationsmenü auf der rechten Seite.

Was ist Helm?

Einfach ausgedrückt ist Helm ein Paketmanager für Kubernetes. Helm ist das K8s-Äquivalent zu yum oder apt. Helm bereitet Diagramme bereit, die man sich als verpackte Anwendung vorstellen kann. Es ist eine Sammlung all Ihrer versionierten, vorkonfigurierten Anwendungsressourcen, die als eine Einheit bereitgestellt werden können. Sie können dann eine weitere Version des Diagramms mit einer anderen Konfiguration bereitstellen.

Helm hilft auf drei wichtige Weise:

  • Verbessert die Produktivität
  • Verringert die Komplexität der Bereitstellung von Microservices
  • Ermöglicht die Anpassung cloudnativer Anwendungen

Warum Helm verwenden?

Das Schreiben und Pflegen von Kubernetes-YAML-Manifesten  für alle erforderlichen Kubernetes-Objekte kann zeitaufwendig und mühsam sein. Für die einfachsten Deployments benötigen Sie mindestens 3 YAML-Manifeste mit duplizierten und fest kodierten Werten. Helm vereinfacht diesen Prozess und erstellt ein einziges Paket, das Ihrem Cluster präsentiert werden kann.

Helm ist eine Client/Server-Anwendung und war bis vor Kurzem darauf angewiesen, dass Tiller (der Helm-Server) in Ihrem Cluster bereitgestellt wird. Dies wird installiert, wenn Helm auf Ihrem Client-Rechner installiert oder initialisiert wird. Tiller erhält einfach Anfragen vom Client und installiert das Paket in Ihrem Cluster. Helm lässt sich leicht mit RPM von DEB-Paketen unter Linux vergleichen und bietet Entwicklern eine bequeme Möglichkeit, eine Anwendung an ihre Endnutzer zur Installation zu verpacken und auszusenden.

Sobald Sie Helm installiert und konfiguriert haben (Details unten), können Sie produktionsbereite Anwendungen von Softwareanbietern wie MongoDB, MySQL und anderen mit einem sehr einfachen Helm-Installationsbefehl in Ihren Kubernetes-Cluster installieren. Außerdem ist das Entfernen installierter Anwendungen in Ihrem Cluster genauso einfach wie deren Installation.

Was sind Helm-Charts?

Helm Charts sind einfach Kubernetes-YAML-Manifeste, die in einem einzigen Paket zusammengefasst werden können, das an Ihre Kubernetes-Cluster beworben werden kann. Sobald es gepackt ist, ist die Installation eines Helm Charts in Ihrem Cluster so einfach wie eine einzelne Helm-Installation, was die Bereitstellung containerisierter Anwendungen wirklich vereinfacht.

Beschreibung von Helm

Helm besteht aus zwei Teilen:

  • Der Client (CLI), der auf deinem lokalen Arbeitsplatz liegt.
  • Der Server (Tiller), der auf dem Kubernetes-Cluster lebt, um das Nötige auszuführen.

Die Idee ist, dass man die CLI nutzt, um die benötigten Ressourcen zu pushen, und Tiller stellt sicher, dass dieser Zustand tatsächlich der Fall ist, indem er Ressourcen aus der Tabelle erstellt, aktualisiert oder löscht. Um Helm vollständig zu verstehen, müssen wir uns mit drei Konzepten vertraut machen:

  • Chart: Ein Paket vorkonfigurierter Kubernetes-Ressourcen.
  • Release: Eine spezifische Instanz eines Diagramms, das mit Helm im Cluster bereitgestellt wurde.
  • Repository: Eine Gruppe veröffentlichter Karten, die anderen zur Verfügung gestellt werden können.

Vorteile von Helm

Entwickler mögen Helm-Charts aus vielen Gründen:

Steigert die Produktivität

Softwareingenieure sind gut darin, Software zu schreiben, und ihre Zeit wird am besten dafür genutzt. Mit Helm kann Software ihre Testumgebungen per Klick bereitstellen.

Ein Beispiel dafür wäre, dass ein Ingenieur eine SQL-Datenbank benötigt, um eine neue Funktion zu testen. Anstatt die Software lokal zu installieren und die erforderlichen Datenbanken und Tabellen zu erstellen, kann der Ingenieur einfach einen einzigen Helm Install-Befehl ausführen, um die Datenbank testbereit zu erstellen und vorzubereiten.

Reduziert Duplikation und Komplexität

Sobald das Diagramm einmal erstellt ist, kann es immer wieder und von jedem verwendet werden. Die Tatsache, dass du dasselbe Diagramm für jede Umgebung verwenden kannst, verringert die Komplexität bei der Erstellung von etwas für Entwicklung, Test und Produktion. Du kannst einfach dein Diagramm abstimmen und sicherstellen, dass es für jede Umgebung bereit ist. Und du hast den Vorteil, ein produktionsbereites Diagramm in der Entwicklung zu verwenden.

Glättet die K8S-Lernkurve

Es ist kein Geheimnis, dass die Lernkurve für Kubernetes und Container für den durchschnittlichen Entwickler lang ist. Helm vereinfacht diese Lernkurve: Entwickler benötigen kein vollständiges, detailliertes Verständnis der Funktion jedes Kubernetes-Objekts, um mit der Entwicklung und Bereitstellung von Containeranwendungen zu beginnen.

Helm lässt sich problemlos in CI/CD-Pipelines integrieren und ermöglicht es Softwareingenieuren, sich auf das Schreiben von Code zu konzentrieren – nicht auf das Bereitstellen von Anwendungen.

Vereinfacht die Einsätze

Helm Charts machen es einfach, überschreibbare Standardwerte in der values.yaml-Datei festzulegen, sodass Softwareanbieter oder Administratoren von Diagrammen eine Basiseinstellung definieren können. Entwickler und Nutzer von Diagrammen können diese Einstellungen bei der Installation ihrer Tabelle überschreiben, um ihren Bedürfnissen zu entsprechen. Wenn eine Standardinstallation erforderlich ist, ist keine Überschreibung erforderlich.

Anwendungen auf Kubernetes bereitzustellen ist kein unkomplizierter Prozess, da verschiedene Objekte eng miteinander verknüpft sind. Das erforderte spezifisches Wissen über diese Objekte und deren Funktionen, um erfolgreich bereitzustellen. Helm nimmt Ihnen die Komplexität ab, indem sie einen Großteil der harten Arbeit für Sie erledigt.

Beschreibung eines Helm-Diagramms

Helm hat eine bestimmte Struktur, wenn du ein neues Diagramm erstellst. Um es zu erstellen, führe "helm create YOUR-CHART-NAME" aus. Sobald dies erstellt ist, sollte die Verzeichnisstruktur wie folgt aussehen:

    YOUR-CHART-NAME/
 |
 |- .helmignore 
 | 
 |- Chart.yaml 
 | 
 |- values.yaml 
 | 
 |- charts/ 
 |
 |- templates/
  • .helmignore: Dieses enthält alle Dateien, die beim Paketieren des Diagramms ignoriert werden sollen. Ähnlich wie . gitignore, falls du mit Git vertraut bist.
  • Chart.yaml: Hier steckst du alle Informationen über das Chart, das du verpackst. Zum Beispiel deine Versionsnummer usw. Hier wirst du all diese Details einfügen.
  • Values.yaml: Hier definierst du alle Werte, die du in deine Vorlagen einfügen möchtest. Wenn du mit Terraform vertraut bist, stell dir das als Helms variable.tf Datei vor.
  • Diagramme: Hier speicherst du andere Diagramme, von denen dein Diagramm abhängt. Vielleicht rufst du ein anderes Diagramm an, das dein Diagramm braucht, damit es richtig funktioniert.
  • Vorlagen: In diesem Ordner legst du das eigentliche Manifest, das du deployest, zusammen mit der Grafik ein. Zum Beispiel könntest du eine nginx-Bereitstellung einsetzen, die einen Service, Configmap und Secrets benötigt. Du hast deine deployment.yaml, service.yaml, config.yaml und secrets.yaml alle im Template-Verzeichnis. Sie erhalten alle ihre Werte von values.yaml von oben.

Installation von Helm und Konfiguration von Helm-Diagrammen

Bereit, Helm zu nutzen? Die Installation und Konfiguration von Helm für Ihren K8S-Cluster ist ein sehr schneller und unkomplizierter Prozess – es gibt mehrere Helm-Versionen, die installiert werden können (v1/v2 und zuletzt v3), die alle nach den Bedürfnissen Ihrer Organisation konfiguriert werden können. Besuchen Sie die Startseite für Anleitungen zum Herunterladen und Installieren von Helm.

Das erste Helm-Diagramm zu beginnen ist so einfach wie das Installieren einiger Diagramme aus dem stabilen Repository, das auf GitHub verfügbar ist. Das Helm Stable Repository ist eine Sammlung kuratierter Anwendungen, die bereit sind, in deinem Cluster bereitgestellt zu werden.

Helm-Benutzer können eigene Charts schreiben oder Charts aus dem stabilen Repository abrufen:

Wenn Sie Ihre eigenen Helm-Diagramme für Ihre Anwendungen schreiben möchten, bietet Helm einen einfachen Entwicklerleitfaden zum Einstieg.

Helm vereinfacht die Softwarebereitstellung

Zusammenfassend nimmt Helm einen Großteil der Komplexität heraus, Software und eigene Anwendungen auf Kubernetes bereitzustellen. Es kann in wenigen Minuten installiert werden und du kannst Diagramme aus dem stabilen Repository im Nu bereitstellen. Eigene Diagramme zu schreiben ist ebenfalls ein unkomplizierter Prozess, erfordert jedoch Verständnis von Kubernetes-Objekten. Helm kann deine Entwickler effizienter arbeiten und ihnen die Werkzeuge geben, die sie benötigen, um ihren Code lokal zu testen.

Zusätzliche Ressourcen

Für mehr Informationen zu Kubernetes entdecken Sie diese Ressourcen:

Diese Beiträge sind meine eigenen und spiegeln nicht unbedingt die Position, Strategien oder Meinung von BMC wider.

Mehr aus ITOps & DevOps

Abonnieren Sie The Brief

Mit der Registrierung für dieses Angebot bestätigen Sie, dass Sie die Datenschutzrichtlinie von BMC gelesen und zugestimmt haben.

Danke

Sie haben The Brief abonniert
Das Briefing umfasst die Mainframe- und Enterprise-Orchestrierung – BMC AMI und Control-M – sowie die Analystenforschung, Kundeneinsätze und Events in beiden Bereichen.