Docker und Kubernetes im Vergleich

Technologie

Technologie

Datum 05.03.2023
Lesezeit 6 Min.

Docker und Kubernetes im Vergleich

Mit Kubernetes existiert ein mächtiges Werkzeug zur Verwaltung von sogenannten Cloud-Containern. Diese Container basieren häufig auf Docker, einer Open-Source-Lösung, die sich über die Jahre hinweg im Bereich Cloud Computing als Quasi-Standard etabliert hat. Was gilt nun: Kubernetes versus Docker, oder doch eher ein starkes Duo? Wie die beiden Systeme technisch zusammenhängen, wozu Cloud-Container dienen und was es mit dem Ende des Docker-Supports bei Kubernetes auf sich hat, erfahren Sie hier.

Wer Cloud-Anwendungen betreibt und Anwendungen schnell und einfach skalieren will, kommt um das Thema Container und deren „Orchestrierung” kaum herum. Orchestrierung meint die Koordination von deren Zusammenspiel in der Cloud. Die Containerverwaltung mit Kubernetes und die Anwendungsverwaltung über Docker sind komplexe Themen, über die wir an anderer Stelle hier im V-Hub berichten.

Hier geht es darum, welche Rolle Docker im Zusammenhang mit Kubernetes spielt. Außerdem erfahren Sie, wie aus einer herkömmlichen Server-Anwendung über Microservices eine verteilte Cloud-Lösung mit Containern wird.

Docker versus Kubernetes: Das steckt hinter den Technologien

Eines vorweg: Bei Docker und Kubernetes handelt es sich nicht um konkurrierende Technologien. Im Gegenteil ist der Einsatz von Docker als Container-Werkzeug mit erheblichen Stärken beim UX-Design sehr sinnvoll. Außerdem ist Docker anderen Container-Werkzeugen wie beispielsweise Rocket, LXD und Flockport in vielen Punkten überlegen.

Cloud-Technologie verstehen: Was ist Containerisierung?

Immer dann, wenn Anwendungen in isolierten Benutzerbereichen innerhalb eines gemeinsamen Betriebssystems laufen, spricht man von Containerisierung beziehungsweise von Containern. Im Grunde genommen sind diese Container eine spezielle Form von Virtualisierungsumgebung innerhalb des Betriebssystems.

Für die Orchestrierung solcher Container im Cloud-Umfeld jedoch brauchen Sie ein Verwaltungs-Tool wie beispielsweise Kubernetes. Mit Orchestrierung ist hierbei gemeint, dass mehrere Container sinnvoll verwaltet, gestartet und gestoppt und auf verschiedenen Serverumgebungen (Nodes) betrieben werden (können).

Dementsprechend geht es also nicht um ein Entweder-Oder zwischen Docker und Kubernetes, sondern eher um das Zusammenspiel beider Technologien. Wer Cloud-Anwendungen entwickelt oder auch betreibt, kommt irgendwann fast zwangsläufig zumindest mit Docker in Berührung. Das beliebte Open-Source-System erzeugt portable, eigenständige Container, die Sie anschließend in der Cloud oder lokal ausführen können.

Unter Docker lassen sich Container mit Docker Swarm orchestrieren. Dabei bilden einer oder mehrere Knoten einen so genannten Schwarm. So lassen sich mehrere Docker Engines und virtuelle Maschinen anlegen und nutzen. Ein Knoten ist dabei eine virtuelle oder Bare-Metal-Maschine (Rechner, der direkt Anweisungen auf der Hardware ohne darüber liegendes Betriebssystem ausführt).

Kubernetes konzentriert sich auf die Orchestrierung ganzer Cluster, während das Docker-System eher für die Verwendung auf einzelnen Knoten konzipiert ist.

Datenverarbeitung in nahezu Echtzeit – Gamechanger MEC

Datenverarbeitung in nahezu Echtzeit – Gamechanger MEC

