Soweit ich es verstehe:
Mesos, Kubernetes und Fleet versuchen alle, ein sehr ähnliches Problem zu lösen. Die Idee ist, dass Sie Ihre gesamte Hardware von Entwicklern abstrahieren und das 'Cluster Management Tool' alles für Sie erledigt. Dann müssen Sie dem Cluster nur noch einen Container geben, ihm einige Informationen geben (ihn dauerhaft laufen lassen, skalieren, wenn X passiert usw.), und der Cluster-Manager wird dies ermöglichen.
Mit Mesos übernimmt es die gesamte Clusterverwaltung für Sie, enthält jedoch nicht den Scheduler. Der Scheduler ist das Bit, das sagt, ok, dieser Prozess benötigt 2 Prozesse und 512 MB RAM, und ich habe dort einen Computer mit diesem freien, also werde ich ihn auf diesem Computer ausführen. Es gibt einige Plugin-Scheduler für Mesos: Marathon und Chronos, und Sie können Ihre eigenen schreiben. Dies gibt Ihnen viel Leistung bei der Ressourcenverteilung und Cluster-Skalierung usw.
Fleet und Kubernetes scheinen diese Art von Details zu abstrahieren (so dass Sie im Grunde keinen eigenen Scheduler schreiben müssen). Dies bedeutet, dass Sie Ihre Aufgaben definieren und in dem von Fleet oder Kubernetes definierten Format / der von Fleeres Kubernetes festgelegten Form einreichen müssen. Anschließend übernehmen sie die Aufgaben (Container) und planen sie für Sie.
Ich denke also: Die Verwendung von Mesos bedeutet möglicherweise etwas mehr Arbeit beim Schreiben Ihres eigenen Schedulers, bietet jedoch möglicherweise bei Bedarf mehr Flexibilität.
Ich denke, die Idee, Kubernetes auf Mesos auszuführen, ist, dass Kubernetes als Scheduler für Mesos fungiert. Persönlich bin ich mir nicht sicher, welche Vorteile dies bringt, wenn man das eine oder andere alleine laufen lässt (hoffentlich springt jemand ein und erklärt es!)
Wie MikeB sagte ... es ist noch früh, und es ist alles zu gewinnen (behalten Sie auch das ECS von Amazon im Auge), also gibt es viele konkurrierende Standards und viele Überschneidungen!
-edit- Ich habe Docker Swarm nicht erwähnt, da ich nicht wirklich viel Erfahrung damit habe.