EMZETT.
Login

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