Trace Id is missing
Zu Hauptinhalt springen
Azure

Kubernetes und Docker im Vergleich

Schnelleres Erstellen, Bereitstellen und Skalieren von Apps mit Containertechnologien, die zusammen besser funktionieren.
 

Entscheidung zwischen Kubernetes und Docker

Die Diskussion zu Kubernetes und Docker wird oft als Situation formuliert, die nur eine Option zulässt: Soll ich Kubernetes oder Docker verwenden? Dies ist wie der Vergleich von Äpfeln mit Apfelkuchen, und es ist ein häufiges Missverständnis, dass Sie sich für die eine oder andere Option entscheiden müssen.

Der Unterschied zwischen Kubernetes und Docker ist leichter zu verstehen, wenn er als Frage vom Typ „sowohl als auch“ formuliert wird. Tatsache ist, dass Sie sich nicht entscheiden müssen – Kubernetes und Docker sind grundsätzlich verschiedene Technologien, die bei der Erstellung, Bereitstellung und Skalierung containerisierter Apps gut zusammenwirken.

Docker und die zunehmende Containerisierung

Docker ist eine Open-Source-Technologie und ein Containerdateiformat zur Automatisierung der Bereitstellung von Anwendungen als portable, eigenständige Container, die in der Cloud oder lokal ausgeführt werden können. Docker, Inc. ist trotz des ähnlichen Namens eines der Unternehmen, das die Open-Source-Docker-Technologie für Linux und Windows in Zusammenarbeit mit Cloudanbietern wie Microsoft entwickelt.

Obwohl die Idee der Isolation von Umgebungen nicht neu ist und es andere Arten von Software zur Containerisierung gibt, hat sich Docker in den letzten Jahren zum Standardcontainerformat entwickelt. Docker unterstützt die Docker Engine, bei der es sich um eine Laufzeitumgebung handelt. Sie ermöglicht es Ihnen, Container auf jedem beliebigen Entwicklungscomputer zu erstellen und auszuführen. Dann speichern oder teilen Sie Containerimages über eine Containerregistrierung wie Docker Hub oder Azure Container Registry.

Während Anwendungen immer größer werden, um mehrere Container, die auf mehreren Servern bereitgestellt sind, zu verbinden, wird auch deren Betrieb immer komplexer. Obwohl Docker einen offenen Standard zum Packen und Verteilen von containerisierten Apps bietet, kann die potenzielle Komplexität schnell zunehmen. Wie koordinieren und planen Sie zahlreiche Container? Wie kommunizieren die verschiedenen Container in Ihrer App miteinander? Wie skalieren Sie eine große Anzahl von Containerinstanzen? Hier kann Kubernetes helfen.

Kubernetes und Containerorchestrierung

Kubernetes ist eine Open-Source-Orchestrierungssoftware mit einer API, die steuert, wie und wo diese Container ausgeführt werden. Sie ermöglicht die Ausführung von Docker-Containern und -Workloads und hilft Ihnen bei der Bewältigung einiger betrieblicher Komplexitäten, die bei der Skalierung mehrerer Container, die auf mehreren Servern bereitgestellt werden, auftreten können.

Mit Kubernetes können Sie einen Cluster mit virtuellen Computern orchestrieren und planen, wann Container auf diesen virtuellen Computern basierend auf ihren verfügbaren Computeressourcen und den Ressourcenanforderungen jedes einzelnen Containers ausgeführt werden. Container werden in Pods gruppiert. Dabei handelt es sich um die allgemeine Betriebseinheit von Kubernetes. Diese Container und Pods können bis zum gewünschten Zustand skaliert werden, und Sie können deren Lebenszyklus verwalten, um Ihre Apps betriebsbereit zu halten.

Wie unterscheiden sich Kubernetes und Docker?

Kubernetes ist eine Open-Source-Orchestrierungssoftware mit einer API, die steuert, wie und wo diese Container ausgeführt werden. Sie ermöglicht die Ausführung von Docker-Containern und -Workloads und hilft Ihnen bei der Bewältigung einiger betrieblicher Komplexitäten, die bei der Skalierung mehrerer Container, die auf mehreren Servern bereitgestellt werden, auftreten können.

