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/bitnamihinzu. - 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
bitnamivorhanden 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
nginxenthä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/nginxanzeigen. - 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:
apiVersionnameversionappVersiondescription
2.3: Corewire-Helm-Repository hinzufügen
- Fügen Sie das Corewire Helm Repository
https://charts.corewire.iohinzu.
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-demoappanzeigen.
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:
apiVersionnameversionappVersiondescription
2.6: Versionen des Charts anzeigen
- Lassen Sie sich alle verfügbaren Versionen des Charts
corewire/docker-demoappanzeigen.
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-demoappanzeigen. - 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-demoanzeigen. - Prüfen Sie, ob das Release
docker-demoappvorhanden 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-demoappenthalten. - Der Status sollte
deployedsein.
3.4: Kubernetes-Ressourcen anzeigen
- Lassen Sie sich die Pods, Services und Deployments im Namespace
helm-demoanzeigen. - 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-demoappanzeigen.
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 Version1.1.0des 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
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-demoappauf 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.