Und was ist ein Docker?
Im Jahre 2014 war Docker das Unternehmen, welches den Einsatz von Containern populär machte und den Aufstieg von Containern als skalierbares, tragbares und effizientes Mittel zur Ausführung von Workloads sah. Docker-Container stellen abgekapselte Einheiten dar, die unabhängig voneinander ausgeführt werden können, egal wo sie sich gerade befinden. Vergleichen wir sie mit Frachtcontainern, in denen ein oder mehrere „Männchen“ sitzen und arbeiten. Diese Männchen sind in Wirklichkeit Applikationen wie beispielsweise php, mysql oder Apache und sitzen gemeinsam in einem Container (Beispiel; siehe Abbildung). Für die Männchen macht es keinen Unterschied, ob der Frachtcontainer nun in München, New York oder Sydney steht, da dieser von innen immer gleich aussieht. Entsprechend herrschen dieselben Bedingungen. Dasselbe gilt auch für die Applikationen im Software-Container.
Was ist der Unterschied zwischen Docker und Kubernetes? Hier möchte ich auf eine hervorragende Erklärung und Zusammenfassung von Geekflare verweisen, um hier nicht den Rahmen zu sprengen. Was Sie auf jeden Fall im Hinterkopf behalten sollten: Die Docker-Datei enthält eine Reihe von Anweisungen für die Erstellung und Ausführung Ihres Containers. Dieser läuft dann als isolierter Prozess mit den notwendigen Variablen und Abhängigkeiten.
Was wird wofür eingesetzt?
Docker: Docker ist am besten geeignet, wenn ein Benutzer eine komplexe Anwendung hat, die das Verpacken eines Pakets und die Konfiguration in einen tragbaren Container erfordert.
Kubernetes: Kubernetes ist gut, wenn Sie sicherstellen müssen, dass Ihre Anwendung so ausgeführt wird, wie sie sein sollte. Falls ein Container nicht reagiert oder ausfällt, sollte er sich selbst „heilen“ und einen neuen Container starten. Kubernetes bietes somit ein zusätzliche „Selbstheilung“ und vereinfachte Tools für das Container Management.
Docker vs. Kubernetes
Docker und Kubernetes sind unterschiedliche Technologien. Es ist also etwas unfair, diese beiden zu vergleichen oder zu fragen, welcher Priorität eingeräumt werden sollte. Diese beiden sind keine direkten Rivalen. Sie sind jedoch verwandt! Docker ist eine Containerplattform, während Kubernetes ein Container Orchestrator für Containerisierungsplattformen wie Docker ist.
Kubernetes ist ein Containerverwaltungstool, dass die Bereitstellung automatisiert. Es handelt sich um eine tragbare Open-Source-Plattform, die von Google entwickelt und jetzt von einer Cloud-nativen Computing-Stiftung verwaltet wird. Es hilft bei der einfacheren und schnelleren Aktualisierung der Anwendungen ohne Ausfallzeiten und übernimmt die Planung von Containern im Cluster sowie die Verwaltung der Arbeitslast.
Kubernetes ist auch unter folgendem Namen bekannt: "k8s" und "Kube".
Die Orchestrierungsplattform Kubernetes automatisiert viele manuelle Prozesse wie die Bereitstellung, Verwaltung und Skalierung der Anwendungen im Container.
Kubernetes Funktionen
- Automatisiert manuelle Prozesse: Beschreibt nur den gewünschten Status mithilfe von Kubernetes und ändert die vorhandene Veränderung in den gewünschten Soll-Zustand.
- Lastausgleich: Kubernetes eignet sich gut für den Lastausgleich, falls mehr Verkehr zum Container vorhanden ist. Es verteilt den Netzwerkverkehr und hält die Bereitstellung stabil.
- Selbstheilung: Dies ist eine der besten Eigenschaften von „Kube“. Es startet die ausgefallenen Container neu, ersetzt sie und beendet auch denjenigen, der nicht auf das benutzerdefinierte Muster reagiert.
- Speicher-Orchestrierung: Benutzer können mithilfe von Kubernetes automatisch ein Speichersystem ihrer Wahl bereitstellen.