Als erster Anbieter am deutschen Markt bietet Vodafone in Kooperation mit Amazon Web Services seinen Kunden Distributed Multi-Access Edge Computing (MEC) an. Profitieren Sie von den Vorteilen der AWS Wavelength und den Stärken des Vodafone Netzes:
  • Niedrige Latenzen für Echtzeitanwendungen
  • Verlagerung der Datenverarbeitung vom Gerät in die Edge
  • Längere Batterie- und Akkulaufzeiten

Die Verwendung von Kubernetes bietet dabei gleich mehrere Vorteile:

  • Sämtliche Container lassen sich von einer einzigen Steuerzentrale aus administrieren.
  • Besondere Stärken von Kubernetes sind etwa Netzwerkkoordination, Lastausgleich, Sicherheitsaspekte und Skalierung.
  • Containerressourcen lassen sich bei Bedarf durch sogenannte Namespaces (Erläuterung) verwalten, die besonders bei der Entwicklung und Qualitätssicherung Vorteile bringen.
  • Kubernetes-Anwendungen sind hochverfügbar, da der Ausfall einzelner Knoten automatisch kompensiert wird.
  • Die Skalierung gelingt besonders einfach, da sich Container selbst über unterschiedliche Cloud-Anbieter hinweg zufügen lassen.

Die Behauptung, dass Kubernetes und Docker konkurrierende Systeme seien rührt wohl daher, dass sowohl Docker Swarm als auch Kubernetes Container-Orchestrierungssysteme sind. Allerdings handelt es sich bei Docker Swarm um eine kommerzielle Entwicklung von Docker Inc., die nicht automatisch Teil des Open-Source-Systems Docker ist.

Die aktive Unterstützung der Open-Source-Community bei Kubernetes wiederum bietet ebenfalls viele Vorteile. Docker jedenfalls fehlen im Zusammenhang mit Docker Swarms viele Funktionalitäten, die nur durch Tools von Drittanbietern abzudecken sind – ein Nachteil, der bei Kubernetes nicht zum Tragen kommt. Jedoch ist Kubernetes vergleichsweise komplex, was die Installation und den Betrieb angeht.

 

Ausklappbare Informationsgrafik

 

Wann Docker, wann Kubernetes? Cloud-Migration leicht gemacht

Die Entscheidung, ob nun Docker, Kubernetes oder gleich beide Systeme zum Einsatz kommen sollten, hängt wie so oft vom konkreten Fall ab. Wie bereits im Beitrag zu Kubernetes erwähnt, geht es im Umfeld beider Systeme um die konsequente Abkehr von monolithischen Anwendungen.

Docker und Kubernetes als Team?

Docker oder Kubernetes, Kubernetes ohne Docker – oder lieber beides gemeinsam? Docker kann mit beiden Lösungen umgehen und auch zwischen den Welten wechseln. Docker Swarm als Cluster- und Scheduling-Tool für Docker-Container lässt sich jedoch nicht mit Kubernetes kombinieren. Dazu kommt, dass Docker inzwischen vollständig aus Kubernetes entfernt wurde.
Kubernetes und Docker sind somit beides marktbeherrschende Tools zur Container-Orchestrierung. Die Anwendungsbereiche unterscheiden sich jedoch. Während Kubernetes ein lupenreines Container-Orchestrierungssystem ist, versteht sich Docker als virtuelles Container-Management-Tool. Durch den Wegfall der Docker-Unterstützung in Kubernetes ist es in Zukunft noch wichtiger, die Vorteile beider Technologien richtig zu kombinieren, um containerisierte Apps optimal zu verwalten.

Ein typisches monolithisches System vereint sämtliche seiner Funktionen im zugehörigen Quellcode an einer bestimmten Stelle und läuft typischerweise auf einem bestimmten (virtuellen oder physischen) Server.

Das ist jedoch vor dem Hintergrund von Ausfallsicherheit, Skalierungsanforderungen und aus praktischen Überlegungen heraus zumindest bei Web-Anwendungen nicht mehr zeitgemäß. Daher werden viele Anwendungen inzwischen nicht nur in der Cloud betrieben, sondern sind sogar als „cloud native” anzusehen.

