Sie haben viel über Kubernetes gehört, sind sich aber nicht sicher, was sie sind?
What is Kubernetes?
Kubernetes ist ein Open-Source-Tool, das sich um die Container-Orchestrierung kümmert. Es automatisiert die Bereitstellung von Containern, die kontinuierliche Skalierung und De-Skalierung, den Lastausgleich von Containern usw.
Google hat sich zunächst entwickelt Kubernetes on the Go Programmiersprache.
Derzeit ist es Marktführer bei der Orchestrierung von Containern. Kubernetes ist eine ideale Plattform für das Hosting von Microservices-Anwendungen, die dynamisch skaliert werden. Wenn Sie in einer Produktionsumgebung arbeiten, ist Kubernetes die am meisten bevorzugte und sicherere Plattform für die Container-Orchestrierung.
Da Sie in einer Produktionsumgebung keine Ausfallzeiten erwarten, sollte Ihr Cluster immer betriebsbereit sein.
Mit Google Cloud Platform (GCP) können Sie Kubernetes mit nur wenigen Klicks starten. Es wird von anderen Cloud-Anbietern wie AWS und Azure unterstützt. Und es gibt mehrere verwaltete Kubernetes-Plattform erhältlich.
Why Kubernetes?
Früher war ein Kampf zwischen Entwicklern und Testern eine häufige Sache.
Früher waren die Umgebungen für sie unterschiedlich. Was auf dem Entwicklersystem funktionierte, lief nicht auf dem Testersystem.
Jetzt, da die meisten Organisationen Container verwenden, treten die Probleme, die aufgrund von Unterschieden in der Umgebung auftreten, nicht mehr auf.
Das Organisieren und Ausführen mehrerer Container ist jedoch auch keine leichte Aufgabe. Wenn Sie an dynamischen Anwendungen arbeiten und diese vergrößern / verkleinern, ist die Anzahl der Container normal. Das manuelle Ausführen solcher Aufgaben kann komplex und riskant sein. Daher ist ein Container-Orchestrierungs-Tool erforderlich, weshalb Kubernetes benötigt wird.
Kubernetes Features
Es gibt viele, aber die folgenden sind einige der besten.
# Automatisches Verpacken von Behältern
Kubernetes verpackt Ihre Anwendung und platziert Container automatisch basierend auf ihren Anforderungen und den verfügbaren Ressourcen
# Serviceerkennung und Lastausgleich
Kubernetes weist Containern, die logische Operationen ausführen, automatisch ihre IP-Adressen und einen DNS-Namen zu. Die Lastausgleichsfunktion ist auch zwischen den Containern vorhanden.
# Speicher-Orchestrierung
Kubernetes mountet automatisch das Speichersystem Ihrer Wahl. Es kann beides sein lokaler Speicher oder eine öffentliche Cloud Anbieter wie AWS.
# Selbstheilung
Immer wenn Kubernetes feststellt, dass einer Ihrer Container ausgefallen ist, wird dieser Container von selbst neu gestartet. Außerdem wird anstelle des abgestürzten Containers ein neuer Container erstellt. Falls Ihr Knoten ausfällt, werden die auf diesem Knoten ausgeführten Container auf einem anderen laufenden Knoten im Cluster gestartet.
# Horizontale Skalierung
Mit einem einfachen Befehl können Sie Ihre Anwendungen schnell vergrößern und verkleinern. Der einfache Befehl kann auf der CLI oder über das Kubernetes-Dashboard ausgeführt werden. Eine automatische Skalierung ist ebenfalls möglich. Abhängig von der CPU-Auslastung werden Ihre Container automatisch vergrößert oder verkleinert.
# Automatisches Rollback und Rollout
Immer wenn Ihre Anwendung aktualisiert wird, führt Kubernetes diese Änderungen und Aktualisierungen der Anwendung oder ihrer Konfigurationen schrittweise durch. Nicht alle Instanzen werden gleichzeitig aktualisiert, um eine hohe Verfügbarkeit zu gewährleisten. Wenn etwas schief geht, wird Kubernetes diese Änderungen sofort rückgängig machen.
Kubernetes Terminologies
Bevor Sie sich die Hände schmutzig machen, müssen Sie einige in Kubernetes regelmäßig verwendete Terminologien kennen.
# Schote
Es repräsentiert einen oder mehrere Container, die in einem Cluster ausgeführt werden.
# Service
Eine abstrakte Möglichkeit, auf Pod / Anwendung zuzugreifen.
# Namespace
Es wird verwendet, um Namenskollisionen innerhalb eines Clusters zu entfernen. Es unterstützt mehrere virtuelle Cluster auf demselben physischen Cluster.
# Knoten
Kubernetes Arbeitermaschine.
# Gruppe
Bestehend aus einer Gruppe von Knoten, auf denen containerisierte Anwendungen auf Kubernetes ausgeführt werden.
# Anmerkung
Ein Etikett zum Speichern von Daten, die von Ressourcen benötigt werden.
# Volume
Es ist das Datenverzeichnis, auf das Container im Pod zugreifen.
# Replikat-Set
Mehrere Repliken von laufenden Pods.
# Label
Geben Sie Kubernetes-Objekten einen Namen, damit sie systemweit identifiziert werden können.
# kubelet
Es ist ein Agent, der auf jedem Knoten ausgeführt wird und prüft, ob die Container in den Pods ausgeführt werden.
# kubectl
Befehlszeilenprogramm zur Interaktion mit dem Kubernetes-API-Server.
# Kube-Proxy
Netzwerkproxy, der alle Netzwerkregeln auf jedem Knoten im Cluster enthält.
Kubernetes and Docker
Jetzt denken Sie vielleicht, wie sich Kubernetes von Docker unterscheidet. Der Satz Kubernetes vs. Docker kann irreführend sein.
Docker ist eine Plattform, die Betriebssysteme, Bibliotheken und Anwendungen in einem Container verpackt. Lassen Sie mich Ihnen sagen, dass Docker dasselbe tut, was es in Kubernetes tun soll. Wenn Sie jedoch nur mit Docker arbeiten, ist alles manuell. Sie müssen Container manuell starten und stoppen. Aber mit Kubernetes wird alles automatisiert.
Kubernetes kann Pods mit Containern planen. Kubelet weist Docker dann an, Container zu starten oder zu stoppen. Kubelet in Kubernetes ist dafür verantwortlich, diese Container zu überwachen und ihre Informationen auf dem Masterknoten zu sammeln. Der grundlegende Unterschied besteht also darin, dass Administratoren Docker nicht sagen, was zu tun ist. In Kubernetes ist alles automatisiert.
Es gibt ein anderes Tool für die Container-Orchestrierung Hafenschwarm. Also, was ist der Unterschied zwischen ihnen?
Kubernetes vs. Docker Swarm
Kubernetes | Hafenschwarm |
Die Installation ist komplex | Die Installation ist einfach |
Größere Open Source Community | Kleinere Community im Vergleich zu Kubernetes |
Kann problemlos Hunderte von Containern orchestrieren | Gut für die Orchestrierung von 10-20 Containern |
Das Kubernetes Dashboard bietet eine grafische Benutzeroberfläche | Keine GUI |
Unterstützt die automatische Skalierung | Unterstützt keine automatische Skalierung |
Unterstützt fortlaufende Updates mit automatischem Rollback | Unterstützt fortlaufende Updates, jedoch kein automatisches Rollback |
Protokollierung und Überwachung verfügbar eingebaut | Benötigt Drittanbieter wie ELK für die Protokollierung und Überwachung |
Kann das Volumen mit Containern im selben Pod teilen | Kann das Volume mit jedem Container im Cluster teilen |
Conclusion
Ich hoffe, Sie haben jetzt ein grundlegendes Verständnis dafür, was Kubernetes ist und wie es hilft. Wenn Sie sich für DevOps interessieren oder darüber nachdenken, sich darauf einzulassen, würde ich vorschlagen, dies zu tun fantastischer Udemy-Kurs, um Kubernetes zu lernen.