Zum Inhalt

Helm Grundlagen

Ziel

In diesem Projekt geht es um die grundlegende Arbeit mit Helm. Sie werden:

  • ein Helm Repository hinzufügen und aktualisieren
  • Charts in einem Repository suchen
  • ein Chart als Release in Kubernetes installieren
  • Releases, Revisionen und Kubernetes-Ressourcen inspizieren

Hilfsmittel

  • Versuchen Sie, die unten stehenden Aufgaben mit Hilfe der Folien und des Cheatsheets eigenständig zu lösen.
  • Sollten Sie dabei Probleme haben, finden Sie bei jeder Aufgabe einen ausklappbaren Block, in dem der Lösungsweg beschrieben wird.

Aufgabe 1 - Helm Repositories

Helm Charts werden über Repositories bereitgestellt. Ein Repository enthält ein oder mehrere Charts, die anschließend gesucht und installiert werden können.

In dieser Aufgabe fügen Sie das Bitnami Repository hinzu und aktualisieren den lokalen Repository-Index.

1.1: Repository hinzufügen

  • Fügen Sie das Bitnami Helm Repository https://charts.bitnami.com/bitnami hinzu.
  • Verwenden Sie als Namen für das Repository bitnami.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm repo add bitnami https://charts.bitnami.com/bitnami
    
  • Bei Erfolg sehen Sie eine Ausgabe ähnlich zu:
    "bitnami" has been added to your repositories
    

1.2: Repository-Index aktualisieren

  • Aktualisieren Sie den lokalen Index der Helm Repositories.
  • Dadurch lädt Helm die aktuellen Informationen über verfügbare Charts herunter.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm repo update
    
  • Sie sollten sehen, dass das Repository erfolgreich aktualisiert wurde.

1.3: Repository erneut anzeigen

  • Lassen Sie sich die konfigurierten Repositories anzeigen.
  • Prüfen Sie, ob das Repository bitnami vorhanden ist.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm repo list
    
  • Die Ausgabe sollte einen Eintrag ähnlich zu diesem enthalten:
    NAME      URL
    bitnami   https://charts.bitnami.com/bitnami
    

Aufgabe 2 - Charts suchen

Ein Chart beschreibt, welche Kubernetes-Ressourcen für eine Anwendung erstellt werden. Bevor Sie eine Anwendung installieren, können Sie über Helm nach passenden Charts suchen.

2.1: Nach Charts suchen

  • Suchen Sie im Bitnami Repository nach Charts, deren Name nginx enthält.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm search repo bitnami/nginx
    
  • Die Ausgabe enthält verfügbare Charts, zum Beispiel:
    NAME                  CHART VERSION   APP VERSION   DESCRIPTION
    bitnami/nginx         ...             ...           NGINX Open Source is a web server...
    bitnami/nginx-ingress-controller ...
    

2.2: Chart-Informationen anzeigen

  • Lassen Sie sich nähere Informationen zum Chart bitnami/nginx anzeigen.
  • Achten Sie auf Beschreibung, Versionen und mögliche Hinweise zur Nutzung.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm show chart bitnami/nginx
    
  • Sie sehen Metadaten des Charts, zum Beispiel:
    • apiVersion
    • name
    • version
    • appVersion
    • description

2.3: Corewire-Helm-Repository hinzufügen

  • Fügen Sie das Corewire Helm Repository https://charts.corewire.io hinzu.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm repo add corewire https://charts.corewire.io
    
  • Bei Erfolg sehen Sie eine Ausgabe ähnlich zu:
    "corewire" has been added to your repositories
    

2.4: Corewire Repository aktualisieren

  • Aktualisieren Sie den lokalen Index der Helm Repositories, um die Charts aus dem Corewire Repository zu laden.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm repo update
    
  • Sie sollten sehen, dass das Repository erfolgreich aktualisiert wurde.

2.5: Corewire Chart informationen anzeigen

  • Lassen Sie sich Informationen zum Chart corewire/docker-demoapp anzeigen.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm show chart corewire/docker-demoapp
    
  • Sie sehen Metadaten des Charts, zum Beispiel:
    • apiVersion
    • name
    • version
    • appVersion
    • description

2.6: Versionen des Charts anzeigen

  • Lassen Sie sich alle verfügbaren Versionen des Charts corewire/docker-demoapp anzeigen.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm search repo corewire/docker-demoapp --versions
    
  • Die Ausgabe zeigt alle verfügbaren Versionen des Charts an.

2.7: Standardwerte des Charts anzeigen

  • Lassen Sie sich die Standard-Konfiguration des Charts corewire/docker-demoapp anzeigen.
  • Scrollen Sie durch die Ausgabe und suchen Sie nach Einstellungen zu service.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm show values corewire/docker-demoapp
    
  • Die Ausgabe ist eine YAML-Datei mit den Standardwerten des Charts.
  • Diese Werte können bei der Installation oder bei einem späteren Upgrade überschrieben werden.

Chart

Ein Chart ist ein Paket für Kubernetes-Anwendungen. Es enthält Templates und Standardwerte, aus denen Helm Kubernetes-YAML erzeugt.

Aufgabe 3 - Chart installieren

