Helm: Pakete für Kubernetes
Kurz: Ein Paketmanager für Kubernetes, der viele zusammengehörige YAML-Dateien als „Chart“ bündelt und mit einstellbaren Werten installiert.
Genauer: Eine Anwendung auf Kubernetes besteht oft aus vielen Ressourcen: Deployment, Service, ConfigMap, Ingress und mehr. Helm fasst sie zu einem Chart zusammen. Mit helm install wird das Chart eingespielt, wobei Werte wie Image-Version oder Anzahl der Replikas einfach angepasst werden können.
Im Detail
Begriffe
- Chart: Paket mit Vorlagen (Templates) und Standardwerten (
values.yaml). - Release: eine installierte Instanz eines Charts mit einem Namen.
- Repository: Sammlung veröffentlichter Charts (zum Beispiel für Datenbanken oder Monitoring).
- Values: Einstellungen, die die Vorlagen ausfüllen.
Typische Befehle
helm repo add bitnami https://charts.bitnami.com/bitnami
helm install meine-db bitnami/postgresql --set auth.postgresPassword=geheim
helm upgrade meine-db bitnami/postgresql -f meine-werte.yaml
helm rollback meine-db 1
helm uninstall meine-db
upgrade ändert ein bestehendes Release, rollback stellt eine frühere Version wieder her. Im Echtbetrieb gehören Passwörter nicht in die Kommandozeile.
Vorlagen
Templates nutzen die Go-Template-Sprache. Ein Auszug:
replicas: {{ .Values.replicaCount }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"So entsteht aus einem Chart durch andere Werte eine Variante für Test und eine für Produktion.
Alternativen
Kustomize (in kubectl eingebaut) arbeitet ohne Vorlagensprache mit Überlagerungen der YAML-Dateien. Viele Teams kombinieren beides oder nutzen GitOps-Werkzeuge, die Helm-Charts selbst anwenden. Charts aus fremden Quellen sollte man vor dem Einsatz prüfen, da sie Rechte im Cluster anlegen können.
Siehe auch: Kubernetes-Grundlagen, GitOps, Infrastructure as Code