Was sind die Hauptunterschiede zwischen den beliebten Container-Orchestrierungs-Tools Kubernetes, Rancher und Mesos?
Was würde Sie dazu bringen, eine über die andere zu wählen?
Was sind die Hauptunterschiede zwischen den beliebten Container-Orchestrierungs-Tools Kubernetes, Rancher und Mesos?
Was würde Sie dazu bringen, eine über die andere zu wählen?
Antworten:
Zunächst enthält Rancher tatsächlich Implementierungen von Kubernetes und Mesos in sich. Sie haben jedoch ihr eigenes System namens Cattle entwickelt, das stark auf Docker's Swarm basiert. Ich werde dies im Abschnitt für Rancher ansprechen.
Zweitens versuche ich, da jede Komponente ähnliche Basisfunktionen bietet (Lastenausgleich, Ressourcenisolierung usw.), mehr auf die Unterschiede zwischen diesen gemeinsamen Funktionen einzugehen, als auf die Unterschiede zwischen ihnen, es sei denn, sie sind signifikant.
Hochleistungsorientiert, auch mit Cloud-Speicher-Orchestrierung (eine Funktion, die in Mesos fehlt, obwohl es wahrscheinlich ein Plugin dafür gibt). Verfügt über API-Optionen, die eine automatische Skalierung der Ressourcennutzung nach Bedarf einzelner Container ermöglichen (und umgekehrt, wenn ein Container nicht hart getroffen wird, während andere betroffen sind).
Was an Kubernetes wichtig ist, ist, dass es im Gegensatz zu anderen Container-Orchestrierungsprogrammen keine umfassende Konfiguration und keine umfassende Selbstheilung bietet. Stattdessen konzentriert es sich auf die kontinuierliche Bereitstellung mehrerer Apps mit einem einfachen Rollback-System auf App-Ebene (aus diesem Grund möchten Sie bei der Verwendung möglicherweise einen Blick auf die Mikrodienste werfen).
Jede App ist ein kleines Teil und kann einzeln bereitgestellt / konfiguriert werden. Sie weisen in ihren Dokumenten darauf hin, dass Kubernetes kein traditionelles PaaS-System (Platform as a Service) ist, da es keine Middleware für virtuelle Hardware oder Datenbanken gibt und Ihre App nicht selbst erstellt. Es wurde entwickelt, um (wie sie selbst sagen) die Notwendigkeit einer manuellen Container-Orchestrierung zu beseitigen, anstatt den Prozess durch kontinuierliches Drücken auf einen Ziel-App-Status zu automatisieren.
Monolithisch im Vergleich zu Kubernetes. Konzentriert sich mehr auf das Gesamtbild als auf die einzelnen Dienste, obwohl es weiterhin die Verwaltung einzelner Dienste ermöglicht. Bietet eingebaute Middleware für Dinge wie Spark, Hadoop usw. Die beste Verwendung von Mesos erfordert viele Plugins, da es einfach zu erweitern ist.
Wenn Sie eine differenzierte Kontrolle über die Verwaltung Ihrer Anwendung benötigen (sofern ein Plugin für die gewünschten Aufgaben verfügbar ist oder ein Teammitglied bereit ist, eines zu erstellen, wenn dies nicht der Fall ist), sollten Sie Mesos verwenden.
Potenziell die beste Option, da es selbst eine Obermenge der beiden vorherigen ist und eine Implementierung von beiden aufweist. Dies kann auch als Nachteil angesehen werden, da mehr Komplikationen in Ihrer Verwaltungssoftware selten von Vorteil sind und zu unvorhergesehenen Problemen führen können.
Rancher bietet einen Anwendungskatalog , der die Bereitstellung mit einem Klick ermöglicht, was Kubernetes aufgrund seiner Designphilosophie nicht hat. Da Rancher jedoch eine Implementierung von Kubernetes enthält, können Sie Rancher verwenden, wenn Sie der Meinung sind, dass diese Funktionen in Kubernetes fehlen.
Rinder basieren auf einem Stapelsystem, in dem Sie verwandte Dienste zusammenfassen. Es beherbergt auch Rancher Compose, eine Funktion, die dem gleichnamigen Docker-Dienst ähnelt. Dies ist wahrscheinlich der interessanteste Teil von Cattle, der Rest ist ziemlich normal (obwohl sich das Secret-Management noch in der Beta befindet). Wenn Sie Erfahrung mit Docker Compose haben, sollten Sie es hier nachlesen (ich weiß nicht, daher bin ich wahrscheinlich nicht der Beste, der darüber schreibt).
Ressourcen: " Was ist Kubernetes? ", " Übersicht über Rancher ", " mesos.apache.org: 'Was ist Mesos?' "