Tutorial

Installieren von Software in Kubernetes-Clustern mit dem Helm 3-Paketmanager

Kubernetes

Einführung

Helm ist ein Paketmanager für Kubernetes, der Entwicklern und Bedienern die Konfiguration und Bereitstellung von Anwendungen in Kubernetes-Clustern erleichtert.

In diesem Tutorial richten Sie Helm 3 ein und verwenden die Lösung zum Installieren, Neukonfigurieren, Zurücksetzen und Löschen einer Instanz der Kubernetes Dashboard-Anwendung. Das Dashboard ist eine offizielle webbasierte Kubernetes-Oberfläche.

Eine konzeptuelle Übersicht über Helm und das Verpackungs-Ökosystem finden Sie in unserem Artikel Eine Einführung zu Helm.

Voraussetzungen

Für dieses Tutorial benötigen Sie Folgendes:

  • Einen Kubernetes-Cluster mit aktivierter rollenbasierter Zugriffskontrolle (RBAC). Helm 3.1 unterstützt Cluster von Versionen 1.14 bis 1.17. Weitere Informationen finden Sie auf der Helm Release-Seite.
  • Das auf Ihrem lokalen Computer installierte Befehlszeilentool kubectl, das zur Verbindung mit Ihrem Cluster konfiguriert ist. Weitere Informationen zur Installation von kubectl finden Sie in der offiziellen Dokumentation.

Sie können Ihre Verbindung mit dem folgenden Befehl testen:

  • kubectl cluster-info

Wenn Sie keine Fehler sehen, sind Sie mit dem Cluster verbunden. Wenn Sie mit kubectl mehrere Cluster aufrufen, stellen Sie sicher, dass Sie den richtigen Cluster-Kontext ausgewählt haben:

  • kubectl config get-contexts
Output
CURRENT NAME CLUSTER AUTHINFO NAMESPACE * do-fra1-helm3-example do-fra1-helm3-example do-fra1-helm3-example-admin

In diesem Beispiel zeigt das Sternchen (*) an, dass wir mit dem Cluster do-fra1-helm3-example verbunden sind. Um den Cluster zu wechseln, führen Sie Folgendes aus:

  • kubectl config use-context context-name

Wenn Sie mit dem richtigen Cluster verbunden sind, fahren Sie mit Schritt 1 zum Installieren von Helm fort.

Schritt 1 — Installieren von Helm

Installieren Sie zunächst das helm-Befehlszeilendienstprogramm auf Ihrem lokalen Computer. Helm bietet ein Skript, das den Installationsprozess unter MacOS, Windows oder Linux verwaltet.

Wechseln Sie in ein beschreibbares Verzeichnis und laden Sie das Skript aus dem GitHub-Repository von Helm herunter:

  • cd /tmp
  • curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/master/scripts/get-helm-3

Machen Sie das Skript mit chmod ausführbar:

  • chmod u+x get_helm.sh

Sie können Ihren bevorzugten Texteditor verwenden, um das Skript zu öffnen und zu überprüfen, ob es sicher ist. Wenn Sie zufrieden damit sind, führen Sie es aus:

  • ./get_helm.sh

Möglicherweise werden Sie zur Eingabe Ihres Passworts aufgefordert. Geben Sie es ein und drücken Sie ENTER, um fortzufahren.

Die Ausgabe sieht in etwa folgendermaßen aus:

Output
Downloading https://get.helm.sh/helm-v3.1.2-linux-amd64.tar.gz Preparing to install helm into /usr/local/bin helm installed into /usr/local/bin/helm

Nachdem Helm nun installiert ist, können Sie Helm zur Installation Ihres ersten Chart verwenden.

Schritt 2 — Installieren eines Helm Charts

Helm-Softwarepakete werden als Charts bezeichnet. Es gibt ein kuratiertes Chart-Repository namens stable, das größtenteils aus gängigen Charts besteht, die Sie in ihrem GitHub-Repository anzeigen können. Helm ist dafür nicht vorkonfiguriert, sodass Sie die Datei manuell hinzufügen müssen. Dann installieren Sie zum Beispiel das Kubernetes Dashboard.

Fügen Sie das Repository stable hinzu, indem Sie Folgendes ausführen:

  • helm repo add stable https://kubernetes-charts.storage.googleapis.com

Der Output sieht wie folgt aus:

Output
"stable" has been added to your repositories

Verwenden Sie dann helm, um das Paket kubernetes-dashboard aus dem Repository stable zu installieren:

  • helm install dashboard-demo stable/kubernetes-dashboard --set rbac.clusterAdminRole=true

Mit dem Parameter --set können Sie Chart-Variablen anpassen, die das Chart verfügbar machen, sodass Sie dessen Konfiguration anpassen können. Hier setzen Sie die Variable rbac.clusterAdminRole auf true, um dem Kubernetes Dashboard Zugriff auf den gesamten Cluster zu gewähren.

Die Ausgabe sieht ungefähr so aus:

Output
NAME: dashboard-demo LAST DEPLOYED: Tue Mar 31 15:04:19 2020 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None NOTES: ...

Beachten Sie die Zeile NAME, die in der obigen Beispielausgabe hervorgehoben ist. In diesem Fall haben Sie den Namen dashboard-demo angegeben. Das ist der Name der Version. Eine Helm-Version ist eine einzelne Bereitstellung eines Charts mit einer bestimmten Konfiguration. Sie können verschiedene Versionen des gleichen Charts bereitstellen, jedes mit einer eigenen Konfiguration.

Sie können alle Versionen im Cluster auflisten:

  • helm list

Der Output sieht ungefähr wie folgt aus:

Output
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION dashboard-demo default 1 2020-03-31 15:04:19.324774799 +0000 UTC deployed kubernetes-dashboard-1.10.1 1.10.1

