Wer einen Kubernetes-Cluster betreibt, stößt früher oder später auf eine Frage: Wie deployt man komplexe Anwendungen mit vielen Kubernetes-Objekten – Deployments, Services, ConfigMaps, Secrets, Ingress-Rules – effizient und reproduzierbar? Die Antwort ist Helm. Helm ist der De-facto-Standard-Paketmanager für Kubernetes und macht genau das: Er bündelt Kubernetes-Manifeste in wiederverwendbare Pakete, sogenannte Charts, und ermöglicht es, diese mit anpassbaren Konfigurationswerten zu deployen.
Auf K3S ist Helm keine optionale Ergänzung, sondern ein integraler Bestandteil des Ökosystems. Viele Anwendungen, die in Produktivumgebungen laufen – von Ingress-Controllern über Monitoring-Lösungen bis hin zu Datenbanken – werden bevorzugt oder ausschließlich über Helm deployiert. Die Kombination aus K3S und Helm ermöglicht es, mit wenigen Befehlen produktionsreife Software aufzusetzen, die andernfalls Stunden an Konfigurationsarbeit erfordern würde.
Was ist Helm und warum ist es für K3S relevant?
Helm funktioniert nach dem Prinzip von Paketmanagern, wie Sie sie vielleicht von Linux-Distributionen kennen: apt für Debian/Ubuntu, yum für Red Hat/CentOS. Genau wie diese Paketmanager Applikationen aus Repositories herunterladen und installieren, verwaltet Helm Kubernetes-Anwendungen aus sogenannten Helm-Charts.
Ein Helm-Chart ist ein gebündeltes Paket, das alle Kubernetes-Manifeste enthält, die eine Anwendung benötigt – strukturiert als templates mit Platzhaltern. Diese Platzhalter werden beim Deployment durch individuelle Konfigurationswerte – sogenannte Values – ersetzt. Das ermöglicht es, ein und dasselbe Chart in verschiedenen Umgebungen zu verwenden, ohne die Kubernetes-Manifeste selbst zu ändern.
Für K3S ist Helm aus mehreren Gründen besonders relevant:
- Reproduzierbarkeit: Ein Chart deployt exakt dieselbe Konfiguration, unabhängig davon, wer es ausführt oder auf welchem Cluster es läuft.
- Versionierung: Jedes Deployment ist eine Helm-Release mit einer Versionsnummer. Upgrades und Rollbacks sind einen einzigen Befehl entfernt.
- Parametrisierung: Charts akzeptieren Konfigurationswerte, mit denen Sie Ressourcen, Replicas, Storage-Klassen oder Feature-Flags anpassen.
- Gemeinschaft: Das offizielle Artifact Hub enthält tausende vorgefertigte Charts für praktisch jede denkbare Anwendung.
Helm installieren
Helm wird als einzelnes Binärfile installiert – genau wie K3S. Es gibt keinen verteilten Dienst, keine Datenbank, keinen zusätzlichen Server. Helm ist ein Client-Tool, das auf dem lokalen Rechner oder auf einem Jump-Host läuft und über die Kubernetes-API mit dem Cluster kommuniziert.
Installation auf Linux und macOS
Die empfohlene Methode ist das offizielle Installationsskript. Führen Sie folgenden Befehl aus:
1 curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
Das Skript lädt die aktuelle Helm-Binary herunter, verschiebt sie nach
1 | /usr/local/bin/helm |
1
2 helm version
# Ausgabe: version.BuildInfo{Version:"v3.17.4", GitCommit:"xxxxxxx", GitTreeState="clean"}
Die Versionsnummer sollte im Format
1 | v3.X.Y |
Charts hinzufügen: Repositories verwalten
Helm-Charts werden aus sogenannten Repositories geladen. Ein Repository ist ein HTTP-Server, der einen Index mit allen verfügbaren Charts und Versionen bereitstellt. Ähnlich wie bei apt oder yum müssen Repositories zunächst zur Helm-Installation hinzugefügt werden, bevor Charts aus ihnen installiert werden können.
Erstes Deployment: Nginx per Helm deployen
Lassen Sie uns den gesamten Workflow an einem einfachen, aber vollständigen Beispiel durchspielen: Wir deployen einen Nginx-Webserver über Helm auf unserem K3S-Cluster.
Upgrades und Rollbacks
Das wirkliche Stärke von Helm zeigt sich bei Updates und beim Zurücksetzen von Änderungen. Anstatt manuell Manifeste zu editieren, machen Sie eine Konfigurationsänderung, starten ein Upgrade – und Helm kümmert sich um den Rest.
Praxis: Monitoring mit Prometheus per Helm auf K3S deployen
Lassen Sie uns Helm an einem praxisnahen Beispiel durchspielen: Wir deployen Prometheus und Grafana auf den K3S-Cluster, um die Infrastruktur zu überwachen. Dies ist einer der häufigsten Anwendungsfälle für Helm in Produktivumgebungen.
Charts deinstallieren
1
2
3
4
5 # Eine Release deinstallieren (alle zugehörigen Ressourcen werden gelöscht)
helm uninstall mein-nginx
# Deinstallation aus einem bestimmten Namespace
helm uninstall mein-nginx -n monitoring
Der Befehl
1 | helm uninstall |
1 helm uninstall mein-nginx --keep-history
Mit
1 | --keep-history |
Helm-Charts erstellen: Eigene Charts für K3S
Für eigene Anwendungen, die Sie regelmäßig deployen, können Sie eigene Helm-Charts erstellen. Das gibt Ihnen die volle Kontrolle über die Konfigurierbarkeit und ermöglicht es, interne Anwendungen als wiederverwendbare Pakete zu verpacken.
1
2
3
4
5
6
7
8
9 # Neues Chart erstellen
helm create mein-chart
# Verzeichnisstruktur:
# mein-chart/
# Chart.yaml # Chart-Metadaten
# values.yaml # Standard-Konfigurationswerte
# templates/ # Kubernetes-Manifeste als Templates
# .helmignore # Dateien, die nicht ins Chart gehören
Die Templates in
1 | templates/ |
1 | values.yaml |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 # templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}
labels:
app: {{ .Chart.Name }}
spec:
replicas: {{ .Values.replicaCount }}
selector:
matchLabels:
app: {{ .Chart.Name }}
template:
metadata:
labels:
app: {{ .Chart.Name }}
spec:
containers:
- name: {{ .Chart.Name }}
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
ports:
- containerPort: {{ .Values.service.port }}
Um ein Chart zu testen, bevor es deployt wird:
1
2
3
4
5 helm lint mein-chart
# Prüft die Chart-Struktur auf Fehler
helm template mein-chart -f mein-chart/values.yaml
# Rendert alle Templates lokal
Wir unterstützen Sie bei der Einrichtung von Helm auf Ihrem K3S-Cluster, beim Erstellen eigener Charts und bei der Automatisierung Ihrer Deployment-Pipeline. Kontaktieren Sie uns über unser Kontaktformular – wir melden uns innerhalb von 24 Stunden bei Ihnen.



