Heim >Betrieb und Instandhaltung >Docker >Was ist der Unterschied zwischen k8s und Docker?

Was ist der Unterschied zwischen k8s und Docker?

青灯夜游
青灯夜游Original
2020-10-23 16:26:434778Durchsuche

Unterschied: k8s ist ein Open-Source-Container-Cluster-Managementsystem, das die automatische Bereitstellung, automatische Erweiterung und Kontraktion, Wartung und andere Funktionen von Container-Clustern realisieren kann; Docker ist eine Open-Source-Anwendungscontainer-Engine, in die Entwickler ihre Anwendungen und Abhängigkeiten packen können Es wird in einem tragbaren Container auf gängigen Linux-Rechnern veröffentlicht und kann auch virtualisiert werden.

Was ist der Unterschied zwischen k8s und Docker?

(Empfohlenes Tutorial: Docker-Tutorial)

Der Unterschied und die Einführung von Docker und k8s

Im Jahr 2010 gründeten mehrere junge Leute, die sich mit IT beschäftigten, ein Unternehmen namens „dotCloud“.

Dieses Unternehmen bietet hauptsächlich Cloud-Computing-Technologiedienste auf Basis von PaaS an. Konkret handelt es sich um die mit LXC verwandte Containertechnologie.

LXC ist eine Linux-Container-Virtualisierungstechnologie (Linux-Container)

Später vereinfachte und standardisierte dotCloud seine Containertechnologie und nannte sie Docker.

Nach der Geburt der Docker-Technologie erregte sie nicht die Aufmerksamkeit der Branche. Als kleines Startup kämpft dotCloud zudem mit einem harten Wettbewerb.

Gerade als sie kurz davor standen, die Kontrolle zu verlieren, kam ihnen die Idee von „Open Source“ in den Sinn.

Was ist „Open Source“? Open Source bedeutet offener Quellcode. Das heißt, der ursprüngliche, intern vertrauliche Quellcode des Programms steht jedem offen, und dann kann jeder teilnehmen und Code und Meinungen beisteuern.

Open Source, Open Source

Manche Software ist von Anfang an Open Source. Es gibt auch einige Software, die nicht gemischt werden kann, und die Entwickler wollen nicht aufgeben, also entscheiden sie sich für Open Source. Wenn Sie sich nicht selbst versorgen können, essen Sie einfach „Lebensmittel von Hunderten von Familien“.

Im März 2013 beschloss der 28-jährige Solomon Hykes, einer der Gründer von dotCloud und Vater von Docker, offiziell, das Docker-Projekt als Open Source zu veröffentlichen.

Solomon Hykes (der dieses Jahr gerade von Docker zurückgetreten ist)

Es ist nichts, wenn man es nicht öffnet, und es ist erstaunlich, wenn man es einmal öffnet.

Immer mehr IT-Ingenieure haben die Vorteile von Docker entdeckt und strömen herbei, um der Docker-Open-Source-Community beizutreten.

Die Popularität von Docker nimmt rasant zu und die Geschwindigkeit ist atemberaubend.

Im Monat des Open Source wurde Docker Version 0.1 veröffentlicht. Seitdem veröffentlicht Docker jeden Monat eine Version. Am 9. Juni 2014 wurde Docker Version 1.0 offiziell veröffentlicht.

Zu diesem Zeitpunkt hat sich Docker zu einer der beliebtesten Open-Source-Technologien in der Branche entwickelt. Sogar Giganten wie Google, Microsoft, Amazon und VMware favorisieren es und drücken ihre volle Unterstützung aus.

Nachdem Docker populär wurde, änderte dotCloud einfach den Firmennamen in Docker Inc.

Warum sind Docker- und Container-Technologie so beliebt? Um es ganz klar auszudrücken: Es liegt daran, dass es „leicht“ ist.

Vor der Container-Technologie waren virtuelle Maschinen der Internet-Star der Branche. Die Vertreter der Virtual Machine-Technologie sind VMWare und OpenStack.

Ich glaube, viele Menschen haben virtuelle Maschinen verwendet. Eine virtuelle Maschine besteht darin, eine Software in Ihrem Betriebssystem zu installieren und diese dann zur Simulation eines oder sogar mehrerer „Subcomputer“ zu verwenden.

Virtuelle Maschine, ähnlich einem „Subcomputer“

Im „Subcomputer“ können Sie Programme wie auf einem normalen Computer ausführen, z. B. das Öffnen von QQ. Wenn Sie möchten, können Sie mehrere „Subcomputer“ erstellen, auf denen QQ läuft. „Subcomputer“ und „Subcomputer“ sind voneinander isoliert und beeinflussen sich gegenseitig nicht.