Sie können nun kubectl verwenden, um sich zu vergewissern, dass ein neuer Dienst im Cluster bereitgestellt wurde:

  • kubectl get services

Die Ausgabe sieht in etwa folgendermaßen aus:

Output
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE dashboard-demo-kubernetes-dashboard ClusterIP 10.245.115.214 <none> 443/TCP 4m44s kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 19m

Beachten Sie, dass der der Version entsprechende Dienstname standardmäßig eine Kombination aus der Helm-Version und dem Chart-Namen ist.

Nachdem Sie nun die Anwendung bereitgestellt haben, verwenden Sie Helm, um dessen Konfiguration zu ändern und die Bereitstellung zu aktualisieren.

Schritt 3 — Aktualisieren einer Version

Der Befehl helm upgrade kann dazu genutzt werden, eine Version mit einem neuen oder aktualisierten Chart zu aktualisieren oder deren Konfigurationsoptionen (Variablen) zu aktualisieren.

Sie werden eine einfache Änderung an der Version dashboard-demo vornehmen, um den Aktualisierungs- und Rollback-Prozess zu testen: Sie ändern den Namen des Dashboard-Dienstes in nur kubernetes-dashboard (anstelle von dashboard-demo-kubernetes-dashboard).

Das Chart kubernetes-dashboard bietet eine Konfigurationsoption namens fullnameOverride, um den Dienstnamen zu kontrollieren. Um die Version umzubenennen, führen Sie helm upgrade mit diesem Optionssatz aus:

  • helm upgrade dashboard-demo stable/kubernetes-dashboard --set fullnameOverride="kubernetes-dashboard" --reuse-values

Durch Übergeben des Arguments --reuse-values stellen Sie sicher, dass die zuvor eingerichteten Chart-Variablen bei der Aktualisierung nicht zurückgesetzt werden.

Sie sehen eine Ausgabe, die dem anfänglichen Schritt helm install ähnelt.

Überprüfen Sie, ob Ihre Kubernetes-Dienste die aktualisierten Werte widerspiegeln:

  • kubectl get services

Die Ausgabe sieht ungefähr wie folgt aus:

Output
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubernetes ClusterIP 10.245.0.1 <none> 443/TCP 38m kubernetes-dashboard ClusterIP 10.245.49.157 <none> 443/TCP 8s

Beachten Sie, dass der Dienstname auf den neuen Wert aktualisiert wurde.

Anmerkung: Zu diesem Zeitpunkt möchten Sie vielleicht das Kubernetes Dashboard tatsächlich in Ihren Browser laden und überprüfen. Dazu führen Sie zunächst den folgenden Befehl aus:

  • kubectl proxy

Dadurch wird ein Proxy erstellt, mit dem Sie von Ihrem lokalen Computer auf Ressourcen im Remotecluster zugreifen können. Basierend auf den vorherigen Anweisungen heißt Ihr Dashboard-Dienst kubernetes-dashboard und wird im standardmäßigen Namespace ausgeführt. Sie können nun mit der folgenden URL auf das Dashboard zugreifen:

http://localhost:8001/api/v1/namespaces/default/services/https:kubernetes-dashboard:https/proxy/

Anweisungen zur tatsächlichen Verwendung des Dashboards sind nicht Bestandteil dieses Tutorials. Weitere Informationen finden Sie jedoch in den offiziellen Kubernetes Dashboard-Dokumenten.

Als Nächstes sehen Sie sich die Möglichkeit von Helm an, Versionen zurückzusetzen und zu löschen.

Schritt 4 — Zurücksetzen und Löschen einer Version

Wenn Sie die Version dashboard-demo im vorherigen Schritt aktualisiert haben, haben Sie eine zweite Revision der Version erstellt. Helm behält alle Details der vorherigen Versionen bei, falls Sie eine frühere Konfiguration oder ein früheres Chart wiederherstellen müssen.

Verwenden Sie helm list, um die Version erneut zu prüfen:

  • helm list

Sie sehen die folgende Ausgabe:

Output
NAME REVISION UPDATED STATUS CHART NAMESPACE dashboard-demo 2 Wed Aug 8 20:13:15 2018 DEPLOYED kubernetes-dashboard-0.7.1 default

Die Spalte REVISION teilt Ihnen mit, dass dies nun die zweite Revision ist.

Verwenden Sie helm rollback, um die erste Revision wiederherzustellen:

  • helm rollback dashboard-demo 1

Sie sollten die folgende Ausgabe sehen, was bedeutet, dass das Zurücksetzen erfolgreich war:

Output
Rollback was a success! Happy Helming!

Wenn Sie kubectl get services an dieser Stelle erneut ausführen, werden Sie feststellen, dass der Dienstname wieder seinen vorherigen Wert aufweist. Helm hat die Anwendung mit der Konfiguration von Revision 1 neu bereitgestellt.

Helm-Versionen können mit dem Befehl helm delete gelöscht werden:

  • helm delete dashboard-demo

Der Output sieht wie folgt aus:

Output
release "dashboard-demo" uninstalled

Sie können versuchen, Helm-Versionen aufzulisten:

  • helm list

Sie sehen, dass es keine gibt:

Output
NAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION

Jetzt ist die Version wirklich gelöscht und Sie können den Versionsnamen wiederverwenden.

Zusammenfassung

In diesem Tutorial haben Sie das helm-Befehlszeilentool installiert und sich mit dem Installieren, Aktualisieren, Zurücksetzen und Löschen von Helm-Charts und -Versionen durch Verwalten des Chart kubernetes-dashboard vertraut gemacht.

Weitere Informationen zu Helm und Helm-Charts finden Sie in der offiziellen Helm-Dokumentation.

0 Comments

Creative Commons License