Das bedeutet, dass sie in der Cloud sowohl betrieben als auch verwaltet und weiterentwickelt werden und entsprechende Cloud-Vorteile und -Anwendungen konsequent zum Einsatz kommen. Damit das funktioniert, müssen die einzelnen Bestandteile einer Anwendung jedoch als separate Module vorliegen – sogenannte Microservices.

Der erste Schritt hin zu solchen Microservices führt über die Aufteilung des Programmcodes in einzelne, wiederverwendbare Programmbestandteile, die untereinander aufrufbar sind.

Diese Programmbestandteile wiederum lassen sich dann mit Hilfe von Docker in einzelne Anwendungs-Container „verpacken” und „in der Cloud” betreiben.

Wenn die Anwendung jedoch als „echtes” verteiltes System mit entsprechenden Absicherungen gegen Ausfälle oder mit global an jedem Ort vergleichbarer Performance laufen soll, ist es empfehlenswert, zusätzlich Kubernetes zur Orchestrierung einzusetzen.

 

Unterschiede von Docker Swarm und Kubernetes

Docker hat mit der Entwicklung der Container-Technologie die Softwareentwicklung revolutioniert. Kubernetes‘ Verdienste wiederum liegen darin, eine lange Zeit bestehende Lücke zur Container-Orchestrierung geschlossen zu haben. Docker Swarm ist dabei das Orchestrierungstool für Docker. Bei Kubernetes gibt es eine solche Trennung nicht, da das Dashboard Bestandteil des Systems ist.

Heute sind Docker Swarm für Docker und Kubernetes die beliebtesten Container-Orchestrierungsplattformen. Docker Swarm ist eine Open-Source-Container-Orchestrierungsplattform, die nativer Bestandteil von Docker ist.

Kubernetes ist ein portables, Cloud-natives Open-Source-Infrastruktur-Tool, das Google ursprünglich zur Verwaltung der hauseigenen Cluster entwickelt hat. Es automatisiert die Skalierung, Bereitstellung und Verwaltung containerisierter Anwendungen im Sinne eines Container-Orchestrierungstools.

Der Unterschied zwischen den Plattformen liegt in erster Linie in der Komplexität. Kubernetes eignet sich gut für komplexe Anwendungen. Docker Swarm hingegen legt mehr Wert auf Benutzerfreundlichkeit, was es zur bevorzugten Wahl für einfache Anwendungen macht.

 

Docker Compose und Kubernetes im Vergleich

Kubernetes und Docker Compose sind beide Container-Orchestrierungs-Frameworks. Der Unterschied liegt in der Ausführungsebene. Kubernetes führt Container auf mehreren virtuellen oder realen Computern aus. Docker Compose ist dafür ausgelegt, Container auf einzelnen Hostcomputern auszuführen.

Eine der herausragenden Merkmale von Docker Compose ist, dass Entwickler:innen damit Container als unterschiedliche Dienste verfügbar machen können, die sich in Form von Netzwerken organisieren lassen.

 

GUI-Vergleich zwischen Docker Desktop und Kubernetes

Docker Desktop ist eine Software-Suite und GUI-Tool (Grafische Benutzeroberfläche) zur Administration virtueller Maschinen unter Docker. Damit lassen sich containerisierte Anwendungen mittels der Docker eigenen Werkzeuge erstellen. Docker Desktop umfasst die Docker-Engine, die docker-cli, docker-compose und einen Credential-Helper.

Bis Ende 2022 war die Nutzung im Rahmen einer Einführungsphase kostenfrei. Seitdem gibt es ein neues Lizenzmodell. Lediglich die Nutzung für nicht-kommerzielle Open-Source-Projekte oder die Anwendung im Bildungswesen sind kostenfrei.

