Viele Unternehmen verwenden Kubernetes und Docker zusammen. Viele behaupten sogar, dass dieser Ansatz ihrem Unternehmen erhebliche Vorteile bringt. Dies ist jetzt jedoch möglicherweise nicht mehr möglich. Warum ist das so und wie können Sie Kubernetes ohne Docker verwenden? Erfahre mehr in unserem Artikel.
Docker und Kubernetes sind zwei sich ergänzende IT-Lösungen. Docker dient als Containerisierungsplattform (es ermöglicht Entwicklern, Anwendungen in Container zu packen), und Kubernetes ist ein Container-Orchestrierungstool (Sie können es verwenden, um die Ausführung containerisierter Workloads und Dienste zu automatisieren und zu optimieren). Tatsächlich nutzten viele Unternehmen früher beide gleichzeitig. Doch jetzt scheinen sie bald lernen zu müssen, Kubernetes ohne Docker zu verwenden.
Was ist Docker?
Docker ist eine Open-Source-Containerisierungsplattform. Entwickler verwenden es, um Anwendungen in Container zu packen. Container sind standardisierte, ausführbare Komponenten, die den Quellcode digitaler Produkte mit dem Betriebssystem (OS), Bibliotheken und Abhängigkeiten kombinieren, die für die Ausführung dieses Codes in jeder Umgebung unverzichtbar sind. Warum verwendet Ihr Unternehmen es? Es ist einfacher, verteilte Anwendungen bereitzustellen, indem die Containerisierung genutzt wird. Ein solcher Ansatz ist heutzutage für Unternehmen üblich, die sich mit Cloud-nativer Entwicklung befassen oder in einer Hybrid- oder Multi-Cloud-Umgebung arbeiten.
Container können natürlich auch ohne Docker erstellt werden, aber diese Plattform enthält Tools und Lösungen, die es einfacher, schneller und sicherer machen. Anstatt stundenlanger manueller Arbeit können Entwickler einfache Befehle verwenden und die Vorteile der Automatisierung nutzen.
Was ist Kubernetes?
Es gibt einige Aufgaben, die bei der Verwendung von Containern beachtet werden müssen — dazu gehören Workload-Planung, Kommunikation, Verwaltung der Ressourcennutzung, Skalierbarkeit usw. All dies kann mit Tools wie Kubernetes erledigt werden. Diese Container-Orchestrierungsplattform ist Open Source (sodass jeder sie kostenlos nutzen kann) und sie kann die wichtigsten Container-Management-Prozesse (Bereitstellung, Skalierung, Reparatur, Lastenausgleich) abwickeln.
Nachdem Benutzer einen Pod definiert haben, stellt Kubernetes sicher, dass er immer läuft. Es überwacht Container und wenn einer ausfällt, versucht es, einen neuen zu starten. Das nimmt Ihren Mitarbeitern viele Sorgen und Arbeit von den Schultern und gibt ihnen mehr Zeit, sich auf komplexere Aufgaben zu konzentrieren.
Wie arbeiten Docker und Kubernetes zusammen?
Kubernetes macht eine Menge, aber es führt die Container nicht alleine auf einem Computer aus. Zu diesem Zweck ist eine zusätzliche Software erforderlich - eine Container-Laufzeit. Es enthält Informationen darüber, was auf jedem Host von Kubernetes getan werden muss, und es führt Container entsprechend aus. Sie haben eine große Auswahl — es gibt eine Vielzahl solcher Lösungen auf dem Markt (viele davon sind Open Source). Lange Zeit war Docker die am häufigsten gewählte Option.
Nicht alle Unternehmen benötigen beide. Startups und kleine Unternehmen, die weniger Container haben, müssen Kubernetes nicht für ihre Orchestrierung verwenden und (wie bereits erwähnt) können Sie Container ohne Docker erstellen. Eine Zeit lang galten diese beiden als zuverlässige Kombination und wurden von vielen Organisationen genutzt. Docker wurde für die Erstellung von Containern verwendet, und Kubernetes war ein Tool für deren Verwaltung. Zusammen sorgten sie für die Effizienz des Entwicklungsprozesses und schnelle Releases.
Warum kann Docker nicht mehr die Container-Runtime für Kubernetes sein?
Für diejenigen, die diese Kombination verwenden, haben wir traurige Neuigkeiten — Kubernetes entfernt die Unterstützung für Docker als Container-Runtime. Die Docker-Unterstützung war fest in das Container-Orchestrierungstool einprogrammiert. Die Komponente war als Dockershim bekannt. Kubernetes hat sich inzwischen weiterentwickelt und Unterstützung für zusätzliche Laufzeiten wurde bereitgestellt.
Kubernetes funktioniert gut mit allen Container-Laufzeiten, die einen Standard implementieren, der als CRI (Container Runtime Interface) bekannt ist. Kurz gesagt, dies ist ein Standard für die Kommunikation zwischen Kubernetes und der ausgewählten Container-Laufzeit. Lösungen, die diesen Standard unterstützen, funktionieren automatisch ordnungsgemäß mit Kubernetes, während andere dies nicht tun, und Docker hat das Container Runtime Interface nicht implementiert. Kubernetes implementierte Dockershim, um die Kommunikation zwischen diesen beiden Lösungen zu ermöglichen, und unterstützte Docker lange Zeit. Da Benutzern nun eine große Auswahl an Laufzeiten zur Verfügung steht, entfernt sich das Kubernetes-Team von der Aufrechterhaltung einer speziellen Unterstützung für Docker.
Sie fragen sich vielleicht, warum Kubernetes Docker jetzt als veraltet markiert hat — schließlich waren viele der derzeit verfügbaren Lösungen bereits seit einiger Zeit auf dem Markt. Nun, Docker ist nicht wirklich eine Container-Runtime. Es handelt sich um eine Reihe von Tools zum Erstellen von Containern, und die Fähigkeit, Container tatsächlich auszuführen, stammt aus einer echten Laufzeitumgebung namens Containered, auf der Docker steht. Tatsächlich kann Docker Container also nicht alleine ausführen. Es bietet eine leichter zugängliche Oberfläche zusätzlich zu einer separaten Container-Laufzeit.
Wir alle mögen „All-in-One“ -Lösungen (sofern sie effizient sind) und niemand mag es wirklich, drei (oder mehr) verschiedene Tools miteinander zu kombinieren, wenn es nicht wirklich notwendig ist. Bei der Kubernetes-Docker-Paarung ist Docker einfach ein Vermittler zwischen der Container-Orchestrierungsplattform und Containerd. Was noch wichtiger ist — es ist ein unnötiger Mittelsmann. Kubernetes kann direkt mit Containered als Container-Runtime arbeiten. Docker hat natürlich auch andere Anwendungen, aber mit diesem Wissen können Sie erwägen, Kubernetes ohne Docker (oder zumindest ohne Docker als Container-Laufzeit) zu verwenden.
Wie benutzt man Kubernetes ohne Docker?
Docker ist älter als Kubernetes und hat CRI nicht implementiert, was bedeutet, dass es kein guter Kandidat mehr für eine Kubernetes-Laufzeit ist. Sie können sich dafür entscheiden, Kubernetes ohne Docker oder sogar Docker ohne Kubernetes zu verwenden (wir empfehlen Ihnen jedoch, es für andere Zwecke als zum Ausführen von Containern zu verwenden). Obwohl Kubernetes ein ziemlich umfangreiches Tool ist, müssen Sie dafür eine gute Container-Laufzeit finden — eine, die CRI implementiert hat. Eine Runtime mit CRI-Implementierung wird in der Lage sein, reibungslos mit Kubernetes zu kommunizieren, und die Kombination wird gut funktionieren.
Sie müssen sich praktisch keine Sorgen machen. Wenn Sie Kubernetes-Dienste wie GKE, EKS oder AKS verwenden, müssen Sie sicherstellen, dass Ihre Worker-Knoten eine unterstützte Laufzeit verwenden. Am besten tun Sie dies, bevor die Docker-Unterstützung entfernt wird. Ihre Knotenanpassungen müssen möglicherweise auf der Grundlage der Umgebung, in der Sie arbeiten, und der Laufzeitanforderungen aktualisiert werden. Nachdem Sie eine andere Laufzeit ausgewählt haben, die Container Runtime Interface (CRI) verwendet, funktionieren Ihre von Docker erstellten Images problemlos in einem Cluster mit anderen Laufzeiten. Viele Autoren haben darauf hingewiesen, dass Docker immer noch ein nützliches Tool zum Erstellen von Containern ist. Dennoch könnte die aktuelle Transformation von Kubernetes eine gute Gelegenheit sein, Ihren Tech-Stack zu bewerten und die Lösungen, die Sie derzeit verwenden, mit Alternativen zu vergleichen.
Wie macht man ohne Docker weiter?
Erstens, keine Panik — das ist eigentlich ein Ratschlag direkt vom Kubernetes-Team. Sie sollten wahrscheinlich über Ihre Optionen nachdenken. Es besteht immer die Möglichkeit, dass Sie eine bessere Container-Laufzeit für Ihr Unternehmen finden. Es gibt viele verfügbare Lösungen — sowohl Open-Source-Lösungen als auch kommerzielle. Nach reiflicher Überlegung werden Sie sicherlich finden, was Sie benötigen. Wir stehen Ihnen gerne mit Rat und Tat bei der Umsetzung neuer Lösungen zur Seite. Sag es uns mehr über Ihr Projekt und Ihre Geschäftsanforderungen
Lesen Sie mehr.
So erstellen Sie eine effiziente Big Data-Architektur für Ihr Unternehmen
So stellen Sie von einer lokalen IDE aus eine Verbindung zu einem Databricks-Cluster her
Data Warehouse vs. Data Lake vs. Lakehouse: Ein umfassender Vergleich von Datenmanagement-Ansätzen