Was ist Helm?

Helm ist der Paketmanager für Kubernetes. Er ermöglicht es, komplexe Kubernetes-Anwendungen mithilfe wiederverwendbarer Pakete, sogenannter Charts, zu definieren, zu installieren und zu aktualisieren. Stellen Sie sich Helm als apt oder brew für Kubernetes vor.

Schlüsselkonzepte

BegriffBeschreibung
ChartPaket mit allen Kubernetes-Ressourcendefinitionen einer Anwendung
ReleaseEine laufende Instanz eines im Cluster installierten Charts
RepositoryOrt, an dem Charts gespeichert und geteilt werden
ValuesKonfigurationsparameter, die ein Chart zur Installationszeit anpassen

Installation

# macOS
brew install helm

# Linux
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

Installation überprüfen:

helm version

Ein Chart-Repository hinzufügen

Fügen Sie das Bitnami-Repository hinzu – eine der beliebtesten Quellen für produktionsreife Charts:

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

Verfügbare Charts suchen:

helm search repo nginx

Ein Chart installieren

NGINX von Bitnami installieren:

helm install my-nginx bitnami/nginx

Das Format lautet helm install <release-name> <repo/chart>. Helm erstellt alle erforderlichen Kubernetes-Ressourcen und verfolgt den Release-Zustand.

Laufende Releases auflisten:

helm list

Mit Values anpassen

Jedes Chart bietet konfigurierbare Werte. Standardwerte anzeigen:

helm show values bitnami/nginx

Werte bei der Installation mit --set oder einer Values-Datei überschreiben:

# Direktes Überschreiben
helm install my-nginx bitnami/nginx --set replicaCount=2

# Dateibasiertes Überschreiben
helm install my-nginx bitnami/nginx -f custom-values.yaml

Beispiel custom-values.yaml:

replicaCount: 2
service:
  type: ClusterIP
resources:
  requests:
    cpu: 100m
    memory: 128Mi

Einen Release aktualisieren

Konfigurationsänderungen oder eine neue Chart-Version auf einen laufenden Release anwenden:

helm upgrade my-nginx bitnami/nginx --set replicaCount=3

Mit --install wird installiert, falls noch nicht vorhanden (Upsert-Muster):

helm upgrade --install my-nginx bitnami/nginx -f custom-values.yaml

Zurückrollen

Bei Problemen können Sie zu einer früheren Revision zurückrollen:

# Revisionsverlauf anzeigen
helm history my-nginx

# Zu Revision 1 zurückrollen
helm rollback my-nginx 1

Einen Release deinstallieren

helm uninstall my-nginx

Dadurch werden alle mit dem Release verbundenen Kubernetes-Ressourcen entfernt. Fügen Sie --keep-history hinzu, wenn Sie den Release-Eintrag für Audits behalten möchten.

Ein eigenes Chart erstellen

Chart-Gerüst generieren:

helm create my-app

Dies erzeugt das Standard-Verzeichnis-Layout:

my-app/
├── Chart.yaml        # Chart-Metadaten (Name, Version, Beschreibung)
├── values.yaml       # Standard-Konfigurationswerte
└── templates/        # Kubernetes-Manifest-Vorlagen
    ├── deployment.yaml
    ├── service.yaml
    └── _helpers.tpl  # Wiederverwendbare Template-Schnipsel

Wenn Sie mich unterstützen möchten, kaufen Sie mir einen Kaffee.