Dieser Artikel ist die Fortsetzung meines Artikels "Was ist Helm und wie installiere ich es auf einem Ubuntu 20.04-Server?". Wenn Sie neu bei Helm sind, würde ich Ihnen empfehlen, zuerst den von mir erwähnten Artikel durchzugehen. In diesem Artikel werden wir Apache aus dem bestehenden Chart herauslösen. Wir werden ein Beispieldiagramm erstellen und es freigeben, aktualisieren, zurücksetzen, löschen und wiederherstellen. Sehen wir uns die Befehle kurz an, bevor wir sie später im Artikel verwenden.
- Rudersuche :Suche nach Helm-Charts
- helm-Repo :Vorgänge wie Hinzufügen, Auflisten, Entfernen, Aktualisieren und Indexieren für das Repository ausführen
- helm löschen :Löschen Sie das Diagramm, wodurch wiederum alle seine Kubernetes-Objekte gelöscht werden.
- Steuerstatus :Status der Freigabe anzeigen.
- Helm erstellen :Steuerdiagramm erstellen.
- helm installieren :Installieren Sie ein Diagramm, das wiederum seine Kubernetes-Objekte erstellt
- Steuerrad-Upgrade :Aktualisieren Sie eine Version mit Änderungen, die wir daran vorgenommen haben.
- Steuergeschichte :Holen Sie sich den Verlauf der Veröffentlichung.
- Ruderrücksetzung :Änderungen an der vorherigen Version rückgängig machen.
Bevor Sie fortfahren, wird davon ausgegangen, dass Sie mit den Grundlagen von Helm vertraut sind. Es wird auch davon ausgegangen, dass Sie bereits einen Kubernetes-Cluster und einen Helm-Client darin installiert haben.
Voraussetzungen
- Kubernetes-Cluster mit mindestens einem Worker-Knoten.
Wenn Sie erfahren möchten, wie Sie einen Kubernetes-Cluster erstellen, klicken Sie hier. Dieser Leitfaden hilft Ihnen beim Erstellen eines Kubernetes-Clusters mit 1 Master und 2 Knoten auf AWS Ubuntu 18.04 EC2-Instances. - Helm auf Ihrem Master-Knoten installiert (Suchen Sie nach meinem Artikel „Was ist Helm und wie installiere ich es auf einem Ubuntu 20.04-Server“, um die Grundlagen von Helm zu verstehen und es zu installieren).
Was werden wir tun?
- Veröffentlichen Sie ein Beispieldiagramm aus dem Repository.
- Erstellen Sie ein Diagramm und veröffentlichen Sie eine Beispielanwendung.
- Aktualisieren Sie die Version.
- Release nach dem Löschen wiederherstellen
Veröffentlichen Sie ein Beispieldiagramm aus dem Repository
Lassen Sie uns zuerst prüfen, ob "helm" auf dem Server verfügbar ist oder nicht.
Helm-Version
Als Beispiel wollen wir versuchen, ein Apache-Diagramm vom Hub zu installieren. Führen Sie den folgenden Befehl aus, um Apache auf dem Hub zu durchsuchen.
helm search hub apache
Sie erhalten eine Reihe von Ergebnissen, kopieren Sie die URL einer der Suchen nach Apache. In diesem Fall habe ich die erste URL kopiert.
Klicken Sie auf die URL im Webbrowser und Sie werden eine Seite wie folgt sehen.
Auf dieser Seite erhalten Sie Befehle zum Hinzufügen eines Repos zu Ihrem lokalen System und zum Installieren des Diagramms daraus.
Führen Sie die Befehle auf Ihrem lokalen System aus, wodurch das Repository für das Apache-Diagramm hinzugefügt wird.
helm repo fügt bitnami hinzu https://charts.bitnami.com/bitnami
Helm-Repo-Liste
Sobald Sie das Repository auf Ihrem System haben, können Sie das Diagramm installieren und mit Helm eine Version für Apache erstellen.
helm install my-release bitnami/apache
Nach erfolgreicher Ausführung der Befehle sehen Sie die Ausgabe wie oben.
Sobald das Diagramm veröffentlicht wurde, können Sie Objekte sehen, die im Kubernetes-Cluster erstellt wurden.
kubectl erhält Knoten
kubectl erhält Pods
Sie können jetzt die IP-Adresse des Pods abrufen und versuchen, mit dem Curl-Befehl auf die Apache-Seite zuzugreifen.
kubectl get pods -o wide
kubectl erhält svc
curl 10.244.1.2:8080
Wenn Sie die Freigabe löschen möchten, können Sie dies einfach mit dem folgenden Befehl tun
helm lösche meine-freigabe
Sie können Veröffentlichungen im Cluster auflisten und sehen, ob die Veröffentlichung erfolgreich gelöscht wurde oder nicht.
helm ls
helm status my-release
Erstellen Sie ein Diagramm und stellen Sie eine Beispielanwendung bereit
Im obigen Szenario haben wir ein Diagramm installiert, das leicht verfügbar und konfiguriert war. Wir können unser eigenes Diagramm erstellen und unsere Anwendung freigeben. Das Erstellen eines Diagramms ist mit helm sehr einfach. Wenn Sie den folgenden Befehl ausführen, erhalten Sie ein Diagramm mit einer Beispielanwendung von Nginx darin.
helm mein-erstes-diagramm erstellen
Untersuchen Sie die Ordnerstruktur des Diagramms, das wir mit dem obigen Befehl erstellt haben.
cd meine-erste-tabelle/
ls -l
ls -l Diagramme/
ls -l Vorlagen/
ls -l Vorlagen/Tests/
Prüfen Sie den Inhalt der Chart.yaml-Datei.
ls -lt
cat Chart.yaml
Prüfen Sie den Inhalt von values.yaml
ls -lt
cat-Werte.yaml
Lassen Sie uns nun die Beispielanwendung mithilfe des lokalen Diagramms bereitstellen.
pwd
CD ..
ls -l | grep mein-erstes-diagramm
kubectl erhält Pods
helm installiere meine-erste-freigabe meine-erste-karte/
Sobald das Diagramm erfolgreich veröffentlicht wurde, können Sie einen im Cluster erstellten Pod sehen.
kubectl erhält Pods
kubectl erhält svc
Sie können jetzt über den Dienst auf den Nginx-Pod zugreifen.
curl 10.104.229.187
Informationen zu der von uns erstellten Version finden Sie mit dem folgenden Befehl.
helm ls
helm status meine-erste-veröffentlichung
Aktualisieren Sie die Version
Im obigen Szenario haben wir ein Diagramm mit einer Nginx-Beispielanwendung erstellt. Die Anzahl der Replikate im obigen Szenario war 1. Wenn Sie die Anzahl der Replikate erhöhen möchten, können Sie dies ganz einfach tun, indem Sie Änderungen in der Datei "values.yaml" vornehmen.
cat meine-erste-tabelle/werte.yaml | grep replik
vim my-first-chart/values.yaml
cat meine-erste-tabelle/werte.yaml | grep replik
helm ls
Jetzt können Sie Ihre Änderungen ganz einfach einführen und Ihre Version aktualisieren.
helm upgrade my-first-release my-first-chart/
Sie können sogar die auf 2. aktualisierte Version der Version sehen.
helm ls
Dieses Mal können Sie zwei Pods sehen, die im Cluster ausgeführt werden, da wir die Anzahl der Replikate auf 2 festgelegt hatten.
kubectl erhält Pods
helm ls
Wenn wir den Verlauf der Veröffentlichung überprüfen, werden wir feststellen, dass die Veröffentlichung zwei Revisionen hat. Überarbeitung 1 hatte 1 Pod und später haben wir die Replikationsanzahl auf 2 aktualisiert, wodurch Überarbeitung 2 der Version erstellt wurde.
helm history my-first-release
Wenn wir nicht möchten, dass die Änderungen in Überarbeitung 2 veröffentlicht werden, und zu Überarbeitung 1 zurückkehren möchten, können wir dies einfach mit dem folgenden Rollback-Befehl tun.
helm rollback my-first-release 1
helm ls
Und dies wird Revision 3 für die Veröffentlichung erstellen.
helm history my-first-release
Sie können jetzt sehen, dass im Cluster nur ein Pod ausgeführt wird.
kubectl erhält Pods
Falls Sie die freigegebene Nginx-Beispielanwendung aus dem Diagramm löschen möchten, können Sie sie löschen, indem Sie die Freigabe löschen.
helm ls
helm delete my-first-release
helm ls
Stellen Sie die Version wieder her, nachdem sie gelöscht wurde
Im obigen Szenario haben wir die Version gelöscht. Aber standardmäßig behält die Version ihren Versionsverlauf nicht bei, wenn sie gelöscht wird. Falls Sie in einem solchen Szenario wiederherstellen möchten, können Sie dies nur tun, wenn Sie die Option --keep-history für den Befehl zum Löschen der Freigabe angeben.
helm ls
helm installiere meine-zweite-freigabe meine-erste-karte/
helm ls
Wenn Sie beim Löschen der Version die Option --keep-history angeben, erstellt der Helm eine neue Version. Auf diese Weise können Sie auch nach dem Löschen des Releases oder der Anwendung zur vorherigen funktionierenden Version zurückkehren.
helm delete my-second-release --keep-history
helm ls
helm ls -a
helm history my-second-release
helm rollback my-second-release 1
helm ls
helm history my-second-release
Schlussfolgerung
In diesem Artikel haben wir eine Beispielanwendung aus dem im Internet verfügbaren Helm-Chart bereitgestellt. Wir haben sogar die Schritte gesehen, um ein Helm-Diagramm auf unserem System zu erstellen und freizugeben. Außerdem haben wir gesehen, wie man Helm-Diagramme löscht, zu früheren Versionen zurückkehrt und den Veröffentlichungsverlauf auch nach dem Löschen des Chats beibehält.