Virtuelle Maschinen gehören zur Virtualisierungstechnologie. Containertechnologie wie Docker ist ebenfalls eine Virtualisierungstechnologie und gehört zur „leichten Virtualisierung“. Obwohl eine virtuelle Maschine viele „Untercomputer“ isolieren kann, nimmt sie mehr Platz ein, startet langsamer und die Software der virtuellen Maschine kann Geld kosten (z. B. VMWare).

Die Containertechnologie weist diese Mängel nicht auf. Es muss nicht das gesamte Betriebssystem virtualisiert werden, sondern nur eine kleine Umgebung (ähnlich einer „Sandbox“).

Sandbox

Es startet schnell und kann in Sekundenschnelle abgeschlossen werden. Darüber hinaus ist es äußerst ressourceneffizient (ein Host kann Tausende von Docker-Containern gleichzeitig ausführen). Darüber hinaus benötigen virtuelle Maschinen im Allgemeinen mehrere bis Dutzende GB Speicherplatz, während Container nur MB oder sogar KB benötigen.

Vergleich zwischen Containern und virtuellen Maschinen

Aus diesem Grund ist die Containertechnologie sehr willkommen und gefragt und entwickelt sich rasant weiter.

Werfen wir einen genaueren Blick auf Docker.

Jeder muss beachten, dass Docker selbst kein Container ist, sondern ein Tool zum Erstellen von Containern und eine Anwendungscontainer-Engine.

Wenn Sie Docker verstehen wollen, lesen Sie einfach seine beiden Slogans.

Der erste Satz lautet „Build, Ship and Run“.

Das heißt, „bauen, senden und ausführen“, drei Dinge.

Zum Beispiel:

Ich kam auf ein unbebautes Grundstück und wollte ein Haus bauen, also bewegte ich Steine, hackte Holz, zeichnete Zeichnungen und baute schließlich das Haus.

Infolgedessen lebte ich eine Zeit lang dort und wollte in einen anderen leeren Raum umziehen. Derzeit kann ich nach den bisherigen Methoden nur Steine ​​bewegen, Holz hacken, Zeichnungen zeichnen und wieder Häuser bauen.

Aber eine alte Hexe kam und lehrte mich einen Zauber.

Diese Art von Magie kann eine Kopie des Hauses, das ich gebaut habe, erstellen, es zu einem „Spiegelbild“ machen und es in meinen Rucksack stecken.

Wenn ich an eine andere offene Stelle komme, werde ich dieses „Spiegelbild“ verwenden, um ein Haus zu kopieren, es dort zu platzieren und mit meinen Taschen einzuziehen. Wie wäre es mit

? Ist es nicht erstaunlich?

Der zweite Slogan von Docker lautet also: „Einmal erstellen, überall ausführen (Einmal erstellen, überall ausführen)“.

Die drei Kernkonzepte der Docker-Technologie sind:

  • Image
  • Container
  • Repository

In meinem Beispiel gerade ist das im Paket. Der „Spiegel“ darin ist Docker-Image. Und mein Rucksack ist das Docker Warehouse. Das Haus, das ich mit Magie gebaut habe, ist ein „Docker-Container“ im offenen Raum. Um es ganz klar auszudrücken: Dieses Docker-Image ist ein spezielles Dateisystem. Neben der Bereitstellung der für die Containerlaufzeit erforderlichen Programme, Bibliotheken, Ressourcen, Konfigurationen und anderen Dateien enthält es auch einige für die Laufzeit vorbereitete Konfigurationsparameter (z. B. Umgebungsvariablen). Das Bild enthält keine dynamischen Daten und sein Inhalt wird nach der Erstellung nicht geändert.

Mit anderen Worten: Jedes Mal, wenn das Haus umgestaltet wird, wird das Haus dasselbe sein, aber Dinge des täglichen Bedarfs und dergleichen werden ignoriert. Für den Kauf ist derjenige verantwortlich, der in der Immobilie wohnt.

Jedes Spiegelbild kann sich in eine Art Haus verwandeln. Dann kann ich mehrere Spiegel haben!

Mit anderen Worten, ich habe eine Villa im europäischen Stil gebaut und ein Spiegelbild erstellt. Ein anderer Kumpel hat möglicherweise ein chinesisches Hofhaus gebaut und ebenfalls ein Spiegelbild erstellt. Es gibt auch einen Kumpel, der ein afrikanisches Reetdachhaus gebaut und auch ein Spiegelbild erstellt hat. . .

