426 Stimmen

Was ist der Unterschied zwischen Apache's Mesos und Google's Kubernetes

Was ist genau der Unterschied zwischen Apache's Mesos und Google's Kubernetes? Ich verstehe, dass beide Server-Cluster-Management-Software sind. Kann jemand näher erläutern, wo die Hauptunterschiede liegen - wann würde welches Framework bevorzugt werden?

Warum sollte man Kubernetes auf Mesosphere laufen lassen?

564voto

Craig Mcluckie Punkte 5770

Kubernetes ist ein Open-Source-Projekt, das 'Google-Stil' Cluster-Management-Funktionen in die Welt der virtuellen Maschinen oder 'on the metal'-Szenarien bringt. Es funktioniert sehr gut mit modernen Betriebssystemumgebungen (wie CoreOS oder Red Hat Atomic), die leichte Computing-'Nodes' anbieten, die für Sie verwaltet werden. Es ist in Golang geschrieben und ist leichtgewichtig, modular, tragbar und erweiterbar. Wir (das Kubernetes-Team) arbeiten mit einer Reihe von verschiedenen Technologieunternehmen (einschließlich Mesosphere, die das Mesos Open-Source-Projekt kuratieren) zusammen, um Kubernetes als Standardweg zur Interaktion mit Rechenclustern zu etablieren. Die Idee ist, die Muster zu reproduzieren, die wir sehen, dass Menschen benötigen, um Cluster-Anwendungen basierend auf unserer Erfahrung bei Google zu entwickeln. Einige dieser Konzepte sind:

  • Pods — eine Möglichkeit, Container zusammenzufassen
  • Replikationscontroller — eine Möglichkeit, den Lebenszyklus von Containern zu handhaben
  • Labels — eine Möglichkeit, Container zu finden und abzufragen, und
  • Dienste — eine Gruppe von Containern, die eine gemeinsame Funktion ausführen.

Also alleine mit Kubernetes haben Sie etwas, das einfach, leicht zu starten, tragbar und erweiterbar ist und 'Cluster' als Substantiv zu den Dingen hinzufügt, die Sie auf leichteste Weise verwalten. Führen Sie eine Anwendung auf einem Cluster aus und machen Sie sich keine Gedanken mehr über eine einzelne Maschine. In diesem Fall ist der Cluster eine flexible Ressource wie eine VM. Es ist eine logische Recheneinheit. Schalten Sie ihn ein, verwenden Sie ihn, ändern Sie seine Größe, schalten Sie ihn schnell und einfach aus.

Bei Mesos gibt es in Bezug auf die grundlegende Vision eine beträchtliche Überschneidung, aber die Produkte befinden sich in unterschiedlichen Phasen ihres Lebenszyklus und haben unterschiedliche Schwerpunkte. Mesos ist ein verteiltes System-Kernel, der viele verschiedene Maschinen zu einem logischen Computer zusammenfügt. Er wurde für eine Welt geboren, in der Sie viele physische Ressourcen besitzen, um einen großen statischen Rechencluster zu erstellen. Das Tolle daran ist, dass viele moderne skalierbare Datenverarbeitungsanwendungen gut auf Mesos laufen (Hadoop, Kafka, Spark) und es schön ist, weil Sie alle auf dem gleichen Grundressourcenpool ausführen können, zusammen mit Ihren neuen Container-verpackten Apps. Es ist etwas schwerwiegender als das Kubernetes-Projekt, wird aber dank der Arbeit von Leuten wie Mesosphere immer einfacher zu verwalten.

Jetzt wird es wirklich interessant, dass Mesos derzeit angepasst wird, um viele der Kubernetes-Konzepte hinzuzufügen und die Kubernetes API zu unterstützen. Es wird also ein Gateway sein, um mehr Fähigkeiten für Ihre Kubernetes-App zu erhalten (Master mit hoher Verfügbarkeit, fortschrittlichere Terminologie für die Planung, Fähigkeit, auf eine sehr große Anzahl von Knoten zu skalieren), wenn Sie sie benötigen, und ist gut geeignet, um Produktions-Workloads auszuführen (Kubernetes befindet sich noch im Alpha-Zustand).

Wenn mich jemand fragt, neige ich dazu zu sagen:

  1. Kubernetes ist ein großartiger Ort, um anzufangen, wenn Sie neu in der Welt des Clustering sind; es ist der schnellste, einfachste und leichteste Weg, um die Reifen zu testen und mit der Entwicklung von Cluster orientierten Entwicklung zu beginnen. Es bietet ein sehr hohes Maß an Portabilität, da es von vielen verschiedenen Anbietern unterstützt wird (Microsoft, IBM, Red Hat, CoreOs, MesoSphere, VMWare, etc).

  2. Wenn Sie bereits Arbeitslasten haben (Hadoop, Spark, Kafka, etc), bietet Ihnen Mesos ein Framework, das es Ihnen ermöglicht, diese Arbeitslasten miteinander zu verflechten und etwas Neues einschließlich Kubernetes-Apps einzufügen.

  3. Mesos bietet Ihnen einen Ausweg, wenn Sie Fähigkeiten benötigen, die von der Community im Kubernetes-Framework noch nicht implementiert wurden.

