Bereitstellung von Anwendungen auf Kubernetes mit Helm
Dieser Artikel ist eine Fortsetzung meines Artikels „Was ist Helm und wie installiert man es auf einem Ubuntu 20.04 Server?„. Wenn Sie neu bei Helm sind, würde ich Ihnen empfehlen, zuerst den erwähnten Artikel durchzugehen. In diesem Artikel werden wir den Apache aus dem bestehenden Diagramm freigeben. Wir werden ein Beispiel-Chart erstellen und es freigeben, aktualisieren, zurücksetzen, löschen und wiederherstellen. Schauen wir uns die Befehle kurz an, bevor wir sie später im Artikel verwenden.
- helm Suche: Suche nach Helm-Diagrammen
- helm repo: Führt Operationen wie Hinzufügen, Auflisten, Entfernen, Aktualisieren und Indizieren im Repository durch
- helm löschen: Das Diagramm löschen, was wiederum alle seine Kubernetes-Objekte löscht.
- helm status: Zeigt den Status der Freigabe an.
- helm erstellen: Ein helm-Diagramm erstellen.
- helm install: Ein Diagramm installieren, das wiederum seine Kubernetes-Objekte erstellt.
- helm upgrade: Aktualisieren einer Freigabe mit den daran vorgenommenen Änderungen.
- helm history: Die Historie des Releases abrufen.
- helm rollback: Änderungen an der vorherigen Version rückgängig machen.
Bevor Sie fortfahren, wird vorausgesetzt, dass Sie mit den Grundlagen von Helm vertraut sind. Es wird auch angenommen, dass Sie einen Kubernetes-Cluster und den Helm-Client bereits darin installiert haben.
Vorraussetzungen
- Kubernetes-Cluster mit mindestens 1 Worker-Node.
Wenn Sie lernen möchten, wie Sie einen Kubernetes-Cluster erstellen, klicken Sie hier. Diese Anleitung hilft Ihnen beim Erstellen eines Kubernetes-Clusters mit 1 Master- und 2 Worker-Knoten auf AWS Ubuntu 18.04 EC2-Instanzen. - Helm ist auf Ihrem Master-Knoten installiert (Suchen Sie nach meinem Artikel mit dem Titel „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?
- Geben Sie ein Beispiel-Diagramm aus dem Repo frei.
- Erstellen Sie ein Diagramm und geben Sie eine Beispielanwendung frei.
- Aktualisieren Sie die Freigabe.
- Wiederherstellen des Releases, nachdem es gelöscht wurde
Freigabe eines Beispieldiagramms aus dem Repository
Prüfen wir zunächst, ob „helm“ auf dem Server verfügbar ist oder nicht.
helm-Version
Lassen Sie uns als Beispiel versuchen, ein Apache-Chart aus dem Hub zu installieren. Führen Sie den folgenden Befehl aus, um Apache auf dem Hub zu suchen.
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 die URL im Webbrowser an und Sie sehen eine Seite wie folgt.
Auf dieser Seite erhalten Sie Befehle, um ein Repo zu Ihrem lokalen System hinzuzufügen und das Chart daraus zu installieren.
Führen Sie die Befehle auf Ihrem lokalen System aus, um das Repository für das Apache-Diagramm hinzuzufügen.
helm Repository hinzufügen bitnami https://charts.bitnami.com/bitnami
helm repo list
Sobald Sie das Repository auf Ihrem System haben, sind Sie bereit, das Diagramm zu installieren und ein Release für Apache mit Helm zu erstellen.
helm install my-release bitnami/apache
Nach erfolgreicher Ausführung der Befehle sehen Sie die Ausgabe wie oben.
Sobald das Diagramm freigegeben ist, können Sie die Objekte sehen, die auf dem Kubernetes-Cluster erstellt wurden.
kubectl get nodes
kubectl get pods
Sie können nun die IP des Pods ermitteln und versuchen, die Apache-Seite mit dem Befehl curl aufzurufen.
kubectl get pods -o wide
kubectl get svc
curl 10.244.1.2:8080
Wenn Sie das Release löschen möchten, können Sie dies einfach mit folgendem Befehl tun
helm delete my-release
Sie können die Freigaben auf dem Cluster auflisten und sehen, ob die Freigabe erfolgreich gelöscht wurde oder nicht.
helm ls
helm status my-release
Erstellen eines Diagramms und Bereitstellen einer Beispielanwendung
Im obigen Szenario haben wir ein Diagramm installiert, das bereits 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 Chart mit einer Beispielanwendung von Nginx darin.
helm create my-first-chart
Erkunden Sie die Ordnerstruktur des Charts, das wir mit dem obigen Befehl erstellt haben.
cd my-first-chart/
ls -l
ls -l Diagramme/
ls -l vorlagen/
ls -l templates/tests/
Überprüfen Sie den Inhalt der Datei „Chart.yaml“.
ls -lt
cat Diagramm.yaml
Prüfen Sie den Inhalt von values.yaml
ls -lt
cat values.yaml
Lassen Sie uns nun die Beispielanwendung unter Verwendung des lokalen Diagramms bereitstellen.
pwd
cd ..
ls -l | grep mein-erstes-Diagramm
kubectl get pods
helm install my-first-release my-first-chart/
Sobald die Karte erfolgreich freigegeben wurde, können Sie sehen, dass ein Pod im Cluster erstellt wurde.
kubectl get pods
kubectl get svc
Sie können nun über den Dienst auf den Nginx-Pod zugreifen.
curl 10.104.229.187
Mit dem folgenden Befehl können Sie Informationen über die erstellte Version abrufen.
helm ls
helm status my-first-release
Aktualisieren der 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 einfach tun, indem Sie Änderungen in der Datei values.yaml vornehmen.
cat my-first-chart/values.yaml | grep replica
vim meine-erste-Karte/values.yaml
cat meine-erste-Zeichnung/werte.yaml | grep replica
helm ls
Jetzt können Sie Ihre Änderungen einfach ausrollen und Ihre Version aktualisieren.
helm upgrade my-first-release my-first-chart/
Sie können sogar feststellen, dass die Revision der Version auf 2 aktualisiert wurde.
helm ls
Diesmal sehen Sie zwei Pods, die im Cluster laufen, da wir die Anzahl der Replikate auf 2 festgelegt hatten.
kubectl get pods
helm ls
Wenn wir die Historie der Version überprüfen, werden wir feststellen, dass die Version zwei Revisionen hat. Revision eins hatte einen Pod und später haben wir die Anzahl der Replikate auf 2 aktualisiert, wodurch Revision 2 der Version erstellt wurde.
helm history meine-erste-version
Wenn wir die Änderungen in Revision 2 nicht wollen und zu Revision 1 zurückkehren möchten, können wir dies einfach mit dem folgenden Rollback-Befehl tun.
helm rollback meine-erste-freigabe 1
helm ls
Damit wird die Revision 3 für die Veröffentlichung erstellt.
helm history meine-erste-veröffentlichung
Sie können nun sehen, dass nur ein Pod im Cluster läuft.
kubectl get pods
Falls Sie die freigegebene Nginx-Beispielanwendung aus der Tabelle löschen möchten, können Sie dies tun, indem Sie die Freigabe löschen.
helm ls
helm delete my-first-release
helm ls
Wiederherstellen der Freigabe, nachdem sie gelöscht wurde
Im obigen Szenario haben wir die Freigabe gelöscht. Aber standardmäßig behält das Release seine Release-Historie nicht bei, wenn es 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 delete release angeben.
helm ls
helm install my-second-release my-first-chart/
helm ls
Wenn Sie beim Löschen der Version die Option –keep-history angeben, legt helm eine neue Version der Version an. Auf diese Weise können Sie auch nach dem Löschen des Releases oder der Anwendung zur vorherigen Arbeitsversion zurückkehren.
helm delete my-second-release –keep-history
helm ls
helm ls -a
helm history meine-sekunden-freigabe
helm rollback meine-sekunden-freigabe 1
helm ls
helm history meine-zweite-Freigabe
Fazit
In diesem Artikel haben wir eine Beispielanwendung aus der im Internet verfügbaren Helm-Karte eingesetzt. Wir haben sogar die Schritte gesehen, um ein Helm-Diagramm auf unserem System zu erstellen und es freizugeben. Außerdem haben wir gesehen, wie man Helm-Diagramme löscht, zu früheren Versionen zurückkehrt und den Freigabeverlauf auch nach dem Löschen des Chats beibehält.