Kubernetes

Kubernetes vs. Docker

Kubernetes vs. Docker
Kubernetes und Docker sind auf dem Vormarsch. Beide Technologien haben sehr unterschiedliche Wurzeln, haben sich aber in den letzten Jahren auf eine Weise verflochten, die niemand erwartet hatte. Die Communities haben sich zusammengefunden, Pakete werden auf alle möglichen Betriebssysteme portiert und da sie größtenteils Open Source sind, haben sie eine Fülle von Satellitenprojekten und Konkurrenten hervorgebracht.

All dies kann für jeden neuen Benutzer, der versucht, dieses relativ neue Paradigma zu verstehen, überwältigend sein. Lassen Sie uns die Hauptunterschiede zwischen Kubernetes und Docker diskutieren, indem wir zuerst tiefer in die Bedeutung der Technologien eintauchen. Wenn Sie mit Docker oder K8 (kurz für Kubernetes) vertraut sind, können Sie den Abschnitt TL; DR überspringen.

Was ist Docker??

Docker ist eine Containerisierungstechnologie. Sie können mehrere Anwendungen, die alle voneinander isoliert sind, auf demselben Betriebssystem ausführen, ohne dass eine Virtualisierung erforderlich ist, aber alle Vorteile einer virtualisierten Umgebung nutzen. Stellen Sie sich Docker-Container als wirklich leichte VMs für Linux vor (auch Windows, aber das ist nicht so beliebt).

Docker besteht aus 3 Hauptkomponenten, erstens der Docker-Engine, die im Hintergrund läuft und laufende Container und deren Bereitstellung verwaltet. Es stellt eine REST-API bereit, die der Docker-Client verwendet, und ermöglicht es Benutzern, mit Docker zu interagieren und neue Container zu erstellen oder die laufenden Container zu verwalten.

Docker ist jedoch eine Einzelsystemanwendung. Das heißt, es läuft und verwaltet Container auf jedem System, auf dem es gerade läuft.  Riesige Anwendungen mit tonnenweise Datenverkehr und Millionen von Anfragen aus der ganzen Welt benötigen mehr als einen Server. Hier kommt Kubernetes ins Spiel.

Was ist Kubernetes?

Kubernetes nutzt Containerisierungstechnologien wie Docker, um mehrere Replikate Ihrer Anwendung auf Servern und Rechenzentren auf der ganzen Welt auszuführen.

Eine der Containerisierungstechnologien, die Kubernetes nutzt, ist Docker. Kubernetes besteht aus einer ganzen Reihe verschiedener Softwares zur Verwaltung Ihres Clusters. Es bietet einen Management-Agenten kubeadm, die auf einigen ausgewählten Master-Nodes läuft (Nodes sind VPS oder physische Server) und dann gibt es Worker-Nodes mit darauf installiertem Docker mit a kubectl die mit der Docker-Engine kommuniziert, um den Prozess des Hoch- oder Herunterfahrens von Containern zu automatisieren. Die kubectl-Agenten, die auf allen Worker-Knoten ausgeführt werden, nehmen Befehle vom Master-Knoten entgegen und geben ihnen Feedback über den Zustand der Anwendung, die auf ihrem Knoten ausgeführt wird. So funktioniert eine K8-Installation in der Regel.

Sie können auch verschiedene verwandte Docker-Container zu Paketen (sogenannten Pods) zusammenfassen. Sie können beispielsweise SQL-Datenbank- und Redis-Cache-Container in einem Pod zusammenstellen, da die Datenbank und ihr Cache koexistieren sollen.

Ebenso können Sie Pods den anderen Pods als Dienste (auch bekannt als Microservices) zur Verfügung stellen, sodass Sie 50 SQL/Redis-Pods als Datenspeicherdienst für das Front-End Ihrer Anwendung verfügbar machen können und so weiter. Der Vorteil besteht darin, dass die 50 Pods über mehrere Rechenzentren laufen können und selbst wenn einige von ihnen ausfallen, werden andere die Lücke auffangen.

Kubernetes ist viel mehr als eine Technologie. Es ist eine Möglichkeit, über die Ausführung Ihrer Software in einem verteilten System nachzudenken.

Kubernetes ohne Docker

Wie Sie oben sehen können, ist K8 stark von Containern abhängig. Docker ist nur eine von vielen Containerisierungstechnologien, die es gibt. Andere sind rkt von CoreOS, LXC von Canonical, Jails auf FreeBSD und Zonen in Illumos und SmartOS. Kubernetes könnte potenziell auf jeder dieser Technologien implementiert werden. Tatsächlich funktioniert es ganz gut mit rkt von CoreOS.

Aufgrund der Popularität von Docker haben die Community und die Organisationen jedoch alles getan, um sicherzustellen, dass Docker alles bietet, was die Spezifikationen von Kubernetes von ihm verlangen. Aus diesem Grund sind auch Projekte wie Docker auf macOS und PC Kubernetes-zertifiziert.

Docker ohne Kubernetes

Da Kubernetes bei der Verwendung von Docker eine der besten Unterstützungen bietet, verlässt sich Docker selbst stark auf Kubernetes, um Container in großem Umfang bereitzustellen deploy. Docker hat ein eigenes Container-Management- und Orchestrierungssystem namens Docker Swarm, das eine Kubernetes-Alternative sein soll.

Obwohl Docker Swarm eine native Technologie auf Docker ist, ist Kubernetes das, wonach die Leute fragen, und die aktuellen Marktprognosen scheinen darauf hinzuweisen, dass K8 den größten Marktanteil gewinnen wird. Docker verdankt seinen Erfolg vor allem seiner Symbiose mit Kubernetes.

TL;DR

Um es kurz zu machen, Docker ist eine Containerisierungstechnologie, die auf einem einzigen Computer ausgeführt werden soll. Kubernetes ist eine Verwaltungstechnologie, die eine große Anzahl von Containern über zahlreiche Rechenknoten hinweg verwaltet.

Docker ist zufällig eine der am besten geeigneten Technologien, um Ihren K8-Stack aufzubauen. Sie stellen zunächst sicher, dass Ihre Anwendung als Docker-Container ausgeführt wird, dann sorgt K8 dafür, dass dieser Container über den gesamten Globus skaliert werden kann, wenn dies in Zukunft erforderlich ist.

Mit WinMouse können Sie die Mauszeigerbewegung auf einem Windows-PC anpassen und verbessern improve
Wenn Sie die Standardfunktionen Ihres Mauszeigers verbessern möchten, verwenden Sie Freeware WinMouse. Es fügt weitere Funktionen hinzu, damit Sie das...
Linker Mausklick funktioniert nicht unter Windows 10
Wenn Sie eine dedizierte Maus mit Ihrem Laptop oder Desktop-Computer verwenden, aber die linker Mausklick funktioniert nicht unter Windows 10/8/7 aus ...
Cursor springt oder bewegt sich zufällig während der Eingabe in Windows 10
Wenn Sie feststellen, dass Ihr Mauszeiger während der Eingabe auf einem Windows-Laptop oder -Computer automatisch und zufällig springt oder sich von s...