Wenn ein Chart installiert wird, entsteht daraus ein Release. Ein Release ist eine konkrete Installation eines Charts in einem Kubernetes Namespace.

In dieser Aufgabe installieren Sie corewire/docker-demoapp als Release docker-demoapp.

3.1: Namespace anlegen

  • Erstellen Sie einen Namespace mit dem Namen helm-demo.
  • In diesem Namespace installieren Sie später das Chart.
kubectl create namespace helm-demo

3.2: Chart installieren

  • Installieren Sie das Chart corewire/docker-demoapp.
  • Verwenden Sie als Release-Namen docker-demoapp.
  • Installieren Sie das Release in den Namespace helm-demo.
  • Installieren Sie das Chart in der Version 1.0.0.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm install docker-demoapp corewire/docker-demoapp --namespace helm-demo --version 1.0.0
    
  • Nach der Installation zeigt Helm eine Zusammenfassung an.
  • In der Ausgabe sehen Sie unter anderem:
    • den Release-Namen
    • den Namespace
    • den Status
    • die Revision

3.3: Release anzeigen

  • Lassen Sie sich alle Releases im Namespace helm-demo anzeigen.
  • Prüfen Sie, ob das Release docker-demoapp vorhanden ist.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm list --namespace helm-demo
    
  • Die Ausgabe sollte das Release docker-demoapp enthalten.
  • Der Status sollte deployed sein.

3.4: Kubernetes-Ressourcen anzeigen

  • Lassen Sie sich die Pods, Services und Deployments im Namespace helm-demo anzeigen.
  • Prüfen Sie, welche Ressourcen durch Helm erstellt wurden.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    kubectl get all --namespace helm-demo
    
  • Sie sollten Ressourcen wie Pod, Service, Deployment und ReplicaSet sehen.
  • Diese Ressourcen wurden aus dem Helm Chart erzeugt.

Release

Ein Release ist eine konkrete Installation eines Charts. Dasselbe Chart kann mehrfach installiert werden, solange unterschiedliche Release-Namen oder Namespaces verwendet werden.

3.5: Applikation testen

  • Prüfen Sie, ob die Anwendung erreichbar ist.
  • Verwenden Sie dafür den Service, der durch das Chart erstellt wurde.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus, um die Services anzuzeigen:
    kubectl get services --namespace helm-demo
    
  • Suchen Sie den Service, der durch das Chart erstellt wurde
  • Prüfen Sie die Spalte PORT(S), um den Port zu sehen, auf dem der Service erreichbar ist.
  • Prüfen Sie die Spalte EXTERNAL-IP, um die IP-Adresse zu sehen, unter der der Service erreichbar ist.
  • Rufen Sie die Anwendung über die IP-Adresse und den Port im Browser auf.

3.6: Release inspizieren

Helm speichert Informationen über installierte Releases. Dadurch können Sie später nachvollziehen, was installiert wurde, welche Werte verwendet wurden und welche Revision aktuell aktiv ist.

  • Lassen Sie sich den Status des Releases docker-demoapp anzeigen.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm status docker-demoapp --namespace helm-demo
    
  • Die Ausgabe enthält Informationen wie:
    • Release-Name
    • Namespace
    • Status
    • Revision
    • Hinweise aus dem Chart

Aufgabe 4 - Helm Chart updaten

4.1: Update durchführen

  • Aktualisieren Sie das Release docker-demoapp, auf die Version 1.1.0 des Charts.
  • Verwenden Sie dafür helm upgrade.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm upgrade docker-demoapp corewire/docker-demoapp --namespace helm-demo --version 1.1.0
    
  • Helm aktualisiert das bestehende Release.
  • In der Ausgabe sehen Sie eine neue Revision.

4.2: Release-Historie anzeigen

  • Lassen Sie sich die Historie des Releases anzeigen.
  • Prüfen Sie, welche Revision aktuell existiert.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm history docker-demoapp --namespace helm-demo
    
  • Sie sollten nun mindestens zwei Revisionen sehen:
    • Revision 1: Installation
    • Revision 2: Upgrade

Revision

Eine Revision ist eine Version eines Releases. Bei jeder Änderung über Helm, zum Beispiel durch ein Upgrade oder Rollback, entsteht eine neue Revision.

4.3: Rollback durchführen

  • Führen Sie ein Rollback des Releases docker-demoapp auf die vorherige Revision durch.
  • Prüfen Sie anschließend die Historie, um zu sehen, dass eine neue Revision entstanden ist.
Lösung (Klicken Sie auf den Pfeil, falls Sie nicht weiterkommen)
  • Führen Sie folgenden Befehl aus:
    helm rollback docker-demoapp 1 --namespace helm-demo
    
  • Helm erstellt eine neue Revision, die den vorherigen Zustand wiederherstellt.
  • In der Historie sehen Sie nun eine neue Revision mit dem Rollback.

  • Sie haben nun erfolgreich Helm als Werkzeug zur Installation und Verwaltung von Kubernetes-Anwendungen eingesetzt.
  • Sie haben ein Repository hinzugefügt, Charts gesucht, ein Chart installiert, geupdated und ein Release mit seinen Revisionen inspiziert.