51 Helm Lifecycle

Helm steuert den Application Lfiecycle in Kubernetes mit sogenannten Charts, die gebündelte Pakete mit allen erforderlichen Ressourcen und Konfigurationsdetails darstellen. Ein Helm-Chart durchläuft Installations-, Upgrade-, Rollback- und Delete- Schritte. Helm optimiert das Management von Anwendungs-Deploys durch Konfigurationsverwaltung und Release-Versionierung, was den Update- und Rollback-Prozess vereinfacht und die Betriebssicherheit steigert.

51.1 Installation

Der Lebenszyklus beginnt mit der Installation eines Charts. Dies geschieht mit dem Befehl helm install, der ein Chart aus einem Repository oder einem lokalen Verzeichnis nimmt und es auf dem Kubernetes-Cluster installiert. Dabei wird ein Release erstellt, eine Instanz des Charts, die im Cluster läuft.

51.2 Upgrade

Nach der Installation kann das Release durch helm upgrade aktualisiert werden, indem eine neuere Version des Charts oder eine veränderte Konfiguration angewandt wird. Dies ermöglicht es Benutzern, ihre Anwendungen zu aktualisieren oder zu konfigurieren, ohne sie neu installieren zu müssen.

51.3 Rollback

Wenn ein Upgrade nicht wie gewünscht funktioniert, bietet Helm mit dem Befehl helm rollback die Möglichkeit, zu einer früheren Version des Releases zurückzukehren. Dadurch wird der Zustand vor dem fehlerhaften Upgrade wiederhergestellt.

51.4 Löschung

Schließlich kann ein Release durch den Befehl helm delete entfernt werden. Mit dieser Aktion werden alle Kubernetes-Ressourcen, die mit dem Release verbunden sind, aus dem Cluster gelöscht.

51.5 Status und Revisionen

Zwischen diesen Phasen können Benutzer den Befehl helm status nutzen, um den Status des Releases zu überprüfen, und helm history, um eine Liste der vergangenen Revisionen des Releases zu sehen. So kann man leicht den Überblick über die verschiedenen Zustände und Konfigurationen des Releases im Laufe der Zeit behalten.

51.6 Abhängigkeitsmanagement

Helm kümmert sich auch um die Abhängigkeiten zwischen verschiedenen Charts. Wenn ein Chart Abhängigkeiten hat, werden diese bei der Installation oder dem Upgrade des Charts verwaltet. Helm stellt sicher, dass alle Abhängigkeiten erfüllt sind und in der richtigen Reihenfolge angewandt werden.

51.7 Helm Hooks

Für fortgeschrittenes Management des Lebenszyklus bietet Helm sogenannte Hooks. Solche Hooks bieten Chart-Entwicklern die Möglichkeit, an bestimmten Punkten im Lebenszyklus einer Veröffentlichung einzugreifen. Ein Helm-Hook wird durch spezielle Annotationen in einem Kubernetes-Manifest definiert, die Helm anweisen, an diesen Punkten bestimmte Aktionen auszuführen. Einige Beispiele für Helm-Hooks:

Hier ist ein Beispiel für ein Helm Hook Manifest, das einen pre-install Hook definiert:

apiVersion: batch/v1
kind: Job
metadata:
  name: "{{ .Release.Name }}-pre-install-job"
  annotations:
    "helm.sh/hook": pre-install
spec:
  template:
    spec:
      containers:
      - name: pre-install-job
        image: alpine
        command: ['sh', '-c', 'echo pre-install job executed']
      restartPolicy: Never
  backoffLimit: 1

Dieses Job-Manifest würde vor der Installation der restlichen Charts ausgeführt werden, um zum Beispiel eine Konfigurationsdatei zu laden oder eine Datenbank zu sichern.