Erste Schritte mit Kubernetes Helm -Diagrammen

Erste Schritte mit Kubernetes Helm -Diagrammen

Erste Schritte mit Helmdiagrammen

Helm macht Kubernetes benutzerfreundlicher. Es ist ein Paketmanager. Helm -Diagramme erleichtern das Entwerfen, Installieren und Upgrade einer Kubernetes -Anwendung. Sie verwalten die Komplexität, um den Installationsprozess wiederholbar zu machen. Benutzer sind leicht in der Lage, ihre Designs zu aktualisieren und zu teilen. Außerdem hat Helm eine Rollback -Funktion, um einfach zu Bestellversionen zurückzukehren.

Helmdiagrammstruktur

Mit dem Befehl create erstellen Helm eine vorgegebene Struktur, um einen Standard zu gewährleisten.

Hallo Welt
├── Diagramm.Yaml
├── Diagramme
├── Vorlagen
│ ├── Notizen.txt
│ ├── _helpers.tpl
│ ├── Einsatz.Yaml
│ ├── Eindringen.Yaml
│ └── Service.Yaml
└── Werte.Yaml

Die obigen Dateien werden automatisch generiert. Helm verwendet das YAML -Format für Konfigurationsdateien.

Helm aufrufen

Um Helm zu verwenden, benötigen Sie die folgenden Dinge:

  • Ein Kubernetes -Cluster (Minikube bietet eine einfache Möglichkeit, Kubernetes auszuführen)
  • Installieren Sie Helm und Pinne, die serverseitige Komponente.

(Stellen Sie sicher, dass die Minikube- und Pinsion -Versionen mit dem Kubernetes -Cluster kompatibel sind.)

Sobald Sie alle Komponenten installiert haben, starten Sie Ihr Minikube:

$ minikube Start

Sie müssen auch den folgenden Befehl verwenden, um Helm und Pinne zu initialisieren:

$ Helm init

Verwenden Sie als Nächstes den folgenden Helm -Befehl, um die oben beschriebene Struktur zu erstellen:

$ helm erstellen Hallo-Welt

Schreiben Sie Ihr erstes Helmdiagramm

Lassen Sie uns den Status der Pods überprüfen:

$ kubectl Get Pod-All-NamesPaces
Namespace Name Ready Status Neustart der Alter
Kube-System Kube-Addon-Manager-Minikube 1/1 Laufen 2 1H
Kube-System Kube-DNS-54CCCFBDF8-XCLTD 3/3 Laufen 6 1H
Kube-System Kubernetes-Dasboard-77d8b98585-SJ9LM 1/1 Laufen 2 1H
Kube-System Storage-Provisioner 1/1 Ausführen 2 1H
Kube-System Tiller-Deploy-59D854595C-97HDP 1/1 Laufen 2 1H

Die Pinne -Pod und die Minikube -Schoten laufen. Nehmen wir einige Änderungen an Helm -Charts vor. Wir werden den Wert öffnen.YML. Es sieht aus wie das:

# Standardwerte für Hello-World.
# Dies ist eine YAML-formatierte Datei.
# Deklare Variablen, die in Ihre Vorlagen übergeben werden sollen.
Replicacount: 1
Bild:
Repository: Heroku/Nodejs-Hello-Welt
Tag: stabil
Pullpolicy: ifnotpresent
Service:
Typ: Clusterip
Port: 80
Eindringen:
Aktiviert: Falsch
Anmerkungen:
# Kubernetes.IO/Eindringen.Klasse: Nginx
# Kubernetes.io/tls-acme: "wahr"
Weg: /
Gastgeber:
- Chart-Beispiel.lokal
TLS: []
#-SecretName: Chart-Exampe-TLS
# Hosts:
# - Chart -Beispiel.lokal
Ressourcen:
# Wir empfehlen normalerweise, keine Standardressourcen anzugeben und dies als bewusstes zu lassen
# Auswahl für den Benutzer. Dies erhöht auch die Chancen -Chancen, die in Umgebungen mit wenig ausgeführt werden
# Ressourcen wie Minikube. Wenn Sie Ressourcen angeben möchten, wenden Sie sich an folgende
# Leitungen, passen Sie sie nach Bedarf an und entfernen Sie die lockigen Klammern nach 'Ressourcen:'.
# Grenzen:
# CPU: 100 m
# Speicher: 128mi
# Anfragen:
# CPU: 100 m
# Speicher: 128mi
Knotenauswahl:
Tolerationen: []
Affinität:

Die hervorgehobene Linie wurde geändert. Anstelle von Nginx werden wir Heroku/Nodejs-Hello-World herunterladen. Sie können die Standardwerte in diesem Wert festlegen.YML -Datei. Sie werden an andere Dateien geteilt.

Wenn wir Helm überprüfen, sehen wir nichts:

$ helm ls

Beginnen wir das Helm -Diagramm:

