Helm — Paketmanager für Kubernetes

Praxis-Guide zu Helm — Charts installieren, Releases verwalten, Rollbacks fahren, Repositories pflegen und Templates rendern, mit Beispielen für jeden Schritt.

Helm ist der Paketmanager für Kubernetes: Statt Dutzende einzelner YAML-Manifeste von Hand zu pflegen, bündelst du eine komplette Anwendung in einem Chart und installierst sie mit einem einzigen Befehl. Jede Installation eines Charts erzeugt ein Release, das Helm versioniert verwaltet – du kannst es aktualisieren, bei Problemen per Rollback auf eine frühere Revision zurücksetzen und über Values pro Umgebung anpassen. Seit Helm 3 läuft alles clientseitig ohne den früheren Tiller-Dienst im Cluster, was Setup und Sicherheit deutlich vereinfacht. Charts beziehst du aus Repositories oder vom Artifact Hub. Dieser Guide zeigt dir die wichtigsten Kommandos für den Alltag, vom ersten Install bis zum eigenen Chart.

Installieren & Aktualisieren

helm install <name> <chart> — Installiert ein Chart unter einem Release-Namen.

helm install my-nginx bitnami/nginx

helm install <name> <chart> -f <values> — Installiert mit einer eigenen Values-Datei.

helm install my-app ./mychart -f values-prod.yaml

helm install <name> <chart> --set <key>=<value> — Installiert mit Inline-Überschreibungen einzelner Werte.

helm install my-app bitnami/nginx --set replicaCount=3

helm install <name> <chart> -n <namespace> — Installiert in einen bestimmten Namespace.

helm install my-app ./mychart -n production

helm install <name> <chart> --dry-run — Simuliert die Installation, ohne tatsächlich zu deployen.

helm install my-app ./mychart --dry-run

helm upgrade <name> <chart> — Aktualisiert ein Release auf eine neue Chart-Version.

helm upgrade my-app bitnami/nginx

helm upgrade --install <name> <chart> — Aktualisiert das Release oder installiert es, falls es noch nicht existiert (idempotent).

helm upgrade --install my-app ./mychart -f values.yaml

Releases auflisten & Status

helm list — Listet alle Releases im aktuellen Namespace auf.

helm list

helm list -A — Listet Releases über alle Namespaces hinweg auf.

helm list -A

helm status <name> — Zeigt den Status eines Releases.

helm status my-app

helm history <name> — Zeigt die Revisions-Historie eines Releases.

helm history my-app

helm get values <name> — Zeigt die für ein Release verwendeten Values.

helm get values my-app

helm get manifest <name> — Zeigt die gerenderten Kubernetes-Manifeste.

helm get manifest my-app

Rollback & Deinstallation

helm rollback <name> <revision> — Setzt ein Release auf eine frühere Revision zurück.

helm rollback my-app 2

helm uninstall <name> — Deinstalliert ein Release.

helm uninstall my-app

helm uninstall <name> --keep-history — Deinstalliert, behält aber die Release-Historie.

helm uninstall my-app --keep-history

Repositories

helm repo add <name> <url> — Fügt ein Chart-Repository hinzu.

helm repo add bitnami https://charts.bitnami.com/bitnami

helm repo update — Aktualisiert den lokalen Index der Chart-Repositories.

helm repo update

helm repo list — Listet alle konfigurierten Repositories auf.

helm repo list

helm repo remove <name> — Entfernt ein Repository.

helm repo remove bitnami

helm search repo <keyword> — Sucht Charts in den hinzugefügten Repositories.

helm search repo nginx

helm search hub <keyword> — Sucht Charts auf dem Artifact Hub.

helm search hub postgresql

Charts erstellen & rendern

helm create <name> — Erstellt das Grundgerüst für ein neues Chart.

helm create my-chart

helm template <name> <chart> — Rendert die Chart-Templates lokal, ohne zu deployen.

helm template my-app ./mychart -f values.yaml

helm lint <chart> — Prüft ein Chart auf Fehler.

helm lint ./mychart

helm package <chart> — Verpackt ein Chart in ein .tgz-Archiv.

helm package ./mychart

helm show values <chart> — Zeigt die Standard-Values eines Charts.

helm show values bitnami/nginx

helm dependency update <chart> — Lädt die Abhängigkeiten eines Charts herunter.

helm dependency update ./mychart

Fazit

Helm nimmt dir die Routine ab, ganze Anwendungen reproduzierbar in Kubernetes auszurollen: Aus losen Manifesten wird ein versioniertes Release, das du gezielt aktualisierst oder zurückrollst. Wenn du eigene Charts pflegst, lohnt es sich, früh auf saubere values.yaml-Strukturen und helm lint zu setzen – so bleiben deine Deployments auch über viele Umgebungen hinweg nachvollziehbar und wartbar.

Verwandte Kommandos

  • ddev – lokale Entwicklungsumgebungen für Container starten
  • docker – Container-Images bauen und ausführen
  • docker-compose – Multi-Container-Setups deklarativ definieren