Was ist Kubernetes und wofür wird es verwendet?
Täglich werden Tausende neuer Apps und Programme entwickelt und veröffentlicht. Entwickler sind ständig auf der Suche nach Tools, die die Entwicklung und das Testen ihrer Apps rationalisieren können. Eine gut entwickelte App, die strengen Tests unterzogen wurde, wird nach ihrer Veröffentlichung erfolgreich sein.
Kubernetes ist eine Plattform, die es Entwicklern ermöglicht, ihre containerisierten Anwendungen bereitzustellen, zu planen und zu verwalten. Es mag für Sie im Moment etwas technisch klingen, und das ist in Ordnung. Wenn Sie sich fragen: "Was ist Kubernetes" oder "Wofür wird Kubernetes verwendet?", lesen Sie weiter, um es herauszufinden.
Was ist Kubernetes?
Kubernetes wurde ursprünglich von Ingenieuren bei Google entwickelt und wurde 2014 zu einem Open-Source-Projekt. Heute ist es eine unverzichtbare Container-Management-Lösung, die von Millionen von Entwicklern weltweit verwendet wird.
Kubernetes ist eine erweiterbare und portable Plattform, die containerisierte Dienste und Workloads für die Automatisierung und deklarative Konfiguration in technischer Hinsicht verwaltet. Das bedeutet im Wesentlichen, dass Kubernetes eine Open-Source-Plattform ist, die Entwicklern das Leben leicht macht, indem sie Linux-Container-Operationen automatisieren.
Kubernetes wurde ursprünglich von Google entworfen und entwickelt, ist aber heute Teil der Cloud Native Computing Foundation (CCNF). Die CNCF fördert die Entwicklung und Regulierung von Cloud-Rechenzentrums-Management-Software.
Was sind Container?
Container sind Anwendungskomponenten, die Anwendungsquellcode mit den erforderlichen Betriebssystemabhängigkeiten und Bibliotheken kombinieren. Entwickler bevorzugen die Verwendung von Containern für moderne Cloud-native Anwendungen, da sie ressourceneffizienter, portabel und kleiner als herkömmliche virtuelle Maschinen sind. Ein weiterer Grund, warum Entwickler gerne Container verwenden, besteht darin, dass sie vom zugrunde liegenden Betriebssystem isoliert sind.
Sobald eine Anwendung fertig ist, verpacken Entwickler sie mit den erforderlichen Bibliotheken und dem unterstützenden Code und platzieren sie in einem Container-Image. Anschließend können Sie das Container-Image auf jedem PC mit einer Containerisierungsplattform ausführen.
Sie haben wahrscheinlich schon von Docker gehört – der größten Containerisierungsplattform. Viele Cloud-Bereitstellungen von Amazon Web Service (AWS) verwenden Docker aufgrund seiner Leistungsfähigkeit und Vielseitigkeit.
Container vs. Container-Orchestrierung
Es ist wichtig, zwischen einer Containerisierungsplattform wie Docker und einer Containerorchestrierungsplattform – Kubernetes – zu unterscheiden. Containerisierungsplattformen können einzelne Container erstellen und bereitstellen, jedoch nicht gleichzeitig eine große Anzahl von Benutzern und Containern verwalten.
Container-Orchestrierungsplattformen können dies und vieles mehr effizient erledigen und sind daher eine entscheidende Komponente für die Anwendungsentwicklung. Kubernetes verwendet Docker als seine wichtigste Container-Virtualisierungsplattform.
Was ist ein Kubernetes-Cluster?
Ein Cluster ist ganz einfach eine Gruppe von Knoten, die eine containerisierte Anwendung ausführen. Kubernetes ist ein Framework, das es Entwicklern ermöglicht, einen Cluster aus vielen Containern ausfallsicher zu verwalten. Die Cluster können über mehrere Umgebungen (virtuell oder physisch) und Maschinen laufen.
Wofür wird Kubernetes verwendet?
Wie bereits erwähnt, sind Container ressourceneffizient und leichtgewichtig, um Anwendungen zu packen und auszuführen. In der Produktion kann es recht mühsam werden, Container zu verwalten und zu automatisieren.
In einem großen containerisierten Anwendungssystem kann dies bedeuten, dass Tausende von Containern und Microservices ausgeführt werden. Die manuelle Verwaltung all dieser Container ist jetzt sehr komplex, sodass die Container-Orchestrierung über Kubernetes den ausfallsicheren Betrieb verteilter Systeme ermöglicht.
Kubernetes gleicht den Netzwerkverkehr bei hohem Datenverkehr automatisch aus und kann auch Speichersysteme wie lokale Speicher, öffentliche Clouds usw. bereitstellen. Außerdem erhalten Sie ein zusätzliches Sicherheitsgefühl, da die Wahrscheinlichkeit menschlicher Fehler verringert wird.
Entwickler können die Vorteile der vollständigen Automatisierung von Betriebsaufgaben nutzen, die sie sonst für jeden Container manuell ausführen würden. Mit Kubernetes können Sie Hardwareressourcen optimal nutzen – und sogar Anwendungsupdates und -bereitstellung automatisieren und steuern. Kubernetes macht es auch sehr einfach, containerisierte Anwendungen und Ressourcen zu skalieren.
Mithilfe von Kubernetes-Mustern können Sie sogar Cloud-native Apps erstellen. Für zusätzliche Registrierungs-, Netzwerk- oder Telemetriefunktionen integrieren Entwickler Kubernetes in andere Projekte wie Docker Registry, OpenVSwitch, Kibana usw.
So installieren Sie Kubernetes
Sie können Kubernetes auf verschiedene Weise installieren. Einige der gebräuchlicheren Installationsmethoden sind:
- kubeadm
- Minikube
- kops
- Kubernetes auf der Google Cloud Platform
In diesem Artikel konzentrieren wir uns auf die Installation von Kubernetes über Minikube. Dies ist eine lokale Kubernetes-Umgebung, die es ideal für Anfänger macht, die Anwendung zu erlernen und zu entwickeln.
Die minimalen Systemanforderungen für die Installation von minikube sind wie folgt:
- Mindestens 2 GB freier Speicher (RAM).
- 20 GB freier Speicherplatz auf Ihrer SSD oder Festplatte.
- Mindestens 2 Computer Processing Units (CPUs).
- Virtual Machine Manager (wie VMWare oder Virtual) oder Container (Docker).
Wir empfehlen, die stabile Version herunterzuladen, um unnötige Probleme zu vermeiden, wenn Sie mit der Kubernetes-Umgebung beginnen.
Kubernetes unter Windows installieren
Sie können minikube über den Windows-Paket-Manager oder mit einem eigenständigen Windows-Installationsprogramm auf einem Windows-PC installieren.
Sehen wir uns an, wie Sie Minikube über das .exe-Windows-Installationsprogramm installieren können:
- Laden Sie das Minikube-Installationsprogramm von der offiziellen Website herunter .
- Suchen Sie die heruntergeladene Datei und starten Sie sie als Administrator
- Schließen Sie den Installationsassistenten ab, um minikube zu installieren.
Nachdem Sie minikube auf Ihrem Windows-PC installiert haben, können Sie über ein Befehlszeilenterminal loslegen.
Kubernetes unter Linux installieren
Das Installieren von Paketen unter Linux ist ziemlich einfach, und Minikube ist nicht anders. Sie müssen nur die Architektur Ihres Systems kennen. Wenn Sie sich nicht sicher sind, welche Architektur Ihr Linux hat, führen Sie den folgenden Befehl auf dem Terminal aus:
uname -m
Das von uns verwendete Ubuntu-System zeigt x86-64, was bedeutet, dass es sich um ein 64-Bit-Betriebssystem handelt.
Es ist wichtig, dass Sie die richtige Architektur und den Installationstyp (Binär, Debian oder RPM) auf der Minikube-Installationsseite auswählen . Sobald Sie sich bezüglich der Systemarchitektur und des Installationstyps sicher sind, können Sie den entsprechenden Befehl auf dem Terminal ausführen, um minikube zu installieren.
Wir haben einen stabilen Binär-Installer auf unserem 64-Bit-Ubuntu-Betriebssystem mit den folgenden Befehlen installiert:
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
sudo install minikube-linux-amd64 /usr/local/bin/minikube
Kubernetes unter macOS installieren
Sie können minikube auf macOS ganz einfach über das macOS-Terminal installieren. Wenn Sie den Homebrew Package Manager installiert haben, müssen Sie nur den folgenden Befehl auf dem Terminal eingeben, um minikube zu installieren:
brew install minikube
Wenn Sie Homebrew nicht installiert haben, können Sie dies mit dem folgenden Befehl tun:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Nachdem Sie minikube installiert haben, können Sie mit der Erstellung von Clustern für Ihre Cloud-Apps beginnen.
Kubernetes für containerisierte Anwendungen: Die erste Wahl für viele Entwickler
Kubernetes ist ein unverzichtbares Tool für die Bereitstellung, Konfiguration, Überwachung und Verwaltung großer containerisierter Anwendungen. Wenn Sie eine Karriere im Bereich Dev-Ops anstreben, empfehlen wir Ihnen dringend, sich mit Kubernetes vertraut zu machen.