Helm 3 hat die Art und Weise revolutioniert, wie Teams Kubernetes-Anwendungen bereitstellen. Als offizieller Paketmanager für Kubernetes vereinfacht die Lösung die Verwaltung von Ressourcen erheblich – ähnlich wie apt für Ubuntu oder npm für Node.js. Statt zahlreiche YAML-Manifeste manuell zu bearbeiten und mit kubectl apply zu deployen, bündelt Helm diese in wiederverwendbare Charts. Ein Chart enthält alle notwendigen Kubernetes-Ressourcen, Konfigurationen und Abhängigkeiten, um eine Anwendung als Einheit zu installieren, zu aktualisieren oder zurückzusetzen.
Warum Helm die Kubernetes-Entwicklung beschleunigt
Die manuelle Verwaltung von Kubernetes-Konfigurationen ist fehleranfällig und zeitaufwendig. Helm 3 adressiert diese Herausforderungen durch:
- Vereinfachte Bereitstellung: Ein einzelner Befehl installiert eine vollständige Anwendung mit allen Abhängigkeiten – ohne manuelle
kubectl-Aufrufe. - Wiederverwendbare Vorlagen: Kubernetes-Manifeste werden als Go-Templates definiert, die dynamisch mit Variablen befüllt werden. Dies reduziert Duplikate und vereinfacht die Wartung.
- Versionierung und Rollbacks: Jede Installation wird als Release protokolliert. Im Fehlerfall lassen sich vorherige Versionen mit einem Befehl wiederherstellen.
- Modularität: Charts können Abhängigkeiten zu anderen Charts definieren, sodass komplexe Stacks wie Monitoring-Lösungen einfach zusammengesetzt werden können.
Die Architektur von Helm 3: Komponenten und ihr Zusammenspiel
Helm 3 besteht aus mehreren Kernkomponenten, die gemeinsam die Paketverwaltung ermöglichen:
1. Repository: Die zentrale Quelle für Charts
Ein Repository ist ein Speicherort, an dem Helm-Charts gehostet und geteilt werden – vergleichbar mit Docker Hub für Container. Bekannte Repositories sind:
- Die offizielle Helm-Chart-Registry
- Community-Repositories wie das von Bitnami oder Prometheus Community
- Private Repositories für unternehmensinterne Charts
Helm ermöglicht das Durchsuchen, Hinzufügen und Aktualisieren von Repositories mit einfachen Befehlen:
helm repo add prometheus
helm repo update2. Chart: Das Paketformat für Kubernetes-Anwendungen
Ein Chart ist ein Archiv, das alle Ressourcen einer Anwendung enthält – strukturiert in einer definierten Verzeichnisstruktur. Ein Chart besteht aus:
- `Chart.yaml`: Metadaten wie Name, Version und Beschreibung der Anwendung.
- `values.yaml`: Standardkonfigurationen, die später überschrieben werden können.
- `templates/`: Go-Template-Dateien, die Kubernetes-Manifeste generieren (z. B.
deployment.yaml,service.yaml). - `charts/`: Abhängigkeiten zu anderen Charts.
- `_helpers.tpl`: Wiederverwendbare Template-Hilfsfunktionen.
Ein Beispiel für die Verzeichnisstruktur eines Charts:
mychart/
├── Chart.yaml
├── values.yaml
├── templates/
│ ├── deployment.yaml
│ ├── service.yaml
│ └── _helpers.tpl
└── charts/3. Release: Eine laufende Instanz eines Charts
Jede Installation eines Charts in einem Kubernetes-Cluster erzeugt einen Release. Helm verfolgt die Historie jedes Releases, sodass Versionen verglichen und bei Bedarf zurückgesetzt werden können:
helm list
helm status my-releaseHelm-Befehle für den Einstieg: Ein Praxisleitfaden
Helm bietet eine intuitive Befehlszeile, mit der sich Charts verwalten lassen. Hier die wichtigsten Kommandos im Überblick:
Grundlegende Repository-Operationen
- Einen neuen Repo hinzufügen:
helm repo add bitnami - Repositories aktualisieren:
helm repo update- Nach Charts suchen:
helm search repo nginxInstallation, Aktualisierung und Verwaltung von Releases
- Ein Chart installieren:
helm install my-nginx bitnami/nginx --namespace webapp- Ein Release aktualisieren:
helm upgrade my-nginx bitnami/nginx --set replicaCount=3- Ein Release zurücksetzen:
helm rollback my-nginx 1- Ein Release deinstallieren:
helm uninstall my-nginxChart-Inspektion und Fehlerbehebung
- Release-Historie anzeigen:
helm history my-release- Standardwerte eines Charts anzeigen:
helm show values bitnami/nginx- Manifest-Dateien eines Releases anzeigen:
helm get manifest my-releasePraktische Übung: Ein einfaches Monitoring-Setup mit Helm
Um Helm in der Praxis kennenzulernen, installieren Sie das kube-prometheus-stack-Chart, das eine vollständige Monitoring-Lösung für Kubernetes bereitstellt. Die Schritte im Detail:
1. Repositories hinzufügen und aktualisieren
helm repo add prometheus-community
helm repo add grafana
helm repo update2. Chart installieren
Erstellen Sie einen dedizierten Namespace für das Monitoring:
kubectl create namespace monitoringInstallieren Sie die Chart mit einer spezifischen Version:
helm install monitoring prometheus-community/kube-prometheus-stack \
--namespace monitoring \
--version 65.1.13. Zugriff auf die Benutzeroberflächen
Nach der Installation der Pods können Sie die UIs von Grafana, Prometheus und Alertmanager per Port-Forwarding erreichen:
# Grafana (Standard-Login: admin / prom-operator)
kubectl port-forward -n monitoring svc/monitoring-grafana 3000:80
# Prometheus
kubectl port-forward -n monitoring svc/monitoring-kube-prometheus-prometheus 9090:9090
# Alertmanager
kubectl port-forward -n monitoring svc/monitoring-kube-prometheus-alertmanager 9093:90934. Release verwalten und bereinigen
- Release-Status prüfen:
helm status monitoring -n monitoring- Grafana-Replikate erhöhen:
helm upgrade monitoring prometheus-community/kube-prometheus-stack \
--namespace monitoring \
--set grafana.replicas=2- Release zurücksetzen:
helm rollback monitoring 1 -n monitoring- Installation bereinigen:
helm uninstall monitoring -n monitoring
kubectl delete namespace monitoringHelm-Charts selbst erstellen: Ein Leitfaden für Entwickler
Die Erstellung eines eigenen Charts beginnt mit dem Befehl:
helm create mychartDies generiert eine Grundstruktur mit allen notwendigen Dateien. Passen Sie die Dateien wie folgt an:
Chart.yaml: Metadaten definieren
apiVersion: v2
name: my-webapp
version: 1.0.0
description: Eine einfache Webanwendung mit Helm
appVersion: "1.0.0"values.yaml: Standardkonfigurationen anpassen
replicaCount: 2
image:
repository: nginx
tag: latest
service:
type: ClusterIP
port: 80Abhängigkeiten verwalten
Fügen Sie Abhängigkeiten zu anderen Charts hinzu:
dependencies:
- name: redis
version: "17.11.0"
repository: "Aktualisieren Sie die Abhängigkeiten mit:
helm dependency updateChart verpacken und teilen
Ein Chart kann als .tgz-Archiv exportiert werden:
helm package mychart/Dieses Archiv kann dann in ein Repository hochgeladen oder lokal installiert werden.
Fazit: Helm 3 als unverzichtbares Werkzeug für Kubernetes
Helm 3 hat sich als Standard für die Bereitstellung von Kubernetes-Anwendungen etabliert. Die Lösung vereinfacht nicht nur die Verwaltung komplexer Stacks, sondern ermöglicht auch eine reproduzierbare und versionierte Bereitstellung. Mit der Fähigkeit, Abhängigkeiten zu verwalten und Rollbacks durchzuführen, wird Helm zu einem unverzichtbaren Werkzeug für Entwickler und DevOps-Teams. Wer Kubernetes effizient nutzen möchte, kommt an Helm kaum vorbei – die Einstiegshürde ist gering, der Nutzen jedoch enorm.
KI-Zusammenfassung
Learn how Helm 3 simplifies Kubernetes deployments with charts, rollbacks, and templating. Master essential commands and best practices for streamlined DevOps workflows.