$ helm Installieren Sie Hallo-Welt
Name: Kussmarhor
Zuletzt eingesetzt: Fr 9. März 09:13:04 2018
Namespace: Standard
Status: bereitgestellt
RESSOURCEN:
==> v1/Service
Namenstyp Cluster-IP-EXTERNAL-IP-PORT (n) Alter
Kuss-Markhor-Hello-World Clusterip 10.110.109.73 80/TCP 1s
==> v1beta2/Bereitstellung
Name der gewünschten aktuellen aktuellen verfügbaren Altersalter
Küssen-Markhor-Hello-Welt 1 1 1 0 1s
==> v1/pod (verwandt)
Name Ready Status neu startet das Alter neu
Kussmarkhor-Hello-Welt-6bb947b9c-rttnz 0/1 ContainerCreating 0 1s
ANMERKUNGEN:
ANMERKUNGEN:
1. Holen Sie sich die Anwendungs ​​-URL, indem Sie diese Befehle ausführen:
exportpod_name = $ (kubectl Get Pods -NamePace Standard -l "app = hello -world, release = kissing
-markhor "-o jsonpath =" .Elemente [0].Metadaten.Name")
Echo "Besuchen Sie http: // 127.0.0.1: 8080, um Ihre Anwendung zu verwenden "
Kubectl Port-Forward $ pod_name 8080: 80

Der spürbare Teil ist der „Name“. Dieser Name wurde von Helm generiert.

Lassen Sie uns Helm überprüfen:

$ helm ls
Name Revision Aktualisierte Statusdiagramm -Namespace
Kussmarhor 1 Fr 9. März 09:13:04 2018 Eingesetzt Hello-World-0.1.0 Standard

Auch Kubernetes:

$ kubectl Get Pod-All-NamesPaces
Namespace Name Ready Status Neustart der Alter
Standardküsse-Markhor-Hello-World-6BBB947B9C-RTTNZ 1/1 Laufen 0 5m
Kube-System Kube-Addon-Manager-Minikube 1/1 Laufen 2 2H
Kube-System Kube-DNS-54CCCFBDF8-XCLTD 3/3 Laufen 6 2H
Kube-System Kubernetes-Dasboard-77D8B98585-SJ9LM 1/1 Laufen 2 2H
Kube-System Storage-Provisioner 1/1 Ausführen 2 2H
Kube-System Tiller-Deploy-59D854595C-97HDP 1/1 Laufen 2 2H

So wurde der Pod in Kubernetes bereitgestellt. Wir können die Portweiterleitung verwenden:

$ kubectl port-Forward Kissing-Markhor-Hello-Welt-6bb947b9c-rttnz 8080: 80

Jetzt sollten Sie in der Lage sein, Ihre bereitgestellte Anwendung zu überprüfen.

$ curl http: // 127.0.0.1: 8080



Willkommen bei nginx!



Willkommen bei nginx!


Wenn Sie diese Seite sehen, wird der Nginx -Webserver erfolgreich installiert und
Arbeiten. Weitere Konfiguration ist erforderlich.


Für Online -Dokumentation und -unterstützung finden Sie bitte
nginx.Org.

Kommerzielle Unterstützung ist bei erhältlich
nginx.com.


Vielen Dank, dass Sie Nginx verwendet haben.



Alternativ können Sie http: // 127 überprüfen.0.0.1: 8080, um die neu erstellte Anwendung anzuzeigen. Lassen Sie uns aufräumen. Finden Sie den Servernamen:

$ helm ls
Name Revision Aktualisierte Statusdiagramm -Namespace
Kussmarhor 1 Fr 9. März 09:13:04 2018 Eingesetzt Hello-World-0.1.0 Standard

Verwenden Sie den folgenden Befehl, um zu löschen:

$ helm küssmarkhor löschen
Veröffentlichen Sie "Kissing-Markhor" gelöscht

Lassen Sie uns den Cluster überprüfen:

$ kubectget pod-alle namespaces
Namespace Name Ready Status Neustart der Alter
Kube-System Kube-Addon-Manager-Minikube 1/1 Laufen 2 2H
Kube-System Kube-DNS-54CCCFBDF8-XCLTD 3/3 Laufen 6 2H
Kube-System Kubernetes-Dasboard-77D8B98585-SJ9LM 1/1 Laufen 2 2H
Kube-System Storage-Provisioner 1/1 Ausführen 2 2H
Kube-System Tiller-Deploy-59D854595C-97HDP 1/1 Laufen 2 2H

Wir können sehen.

Abschluss

Das obige sollte Ihnen die Inspiration geben, Helm -Diagramme zu verwenden. Dies sollte Ihre Kubernetes -Bereitstellungen erleichtern.

Verweise:

  • Helm.Sch/
  • Dokumente.Bitnami.com/kubernetes/how-to/create-your-First-Helm-Chart/
  • https: // docs.Helm.sh/use_helm/
  • Bauen von Helm -Charts von Grund auf: Eine Einführung in Kubernetes [i] - Amy Chen, Heptio
  • Bereitstellung der NodeJS -App für Kubernetes mit Helm | Episode 3