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.
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
OutputCURRENT 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.
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:
OutputDownloading 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.
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:
OutputNAME: 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:
OutputNAME 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:
OutputNAME 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.
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:
OutputNAME 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.
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:
OutputNAME 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:
OutputRollback 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:
Outputrelease "dashboard-demo" uninstalled
Sie können versuchen, Helm-Versionen aufzulisten:
- helm list
Sie sehen, dass es keine gibt:
OutputNAME NAMESPACE REVISION UPDATED STATUS CHART APP VERSION
Jetzt ist die Version wirklich gelöscht und Sie können den Versionsnamen wiederverwenden.
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.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.