Schaubild zum Thema Cloud Computing
Cloud & Hosting

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.

Inhaltsverzeichnis

Docker versus Kubernetes: Das steckt hinter den Technologien

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.

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.
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.
Mitarbeiter mit Helm prüft Daten am Tablet

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.
Tabelle mit Auflistung unterschiedlicher Merkmale von Kubernetes und Docker
Docker Swarm erlaubt eine einfache Installation und Verwaltung über externe Tools. Kubernetes bietet hingegen insgesamt mehr Funktionen.

Wann Docker, wann Kubernetes? Cloud-Migration leicht gemacht

K8s (Kubernetes) versus K3s (Kubernetes Light)

In Anlehnung an K8s als Abkürzung für Kubernetes kursiert auch eine alternative, linuxbasierte Kubernetes-Distribution namens K3s. Die Nutzung auf anderen Plattformen ist jedoch über Anpassungen möglich. Diese ursprünglich von Rancher Labs entwickelte Light-Version von K8s fehlen einige Funktionen (Legacy, Alpha, Nicht-Standard, In-Tree-Plugins). Außerdem wurden schwergewichtige Komponenten gegen einfachere Module ausgetauscht. So ersetzt dort beispielsweise sqlite3 das voluminöse etcd3. Derart optimiert liegt der Umfang des K3s-Binaries unter 100 MB. 2020 wurde K3s an die Cloud Native Computing Foundation (CNCF) gespendet. Bewährt hat sich K3s besonders für die Ausführung von Workloads an ressourcenarmen dezentralen Standorten oder auf IoT-Geräten.

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.
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 Webanwendungen 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.
MEC-Verknüpfung symbolisch dargestellt vor Großstadtpanorama bei Nacht

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.
Das könnte Sie auch interessieren:
Unified Communication
Jetzt anmelden Vodafone Business UC mit RingCentral

Jetzt anmelden: Vodafone Business UC mit RingCentral

Eine Telefonanlage ist die Grundlage Ihrer Unternehmenskommunikation. Finden Sie die passende Cloud-Telefonanlage für Ihr Unternehmen und profitieren Sie in Zukunft von effizienter Kommunikation. Im Vergleich zu einem klassischen Festnetz-Anschluss bietet eine cloud-basierte Telefonanlage (auch VoIP Telefonanlage genannt) maximale Flexibilität.

Telefon

Digitalisierungs-Beratung

Sie haben Fragen zur Digitalisierung? Jetzt kostenlos beraten lassen. Montag-Freitag von 8-20 Uhr, außer an Feiertagen.

0800 505 4512

Hilfe und Service

Montag bis Freitag von 8 bis 20 Uhr, außer an Feiertagen.

0800 172 1234
Online
Vor Ort