Mit Kubernetes können Sie einen Cluster mit virtuellen Computern orchestrieren und planen, wann Container auf diesen virtuellen Computern basierend auf ihren verfügbaren Computeressourcen und den Ressourcenanforderungen jedes einzelnen Containers ausgeführt werden. Container werden in Pods gruppiert. Dabei handelt es sich um die allgemeine Betriebseinheit von Kubernetes. Diese Container und Pods können bis zum gewünschten Zustand skaliert werden, und Sie können deren Lebenszyklus verwalten, um Ihre Apps betriebsbereit zu halten.

Kubernetes und Docker – besser zusammen

Während das Hauptziel von Containern darin besteht, etwas einmal zu codieren und dann überall auszuführen, bietet Kubernetes die Möglichkeit, sämtliche Containerressourcen von einer einzelnen Steuerungsebene aus zu orchestrieren und zu verwalten. Dies ist hilfreich bei Netzwerken, dem Lastenausgleich sowie der Sicherheit und Skalierung über alle Kubernetes-Knoten hinweg, auf denen Ihre Container ausgeführt werden. Kubernetes verfügt auch über einen integrierten Isolationsmechanismus wie Namespaces, mit dem Sie Containerressourcen nach Zugriffsberechtigungen, Stagingumgebungen usw. gruppieren können. Diese Konstrukte erleichtern es der IT-Abteilung, Entwicklern den Zugriff auf Self-Service-Ressourcen und die Zusammenarbeit auch an komplexesten Mikroservicearchitekturen zu ermöglichen, ohne die gesamte Anwendung in ihrer Entwicklungsumgebung nachzubilden. Die Kombination von DevOps-Methoden mit Containern und Kubernetes unterstützt darüber hinaus eine grundlegende Microservicearchitektur, die eine schnelle Bereitstellung und skalierbare Orchestrierung von cloudnativen Anwendungen ermöglicht.

Kurz: Verwenden Sie Kubernetes mit Docker für folgende Aufgaben:

  • Gestalten Sie Ihre Infrastruktur stabiler, und steigern Sie die Verfügbarkeit Ihrer App. Ihre App bleibt online, auch wenn einige Knoten offline gehen.
  • Verbessern Sie die Skalierbarkeit Ihrer Anwendung. Wenn die Auslastung Ihrer App stark zunimmt und Sie sie aufskalieren müssen, um die Benutzererfahrung zu verbessern, können Sie ganz einfach weitere Container erstellen oder weitere Knoten zu Ihrem Kubernetes-Cluster hinzufügen.

Kubernetes und Docker können zusammen verwendet werden. Docker ist ein offener Standard zum Packen und Verteilen containerisierter Anwendungen. Mit Docker können Sie Container erstellen und ausführen sowie Containerimages speichern und freigeben. Sie können problemlos ein Docker-Build auf einem Kubernetes-Cluster ausführen, allerdings stellt Kubernetes selbst keine vollständige Lösung dar. Um Kubernetes in einer Produktionsumgebung zu optimieren, implementieren Sie zusätzliche Tools und Dienste zur Verwaltung der Sicherheit, Governance, Identitäten und Zugriffe sowie CI/CD-Workflows (Continuous Integration/Continuous Deployment) und weitere DevOps-Methoden.

Lösungsarchitekturen mit Kubernetes und Docker in einer Produktionsumgebung

Diagramm: Microservices mit AKS-Lösungsarchitektur

Microservices mit AKS

Verwenden Sie AKS, um die Bereitstellung und Verwaltung einer auf Microservices basierenden Architektur zu vereinfachen. AKS optimiert die horizontale die Skalierung, die Selbstreparatur, den Lastenausgleich und die Verwaltung von Geheimnissen.

Diagramm: Sichere DevOps für AKS-Lösungsarchitektur

Sichere DevOps für AKS

DevOps und Kubernetes funktionieren zusammen am besten. Wenn Sie sichere DevOps-Methoden zusammen mit Kubernetes in Azure implementieren, können Sie ein Gleichgewicht zwischen Geschwindigkeit und Sicherheit erzielen und Ihren Code schneller bedarfsgerecht bereitstellen.

Mit Azure auf die Stärken von Kubernetes bauen

Azure Kubernetes Service (AKS) vereinfacht die Bereitstellung und Verwaltung containerisierter Anwendungen. AKS bietet serverloses Kubernetes, CI/CD sowie Sicherheit und Governance auf Unternehmensniveau. Vereinen Sie Ihre Entwicklungs- und Betriebsteams auf einer einzigen Plattform, um Anwendungen schnell und zuverlässig zu entwickeln, bereitzustellen und zu skalieren.

Mit Kubernetes und Docker starten