Auf diese Weise können wir Bilder austauschen. Du verwendest meine und ich verwende deine. Wäre das nicht großartig?

Seitdem wurde es zu einem großen öffentlichen Lagerhaus.

Derjenige, der für die Verwaltung von Docker-Images verantwortlich ist, ist der

Docker-Registrierungsdienst

(ähnlich einem Warehouse-Administrator). Nicht jeder von irgendjemandem erstellte Spiegel ist legal. Was wäre, wenn jemand ein Haus mit Problemen bauen würde?

Der Docker-Registrierungsdienst ist also sehr streng in Bezug auf die Bildverwaltung.

Der am häufigsten genutzte öffentliche Registrierungsdienst ist der offizielle

Docker Hub

, der auch die Standardregistrierung ist und über eine große Anzahl hochwertiger offizieller Bilder verfügt. Okay, nachdem wir über Docker gesprochen haben, richten wir unsere Aufmerksamkeit auf K8S.

Gerade als die Docker-Container-Technologie hochgelobt wurde, stellten alle fest, dass es schwierig war, Docker auf bestimmte Geschäftsimplementierungen anzuwenden – Orchestrierung, Verwaltung, Planung und andere Aspekte waren nicht einfach. Daher benötigen die Menschen dringend ein Verwaltungssystem, das eine fortschrittlichere und flexiblere Verwaltung von Docker und Containern ermöglicht.

Zu diesem Zeitpunkt erschien K8S.

K8S ist eine Container-basierte Cluster-Management-Plattform. Der vollständige Name lautet Kubernetes.

Das Wort Kubernetes kommt aus dem Griechischen und bedeutet Steuermann oder Navigator. K8S ist die Abkürzung und ersetzt die 8 Zeichen von „ubernete“ durch das Wort „8“.

Im Gegensatz zu Docker ist der Schöpfer von K8S ein bekannter Branchenriese –

Google

. Allerdings ist K8S keine brandneue Erfindung. Sein Vorgänger ist das

Borg-System

, an dem Google seit mehr als zehn Jahren herumbastelt. K8S wurde im Juni 2014 von Google offiziell angekündigt und als Open Source angekündigt.

Im Juli desselben Jahres traten nacheinander Unternehmen wie Microsoft, Red Hat, IBM, Docker, CoreOS, Mesosphere und Saltstack K8S bei.

Im Laufe des nächsten Jahres schlossen sich nach und nach auch VMware, HP, Intel und andere Unternehmen an.

Im Juli 2015 ist Google offiziell der OpenStack Foundation beigetreten. Gleichzeitig wurde Kuberentes v1.0 offiziell veröffentlicht.

Derzeit ist die Version von Kubernetes auf V1.13 weiterentwickelt.

Die Architektur von K8S ist etwas kompliziert, werfen wir einen kurzen Blick darauf.

Ein K8S-System wird normalerweise als K8S-Cluster (Cluster) bezeichnet.

Dieser Cluster besteht hauptsächlich aus zwei Teilen:

  • Ein Masterknoten (Masterknoten)
  • Eine Gruppe von Knotenknoten (Rechenknoten)

Sie können auf einen Blick verstehen: den Master Der Knoten ist hauptsächlich für die Verwaltung und Kontrolle verantwortlich. Knoten ist ein Workload-Knoten, der bestimmte Container enthält.

Schauen wir uns diese beiden Knoten genauer an.

Der erste ist der Master-Knoten.

Der Masterknoten umfasst API-Server, Scheduler, Controller-Manager usw.

API-Server ist die externe Schnittstelle des gesamten Systems, die von Clients und anderen Komponenten aufgerufen wird. Es entspricht einer „Geschäftshalle“.

Scheduler ist für die Planung von Ressourcen innerhalb des Clusters verantwortlich, was dem „Planungsraum“ entspricht.

Der Controller-Manager ist für die Verwaltung des Controllers verantwortlich, was dem „General Manager“ entspricht.

Dann Knoten .

Knotenknoten umfassen Docker, Kubelet, Kube-Proxy, Fluentd, Kube-DNS (optional) und Pod.

Pod ist die grundlegendste Betriebseinheit von Kubernetes. Ein Pod stellt einen im Cluster laufenden Prozess dar, der einen oder mehrere eng verwandte Container kapselt. Zusätzlich zum Pod verfügt K8S auch über das Konzept eines Dienstes. Ein Dienst kann als externe Zugriffsschnittstelle einer Gruppe von Pods betrachtet werden, die denselben Dienst bereitstellen. Dieser Absatz ist nicht leicht zu verstehen, also überspringen Sie ihn.