War es bis Ende 2022 noch möglich, auf Kubernetes als GUI auszuweichen, besteht diese Option nun nicht mehr. Durch die Abkündigung der Unterstützung von Docker durch Kubernetes ab Version 1.24 ist Kubernetes keine Alternative mehr zur Verwendung der Docker-Desktop-Suite.

 

Docker Laufzeitumgebung ohne Kubernetes-Support

Mit der Kubernetes-Version 1.24 hat das Entwicklungsteam die direkte Unterstützung für die Docker Engine beendet. Bestehende Docker-Container funktionieren jedoch weiterhin reibungslos unter Kubernetes. Die Nutzung der Docker Engine über Kubernetes ist ab dieser Version allerdings nur noch über Umwege möglich.

Auch RedHat hat seit Red Hat Enterprise Linux 8 (REHL 8) die Docker-Unterstützung eingestellt. Als Ersatz liefert Red Hat jetzt eine Open-Source-Suite zur Container-Orchestrierung aus.

Durch diese Maßnahmen befeuert, scheint sich ein Abwanderungstrend abzuzeichnen. Viele Entwickler:innen sehen sich nach Alternativen zu Docker um. Sysdig berichtete schon 2021 von einem weltweiten Rückgang der Docker-Nutzung von 79 % auf 50 % Marktanteil, wobei sich zeitgleich die Nutzung und Entwicklung von Container-Applikationen im Vergleich zum Vorjahr verdoppelt hat.

Angesichts des wachsenden Cloud Computing-Bereichs und der Suche nach skalierbarer Rechenleistung ist die Bedeutung von Docker auch zukünftig gesichert. Allerdings dürfte die Suche nach Alternativen neue Lösungen hervorbringen und den Markt bereichern.

bulb

Whitepaper: Multi-Access Edge Computing

Whitepaper: Multi-Access Edge Computing

Sie möchten das aktuelle Whitepaper herunterladen? Dafür müssen Sie nur Ihre Einwilligung geben, dass die Vodafone Unternehmen Sie werblich ansprechen dürfen. Tragen Sie bitte dazu Ihre Kontaktdaten ein. Sie bekommen dann eine E-Mail zur Bestätigung Ihrer Daten und der Einwilligung. Nach der Bestätigung bekommen Sie den Download-Link zum Whitepaper.

Das erwartet Sie in unserem MEC Whitepaper:

  • Alles rund um Multi-Access Edge Computing
  • Die damit möglichen neuen Anwendungen und Geschäftsmodelle
  • Alle Informationen, die für Unternehmen für den Einsatz der Technologie wichtig sind

Entscheidungshilfe: Kubernetes, Docker oder beides?

  • Der Nachteil klassischer virtueller Maschinen ist, dass sie auf dem eigenen Betriebssystem laufen müssen. Softwarecontainer hingegen erlauben Virtualisierungen ohne eigenes Betriebssystem.
  • Kubernetes und Docker sind jeweils gängige Mittel der Wahl, um cloudbasierte Softwaresysteme und Anwendungen über Container zu entwickeln und bereitzustellen.
  • Sowohl über Kubernetes als auch mit Docker lassen sich Container-Anwendungen automatisieren, skalieren und verwalten.
  • Der große Vorteil von Docker Swarm liegt in der einfachen Installation. Auch die Integration zwischen Docker und Docker Swarm ist unkompliziert.
  • Kubernetes wiederum punktet beim Funktionsumfang, der breiten Unterstützung durch die Open-Source-Community und der integrierten grafischen Benutzeroberfläche.

Wie stehen Sie zum Thema Docker und Kubernetes? Welche Bedeutung haben Microservices für Ihr Unternehmen? Wir freuen uns auf Ihren Kommentar!

 


Ihre Digitalisierungs-Berater:innen für den Mittelstand

Sie haben Fragen zur Digitalisierung? Unser Expert:innen-Team hilft Ihnen kostenlos
und unverbindlich im Chat (Mo.-Fr. 8-20 Uhr). Oder am Telefon unter 0800 5054512

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Facebook Twitter WhatsApp LinkedIn Xing E-Mail