81voto

mesospherian Punkte 811

Beide Projekte haben zum Ziel, es einfacher zu machen, Anwendungen innerhalb von Containern in Ihrem Rechenzentrum oder in der Cloud bereitzustellen und zu verwalten.

Um Anwendungen auf Mesos zu implementieren, kann man Marathon oder Kubernetes für Mesos verwenden.

Marathon ist ein systemweites Init- und Steuersystem für das Ausführen von Linux-Diensten in Cgroups und Docker-Containern. Marathon verfügt über verschiedene Funktionen für die canary deployment und ist ein sehr ausgereiftes Projekt.

Marathon läuft auf Mesos, einem hoch skalierbaren, erprobten und flexiblen Ressourcen-Manager. Marathon hat sich als skalierbar bewährt und wird in vielen Produktionsumgebungen eingesetzt.

Das Mesos- und Mesosphere-Technologie-Stack bietet eine cloud-ähnliche Umgebung für vorhandene Linux-Workloads, bietet aber auch eine native Umgebung zum Aufbau neuer verteilter Systeme.

Mesos ist ein Betriebssystem-Kernel für verteilte Systeme mit einer vollständigen API zum direkten Programmieren gegen das Rechenzentrum. Es abstrahiert die zugrunde liegende Hardware (z. B. Bare Metal oder VMs) und stellt nur die Ressourcen zur Verfügung. Es enthält Grundbausteine für das Schreiben von verteilten Anwendungen (z. B. Spark war ursprünglich eine Mesos-App, Chronos usw.) wie Message Passing, Aufgabenausführung usw. Dadurch sind völlig neue Anwendungen möglich. Apache Spark ist ein Beispiel für ein neues (im Mesos-Jargon genanntes) Framework, das ursprünglich für Mesos entwickelt wurde. Dies ermöglichte eine wirklich schnelle Entwicklung - die Entwickler von Spark mussten sich nicht um die Verteilung von Aufgaben unter den Knoten kümmern, da dies ein Kernprimitiv in Mesos ist.

Nach meinem Kenntnisstand wird Kubernetes heute nicht in Produktionsbereitstellungen innerhalb von Google verwendet. Für die Produktion verwendet Google Omega/Borg, das dem Mesos/Marathon-Modell sehr ähnlich ist. Die großartige Sache daran, Mesos als Grundlage zu verwenden, ist, dass sowohl Kubernetes als auch Marathon darauf ausgeführt werden können.

Weitere Ressourcen über Marathon:

https://mesosphere.github.io/marathon/

Video: https://www.youtube.com/watch?v=hZNGST2vIds

44voto

herodot Punkte 2119

Kubernetes und Mesos sind ein Match, das im Himmel gemacht wurde. Kubernetes ermöglicht die Pod (Gruppe von nebeneinander platzierten Containern) Abstraktion, zusammen mit Pod-Labels für die Dienstentdeckung, Lastenausgleich und Replikationskontrolle. Mesos bietet die feinkörnige Ressourcenzuweisung für Pods über Nodes in einem Cluster und kann Kubernetes dazu bringen, gut mit anderen Frameworks zu interagieren, die auf denselben Clusterressourcen laufen.

von Readme von kubernetes-mesos

21voto

user2851943 Punkte 830

Mesos und Kubernetes können beide verwendet werden, um einen Cluster von Maschinen zu verwalten und die Hardware abstrahieren.

Mesos bietet standardmäßig keine Scheduler (um zu entscheiden, wo und wann Prozesse ausgeführt werden sollen und was passieren soll, wenn der Prozess fehlschlägt), Sie können etwas wie Marathon oder Chronos verwenden oder Ihren eigenen schreiben.

Kubernetes übernimmt die Planung für Sie out of the box und kann als Scheduler für Mesos verwendet werden (korrigieren Sie mich bitte, wenn ich hier falsch liege!), wobei Sie sie gemeinsam verwenden können. Mesos kann mehrere Scheduler haben, die denselben Cluster gemeinsam nutzen, sodass Sie theoretisch Kubernetes und Chronos gleichzeitig auf derselben Hardware ausführen könnten.

Ganz einfach ausgedrückt: Wenn Sie die Kontrolle darüber haben möchten, wie Ihre Container geplant sind, wählen Sie Mesos, sonst ist Kubernetes top.

6voto

zinking Punkte 5285

Ich mag dieses kurze Video hier Mesos Lernmaterial

Mit Bare-Metal-Clustern müssten Sie Stapel wie HDFS, SPARK, MR usw. erstellen... also, wenn Sie Aufgaben im Zusammenhang mit diesen starten, indem Sie nur das Bare-Metal-Cluster-Management verwenden, wird es eine lange Startzeit geben.

Mit Mesos können Sie diese Dienste auf den Bare Metal installieren und die Startzeit dieser Basisservices vermeiden. Das ist etwas, das Mesos gut macht und von Kubernetes genutzt werden kann, das darauf aufbaut.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X