Glossar

Chart

Ein Helm Paket was Informationen zum Installieren eines Sets von Kubernetes Resourcen in einem Kubernetes Cluster beinhaltet.

Charts enthalten eine Chart.yaml Datei als auch Vorlagen, Standardwerte (values.yaml) und Abhängigkeiten.

Charts werden in einer gut definierten Verzeichnisstruktur entwickelt und dann in ein Archiv gepackt, was sich Chart Archiv nennt.

Chart Archiv

Ein Chart Archiv ist ein mit tar und gzip gepacktes (und optimalerweise signiertes) Chart.

Chart Abhängigkeit (Subcharts)

Charts können voneinander abgängen. Es gibt zwei Wege, diese Abhängigkeit herzustellen:

  • Weiche Abhängigkeit: Ein Chart funktioniert möglicherweise nicht ohne ein anderes Chart. Helm stellt für diesen Fall kein Werkzeug zur Verfügung. Abhängigkeiten müssen separat verwaltet werden.
  • Harte Abhängigkeit: Ein Chart enthält (innerhalb des charts/ Verzeichnis) ein anderes Chart, von dem es abhängt. In diesem Fall wird die Installation des Charts alle Abhängigkeiten mit installieren. Charts und seine Abhängigkeiten werden als Kollektion verwaltet.

Wenn ein Chart gepackt wird (mit helm package), werden alle harten Abhängigkeiten mit gebündelt.

Chart Version

Charts sind versioniert nach SemVer 2 Spezifikation. Eine Versionsnummer ist für jedes Chart erforderlich.

Chart.yaml

Informationen über ein Chart werden in einer speziellen Datei namens Chart.yaml gespeichert. Jedes Chart muss diese Datei haben.

Helm (und helm)

Helm ist der Paket Manager für Kubernetes. Wie ein Paket Manager für das Betriebssystem das Installieren einfacher macht, kann man mit Helm einfacher Applikationen und Resourcen in Kubernetes Cluster installieren.

Da Helm der Name des Projekts ist, trägt das Kommandozeilenprogramm denselben Namen. Wenn wir vom Projekt sprechen, wird Helm gross geschrieben. Sprechen wir vom Kommandozeilenprogramm, schreiben wie helm klein.

Helm Konfigurationsdateien (XDG)

Helm speichert seine Konfigurationsdateien in XDG Verzeichnissen. Diese Verzeichnisse werden erstellt, wenn helm zum ersten mal läuft.

Kube Config (KUBECONFIG)

Das Helm Programm lernt Kubernetes Clusters durch die Benutzung des Kube config Dateiformats. Standardmässig erwartet Helm, diese Datei an einem Platz zu finden, wo kubectl es erstellt hat ($HOME/.kube/config).

Lint (Linting)

Ein Chart mit lint zu validieren, ist die Überprüfung, ob es den Konventionen und Anforderungen des Helm Chart Standards genügt. Helm stellt Werkzeuge zur Verfügung, allen voran das helm lint Kommando.

Provenance (Provenance file)

Helm charts können von einem provenance file begleitet sein, welches Informationen bereitstellt, wo das Chart herkommt und was es beinhaltet.

Herkunftsdateien (Provenance files) sind ein Teil der Helm Sicherheit. Eine provenance beinhaltet einen kryptographischen Hash der Chart Archiv Datei, der Chart.yaml Datei und eines Signaturblockes (ein OpenPGP "clearsign" Block). Wenn dies an eine Schlüsselkette gekoppelt ist, können Benutzer:

  • validieren, von welchem vertrauenswürdigen Partner das Chart signiert wurde
  • validieren, dass die Chart Datei nicht manipuliert wurde
  • den Inhalt der Chart Metadaten validieren (Chart.yaml)
  • schnell vergleichen, dass das Chart mit seinen Herkunftsdaten übereinstimmt

Herkunftsdateien haben die Erweiterungen .prov und können von einem Chart Verzeichnis Server oder einem anderen HTTP Server ausgeliefert werden.

Release (Version)

Wenn ein Chart installiert ist, erstellt die Helmbibliothek ein Version (release), um nachzuvollziehen, was installiert wurde.

Ein einzelnes Chart wird möglicherweise mehrmals in denselben Cluster installiert und erstellt unterschiedliche Versionen. Zum Beispiel, ein Chart kann drei PostgreSQL Datenbanken mit demselben Kommando helm install dreimal mit unterschiedlchen Versionsnamen installieren.

Release Number (Release Version)

Eine eintelne Version kann mehrmals aktualisiert werden. Ein sequentieller Zähler wird benutzt, um die Versionen nachzuvollziehen. Nach einem ersten helm install hat eine Version die release number 1. Nach jeder Aktualisierung oder jedem Zurückrollen wird die Versionsnummer erhöht.

Rollback (Zurückrollen)

Eine Version kann zu einem neuen Chart oder einer neuen Konfiguration aktualisiert werden. Wenn die Versionshistorie gespeichert ist, kann eine Version zu einer vorherigen auch zurückgerollt werden (rolles back). Das passiert mit dem helm rollback Kommando.

Wichtig zu wissen, dass eine zurückgerollte Version eine neue Versionsnummer generiert.

OperationRelease Number
installrelease 1
upgraderelease 2
upgraderelease 3
rollback 1release 4 (but running the same config as release 1)

Die obige Tabelle zeigt, wie Versionsnummern bei jeder Aktion wie Installieren, Aktualisieren und Zurückrollen erhöht werden.

Helm Library (Helm Bibltiothek oder SDK)

Die Helm Bibliothek (Library oder SDK) referenziert zum Go Code, der direkt mit dem Kubernetes API Server zum Installieren, Aktualisieren, Abfragen und Löschen von Kubernetes Resourcen interagiert. Sie kann zum Import in ein Projekt benutzt werden, um Helm in einer Bibliothek anstatt des Kommandozeilenwerkzeugs zu verwenden.

Repository (Verzeichnis, Repo, Chart Repository)

Helm Charts sind gespeichert in dedizierten HTTP Servern namens chart repositories (Verzeichnis, Repositories oder einfach repos).

Ein Chart Repository Server ist ein einfacher HTTP Server, der eine index.yaml Datei ausliefern kann, die eine Anzahl Charts beschreibt und Informationen bereitstellt, wo das Chart herunterzuladen ist. (Viele Chart Repositories liefern die Charts zusammen mit der index.yam Datei aus.)

Ein Helm Programm kann zu null oder mehreren Chart Verzeichnissen zeigen. Standardmässig sind keine Verzeichnisse konfiguriert. Chart Verzeichnisse können mit dem Kommando helm repo add hinzugefügt werden.

Values (Values/Werte Dateien, values.yaml)

Values (Werte) stellen einen Weg zur Verfügung, um Standards aus den Vorlagen zu überschreiben.

Helm Charts sind "parametisiert", was bedeutet, dass die Chart Entwickler Konfigurationen nach aussen führen, die zur Installationszeit überschrieben werden können. Zum Beispiel, ein Chart führt ein username Feld nach aussen, was das Setzen eines Benutzernamens für diesen Dienst erlaubt.

Diese nach aussen geführten Variablen werden in Helm values genannt.

Values können während helm install und helm upgrade gesetzt werden, entweder direkt beim Aufruf oder in einer values.yaml Datei.