Helm vs. kubectl apply
kubectl apply -f:
Einzelne YAML-Manifeste anwenden
Kein Versionstracking
Kein einfacher Rollback
Keine templating-Logik
Helm:
Charts = Pakete aus vielen YAMLs + Templates
values.yaml anpassen statt YAML kopieren
helm upgrade / helm rollback
Release-History
80.000+ Charts auf Artifact Hub
Helm installieren
# Linux
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
# Homebrew
brew install helm
# Version pruefen
helm version
# Bash-Completion
source <(helm completion bash)
echo "source <(helm completion bash)" >> ~/.bashrc
Charts suchen und installieren
# Beliebte Repos hinzufuegen
helm repo add stable https://charts.helm.sh/stable
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
# Charts suchen
helm search repo nginx
helm search hub wordpress --max-col-width 80
# Chart-Informationen
helm show chart bitnami/wordpress
helm show values bitnami/wordpress
# Installieren
helm install my-wordpress bitnami/wordpress --namespace wordpress --create-namespace --set wordpressUsername=admin --set wordpressPassword=sicherespasswort --set mariadb.auth.rootPassword=dbpasswort
# Status
helm list -A
helm status my-wordpress -n wordpress
values.yaml anpassen
# Default-Values holen
helm show values bitnami/nginx > nginx-values.yaml
# Anpassen in nginx-values.yaml:
# service:
# type: ClusterIP
# replicaCount: 3
# resources:
# requests:
# memory: 128Mi
# cpu: 100m
# Mit custom values installieren
helm install my-nginx bitnami/nginx -f nginx-values.yaml --namespace nginx --create-namespace
# Upgrade mit neuen values
helm upgrade my-nginx bitnami/nginx -f nginx-values.yaml --namespace nginx
# Rollback auf vorherige Version
helm history my-nginx -n nginx
helm rollback my-nginx 1 -n nginx
Eigenes Chart erstellen
# Chart Grundstruktur erstellen
helm create meine-app
# Struktur:
# meine-app/
# Chart.yaml # Metadaten
# values.yaml # Default-Werte
# templates/ # Kubernetes-YAML-Templates
# deployment.yaml
# service.yaml
# ingress.yaml
# _helpers.tpl # Template-Hilfsfunktionen
# Chart debuggen (kein Apply)
helm template meine-app ./meine-app --debug
# Chart linting
helm lint ./meine-app
# Chart installieren
helm install meine-app ./meine-app -n production --create-namespace
# Chart als Archiv verpacken
helm package ./meine-app
# → meine-app-0.1.0.tgz
FAQ
Sollte ich Helm oder Kustomize verwenden?
Helm fuer Pakete von Drittanbietern (nginx, prometheus, cert-manager). Kustomize fuer eigene Anpassungen von YAML-Manifesten. Kombinierbar: Helm fuer Basis, Kustomize fuer Patches.
Fazit
Helm ist unverzichtbar fuer Kubernetes-Umgebungen: 80.000+ fertige Charts, templating und Release-Management machen das Deployment von Anwendungen dramatisch einfacher.
Kubernetes und Helm fuer KMU in Heidelberg, Mannheim und der Rhein-Neckar-Region. Beratung anfragen.