Eine kurze Beschreibung der Beziehung zwischen k8s und Docker

Eine kurze Beschreibung der Beziehung zwischen k8s und Docker

In letzter Zeit verwendet das Projekt Kubernetes (im Folgenden als K8s bezeichnet, zwischen K und S stehen 8 Buchstaben). Obwohl ich es zuvor einfach verwendet habe, habe ich kürzlich festgestellt, dass k8s viele Konzepte hat und die Befehle nicht ausreichen. Daher möchte ich diese Gelegenheit nutzen, um etwas zu schreiben, um ein umfassenderes Verständnis und eine umfassendere Verwendung von k8s zu erreichen. Der Zweck dieses Artikels besteht darin, Ihnen ein umfassenderes Verständnis der K8S-Konzepte zu vermitteln und gängige Vorgänge bei der Arbeit kennenzulernen. Der Gesamtfokus liegt eher auf Prinzipien und Anwendungen. Bevor wir k8s offiziell starten, werfen wir einen Blick auf die Beziehung zwischen k8s und Docker und beschreiben, warum Container aus der Perspektive der Virtualisierung und Bereitstellungsmethoden verwendet werden sollten. Lasst uns anfangen.

Derzeit gibt es keinen Artikel, der den Hintergrund und die Anforderungen der Kubernetes- und Docker-Technologien vergleicht. Dieser Artikel beginnt mit der Perspektive der reinsten offiziellen Definition und erläutert den Hintergrund der beiden Technologien und wie sie im Vergleich zu herkömmlichen Technologien stehen.

Kurze Einleitung:
Offizielle Definition 1: Docker ist eine Open-Source-Anwendungscontainer-Engine, die es Entwicklern ermöglicht, ihre Anwendungen und Abhängigkeiten in einen portablen Container zu packen und sie auf gängigen Linux-Maschinen zu veröffentlichen, die auch virtualisiert werden können.

Offizielle Definition 2: k8s ist ein Open-Source-Containercluster-Verwaltungssystem, das Funktionen wie automatische Bereitstellung, automatische Erweiterung und Verkleinerung sowie Wartung von Containerclustern realisieren kann.

Im Vergleich zur herkömmlichen Technologie:
Schauen wir uns als nächstes zwei klassische Bilder an:

1. Aus Sicht der Virtualisierung:

Abbildung 1

Das obige Bild zeigt den Unterschied zwischen Docker-Containern (etwas, das von k8s verwaltet werden kann) und herkömmlichen Virtualisierungsmethoden. Bei der herkömmlichen Virtualisierungstechnologie muss nach der Virtualisierung physischer Hardware in mehrere Hardwaresätze auf jedem Hardwaresatz ein Betriebssystem bereitgestellt und dann die entsprechenden Anwendungen auf diesen Betriebssystemen ausgeführt werden. Der Anwendungsprozess im Docker-Container läuft direkt auf dem Kernel des Host-Rechners (echte physische Maschine). Die Docker-Engine packt einige unabhängige Anwendungen und ihre jeweiligen Abhängigkeiten und führt sie unabhängig und direkt auf der nicht virtualisierten Host-Hardware aus. Gleichzeitig hat nicht jeder Container seinen eigenen Kernel, was offensichtlich leichter ist als eine herkömmliche virtuelle Maschine. Jeder Cluster verfügt über mehrere Knoten, und jeder Knoten kann verwaltet werden. Unser Kubernetes wurde entwickelt, um die kleine Betriebsumgebung (Container) zu verwalten, in der sich diese Anwendungen befinden.

2. Aus der Bereitstellungsperspektive

Abbildung 2

Bitte beachten Sie, dass Sie dieses Bild nicht mit dem Docker-Bild oben verwechseln sollten. Abbildung 1 veranschaulicht die Virtualisierungsvorgänge, die erforderlich sind, um die erforderliche Betriebsumgebung für die Anwendung aus einer Virtualisierungsperspektive bereitzustellen (d. h. traditionell: virtualisierte virtuelle Maschinen mit installierten Betriebssystemen, Docker: von der Container-Engine verwaltete Container).

Abbildung 2 zeigt die Situation, wenn echte Anwendungen in diesen spezifischen Betriebsumgebungen bereitgestellt werden. Die traditionelle Methode besteht darin, alle Anwendungen direkt auf demselben physischen Maschinenknoten bereitzustellen. Auf diese Weise sind die Abhängigkeiten jeder App genau gleich und es ist unmöglich, die Apps zu isolieren. Natürlich können wir zur Isolierung auch virtuelle Maschinen erstellen, um Apps darin bereitzustellen (wie im oberen Teil von Abbildung 1 gezeigt), aber das ist zu umständlich, daher kam die Docker-Technologie zum Einsatz, die leichter als virtuelle Maschinen ist. Jetzt stellen wir Anwendungen bereit, indem wir Container-Technologie einsetzen, und alle Container können auf der Container-Engine ausgeführt werden. Da Sie denken, virtuelle Maschinen seien zu umständlich und Sie Docker verwenden möchten, können Sie es gerne verwenden. Aber wie verwenden Sie es? Sie einzeln manuell erstellen? Natürlich nicht, also erschien die Kubernetes-Technologie und es war Zeit für das durch Kubernetes repräsentierte Container-Cluster-Verwaltungssystem, auf die Bühne zu kommen.

Einfach ausgedrückt verwenden wir Kubernetes, um Docker-Cluster zu verwalten, was bedeutet, dass Docker als eine innerhalb von Kubernetes verwendete Low-Level-Komponente betrachtet werden kann. Darüber hinaus unterstützt Kubernetes nicht nur Docker, sondern auch Rocket, eine weitere Containertechnologie. Ich hoffe, dass die einfache Beschreibung in diesem Artikel Ihnen ein gewisses Verständnis und Wissen zu beidem vermitteln kann.

Dies ist das Ende dieses Artikels über die einfache Erklärung der Beziehung zwischen k8s und Docker. Weitere Informationen zur Beziehung zwischen k8s und Docker finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen!

Das könnte Sie auch interessieren:
  • Aufbau einer Docker+K8S-Clusterumgebung und verteilte Anwendungsbereitstellung
  • Implementierung der K8S-Bereitstellung eines Docker-Containers
  • So erstellen Sie einen K8S-Cluster und installieren Docker unter Hyper-V
  • Docker-Lernhinweise zur K8S-Bereitstellungsmethode

<<:  Details zur Verwendung des Vue-Slots

>>:  Einige Fragen zu Hyperlinks

Artikel empfehlen

So erlauben Sie allen Hosts den Zugriff auf MySQL

1. Ändern Sie den Host-Feldwert eines Datensatzes...

Detaillierte Erklärung der MySQL Master-Slave-Inkonsistenz und Lösungen

1. MySQL Master-Slave-Asynchronität 1.1 Netzwerkv...

So migrieren Sie lokales MySQL in eine Serverdatenbank

Wir können den scp-Befehl von Linux (scp kann unt...

27 Linux-Befehle zum Bearbeiten von Dokumenten, die es wert sind, gesammelt zu werden

Linux-Befehl „col“ Der Linux-Befehl col wird zum ...

HTML+CSS-Implementierungscode für abgerundete Rechtecke

Mir war langweilig und plötzlich fiel mir die Impl...