Docker erstellt selbstverständlich Container.

Kubelet ist hauptsächlich für die Überwachung des Pods verantwortlich, der dem Knoten zugewiesen ist, auf dem er sich befindet, einschließlich Erstellung, Änderung, Überwachung, Löschung usw.

Kube-Proxy ist hauptsächlich für die Bereitstellung eines Proxys für Pod-Objekte verantwortlich.

Fluentd, hauptsächlich verantwortlich für die Protokollerfassung, -speicherung und -abfrage.

Bist du etwas verwirrt? Leider ist es wirklich schwer, es in ein paar Worten klar zu erklären, also überspringe es einfach weiter.

Docker und K8S wurden eingeführt, aber der Artikel ist noch nicht zu Ende.

Der folgende Teil ist für Kernnetzwerkingenieure und sogar alle Kommunikationsingenieure geschrieben.

Von 1G vor Jahrzehnten über 4G heute bis hin zu 5G in der Zukunft hat die Mobilkommunikation weltbewegende Veränderungen erfahren, ebenso wie das Kernnetz.

Wenn Sie sich diese Änderungen jedoch genauer ansehen, werden Sie feststellen, dass sich das sogenannte Kernnetzwerk im Wesentlichen nicht geändert hat, es handelt sich lediglich um eine Menge Server. Unterschiedliche Kernnetzwerkelemente sind unterschiedliche Server und unterschiedliche Rechenknoten.

Was sich geändert hat, ist die Form und Schnittstelle dieser „Server“: Die Form hat sich von Schrank-Einzelplatinen zu Schrank-Blades und von Schrank-Blades zu X86-Universal-Blade-Servern geändert; die Schnittstellen haben sich von Stammkabeln zu Netzwerkkabeln geändert Von Netzwerkkabeln bis hin zu Glasfasern.

Auch wenn es sich ändert, ist es immer noch ein Server, ein Rechenknoten und eine CPU.

Da es sich um einen Server handelt, wird er zwangsläufig den Weg der Virtualisierung wie IT-Cloud-Computing einschlagen. Schließlich hat die Virtualisierung zu viele Vorteile, wie z. B. niedrige Kosten, hohe Auslastung, volle Flexibilität, dynamische Planung usw., die oben erwähnt wurden.

Vor ein paar Jahren glaubte jeder, dass virtuelle Maschinen die ultimative Form von Kernnetzwerken seien. Derzeit scheint es eher eine Containerisierung zu sein. NFV (Network Element Function Virtualization), das in den letzten Jahren oft erwähnt wurde, kann auch in NFC (Network Element Function Containerization) umbenannt werden.

Nehmen wir VoLTE als Beispiel, wenn wir der vorherigen 2G/3G-Methode folgen, wird eine große Anzahl dedizierter Geräte benötigt, um als unterschiedliche Netzwerkelemente von EPC und IMS zu dienen.

VoLTE-bezogene Netzwerkelemente

Nach der Verwendung von Containern ist es wahrscheinlich, dass nur ein Server zum Erstellen eines Dutzend Containers erforderlich ist und verschiedene Container zum Ausführen der Dienstprogramme verschiedener Netzwerkelemente verwendet werden.

Diese Container können jederzeit erstellt und zerstört werden. Es kann auch beliebig größer, beliebig kleiner, beliebig stärker, beliebig schwächer sein, ohne abzuschalten, wodurch ein dynamisches Gleichgewicht zwischen Leistung und Stromverbrauch erreicht wird.

Absolut perfekt!

Im 5G-Zeitalter übernimmt das Kernnetzwerk eine Microservice-Architektur, die auch perfekt auf Container abgestimmt ist – aus der monolithischen Architektur (Monolithic) wird eine Microservices-Architektur (Microservices), was einem Allrounder zum N-Spezialmodell gleichkommt diejenigen. Jeder Spezialist wird einem isolierten Container zugewiesen, was maximale Flexibilität bietet.

Feine Arbeitsteilung

Diesem Entwicklungstrend zufolge können im Mobilkommunikationssystem mit Ausnahme der Antenne die übrigen Teile virtualisiert werden. Das Kernnetzwerk ist das erste, aber nicht das letzte. Das Kernnetzwerk nach der Virtualisierung sollte eigentlich eher der IT als der Kommunikation zugerechnet werden. Die Funktion des Kernnetzwerks ist nur eine gewöhnliche Softwarefunktion im Container.

Herzlichen Glückwunsch an alle Kernnetzwerkingenieure hier, Ihre Transformation wird bald erfolgreich sein!

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen k8s und Docker?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn