Etwas programmiert haben … mit Java, Python oder jede andere Programmiersprache
Grundlagen der Kommando-Zeile (oder Du kopiert einfach die Befehle unten 🙂 )
Admin-Reche, um Programme zu installieren und zu deinstallieren
Technische Voraussetzungen: Das brauchst Du für Dein erstes Kuberenetes Projekt
Windows 10 / 7 Computer – Dieses Tutorial ist für Windows Computer ausgelegt
Admin-Rechte
Mehr als 5 GB RAM (besser 12 GB)
Editor
Editor (Visual Studio Code)
Neben dem Browser brauchst Du einen Code-Editor Deiner Wahl. Notepad(++) kannst Du alternativ nutzen. Am besten verwendest Du einen Editor mit Syntax-Highlighting und IntelliSense wie z. B. Visual Studio Code.
Ein Microservices ist ein Architekturmuster, das die Service Oriented Architecture (SOA) umsetzt. Ein großes Programm, ein Monolith, teilt eine Microservice-Architektur in viele kleine unabhängige Programme und Instanzen auf.
Ein Mini-Programm soll nur EINE Aufgabe oder EINE Domäne (Aufgabenbereich) erfüllen.
Vorteile von Microservices
Bei der Service Oriented Architecture kann der Entwickler Microservices replizieren (ver-X-fachen), um …
einen höheren Durchsatz (mehr Operationen, abgeschlossen Jobs pro Minute)
Ein wichtiges nicht funktionales Ziel eines Softwaresystems ist die (Hoch-)Verfügbarkeit zu erreichen. Die Umsetzung der Microservice-Architektur mit Replizierung schafft eine (Hoch-)Verfügbarkeit.
Eine Failure-Unit ist eine Instanz eines Microservices, der bei einem Crash im Code abstürzen kann. Bei einer losen Kopplung beeinflusst der Absturz einer einzelnen Failure-Unit das Gesamtsystem nicht
Continuous Integration / Continuous Development (CI / CD)
Rolle in kleinen Iterationen die neuen Features der Software in wenigen Stunden aus
Mit der Fertigstellung eines Features kann der CI-/CD-Prozess die alte veröffentliche Installation automatisch überschreiben.
Basics: Kubernetes Grundlagen verstehen
Wenn Du zum ersten Mal mit Kubernetes zu tun hast, dann laufen Dir eine Menge unbekannter Begriffe über den Weg.
Dieser Abschnitt soll die wichtigsten Konzepte / Begriffe so kurz wie möglich erklären.
Lese Dir den folgenden Abschnitt durch, um den Praxis-Teil besser zu verstehen.
Die Konzepte von Kubernetes
Bei der Virtualisierung in Containern erhält ein Prozess einen komplett eigene Laufzeitumgebung zum Ausführen des Codes. Unterschiedliche Programme können sich mit der Containerisierung des Codes auf dem gleichen physisch Rechner ausführen.
Ein Pod ist eine Art virtuelle Maschine, die alle technischen Hardware- und Software-Grundlagen zur Verfügung stellt, um Deinen Code zum Ausführen braucht.
Ein Container kann ein oder mehrere Pods fassen und stellt eine Kubernetes-Instanz dar. Ein physischer Computer kann mehrere Container parallel betrieben. Diese Form von dynamischem Server-Betrieb ist ressourcenschonend.
Die Technik hinter Containern
Die Hyper-V-Schicht liegt zwischen dem Betriebssystem der virtuellen Maschine und der Hardware. Mit Hyper-V, einen Virtual-Machine-Monitor, kann der Nutzer für eine virtuelle Maschine die RAM-Größe und CPU-Last begrenzen.
Namespace nennt sich ein virtuelles Cluster eines gleichen Prozesses. Kubernetes kann mehrere virtuelle Cluster auf einen physischen echten Computer ausführen.
Ein Image ist ein Software-Paket bestehend aus Deinem Code und der Laufzeitumgebung.
Software-Projekte für Container
Kubernetes verwaltet, erstellt, skaliert und automatisiert Container-Anwendungen. Die Anwendung hat Google ursprünglich für eigene Zwecke entworfen.
Docker ermöglicht die Virtualisierung von Programmen und Betriebssystemen in Container.
Helm ist das Node.js für Docker-Container. Helm stellt fertige Docker-Container zur Verfügung. Der Entwickler kann „auf die Schnelle“ eine fertige Laufzeitumgebung für Node.js erstellen, ohne viel konfigurieren zu müssen.
Coden: Ab in die Praxis
Jetzt wird’s ernst.
Wir erstellen mit diesen Schritten Deinen ersten Container.
Solltest Du stecken bleiben – dann schreibe einen Kommentar mit Deiner Fehlermeldungen unten in das Kommentar-Feld.
Was installieren wir in diesem Tutorial
Kubernetes in Form von „Minikube“ innerhalb des Windows Betriebssystems 00 Kuberentes Homepage – Kubernetes Tutorial deusch Steffen Lippke Coding Lab
Wenn nur “Hyper-V Requirements: A hypervisor has been detected. Features required for Hyper-V will not be displayed.” auftaucht, musst Du Hyper-V installieren.
[Nur wenn Hyper-V installiert werden muss] Suche in Windows nach Features hinzufügen und Windows öffnet Dir ein Auswahlfenster:
Setze den Windows Pfad für die .exe Datei, sodass Windows das Kommand kubectl mit der Konsole finden kann. Suche in Windows nach den Umgebungsvariable setzen. Gebe 2x unter Benutzer und System Path in einem neuen Eintrag ein. Der eingegeben Pfad sollte auf die .exe von kubectl zeigen. C:\Users\<USER>\Downloads06 Kubectl Path hinzufügen – Kubernetes Tutorial deutsch Steffen Lippke Coding Lab
07 PATH für alle – Kubernetes Tutorial deutsch Steffen Lippke Coding Lab
Logge Dich aus und wieder ein, um die Variablen zu setzten. (NICHT SPERREN UND ENTSPERREN – das bringt nichts)
Öffne die CMD mit den Admin-Rechten und teste die Installation mit kubectl version
[automatisch mit Login] Docker logt Dich aus und wieder ein
Öffne die CMD mit den Admin-Rechten und teste die Installation mit docker –v12 Installiere Docker – Kubernetes Tutorial deutsch Steffen Lippke Coding Lab
Öffne Visual Studio Code in diesem Ordner und erstelle eine helloServer.js
… und eine Docker-Datei
Öffne die GIT BASH mit den Admin-Rechten. Eine Git Bash erhältst Du mit Deiner Git Installation.
Starte Minikube neu minikube start
Dann konfiguriere Minikube so eval $(minikube docker-env)
Erstelle eine Docker Image mit docker build -t helloservernode .14 Docker Build dauert immer lang – Kubernetes Tutorial deutsch Steffen Lippke Coding Lab
(dauert 1–15 Min je nach Rechenleistung und Netzwerk)
Installiere den Pod im Minikube kubectl run hello-foo --image=helloservernode:latest --image-pull-policy=Never
Wenn die Installation erfolgreich war, siehst Du mit kubectl get deployments alle Installationen auf dem Minikube
Um den Pod außerhalb des Containers mit dem Browser zu erreichen, müssen wir einen Service aufsetzen mit kubectl expose deployment helloservernode --type=LoadBalancer --port=8080
Mit kubectl get services siehst Du alle Services
Rufe minikube service helloservernode Dein Browser sollte sich öffnen und die Webseite http://172.17.17.189:30392/ zeigen
Quellenangabe Bilder: Icons und SVG-Grafiken im Titelbild von Microsoft PowerPoint 2019, frei verfügbar nach EULA *) Mit dem Abonnement des Newsletters erklären Sie sich mit der Analyse des Newsletters durch individuelle Messung, Speicherung und Analyse von Öffnungsraten und der Klickraten in Profilen zu Zwecken der Gestaltung künftig besserer Newsletter einverstanden. Sie können die Einwilligung in den Empfang des Newsletters und die Messung mit Wirkung für die Zukunft widerrufen. Mehr in der Datenschutzerklärung.