据我了解:
Mesos、Kubernetes 和 Fleet 都在尝试解决一个非常相似的问题。这个想法是您从开发人员那里抽象出所有硬件,而“集群管理工具”会为您解决所有问题。然后你需要做的就是给集群一个容器,给它一些信息(让它永久运行,如果发生 X 等扩大规模),集群管理器就会让它发生。
使用 Mesos,它会为您完成所有集群管理,但它不包括调度程序。调度程序的意思是,好的,这个过程需要 2 个 procs 和 512MB RAM,我在那边有一台免费的机器,所以我会在那台机器上运行它。有一些可用于 Mesos 的插件调度程序:Marathon 和 Chronos,您可以编写自己的。这为您提供了强大的资源分配和集群扩展等功能。
Fleet 和 Kubernetes 似乎抽象出了这些细节(因此您基本上不必编写自己的调度程序)。这意味着您必须定义您的任务并以 Fleet 或 Kubernetes 定义的格式/方式提交它们,然后他们接管并为您安排任务(容器)。
所以我猜:使用 Mesos 可能意味着在编写自己的调度程序时需要做更多的工作,但如果需要,可能会提供更多的灵活性。
我认为在 Mesos 之上运行 Kubernetes 的想法是 Kubernetes 充当 Mesos 的调度程序。就我个人而言,我不确定这会给自己运行一个或另一个带来什么好处(希望有人会介入并解释!)
正如 MikeB 所说.. 现在还处于早期阶段,一切都在争夺中(也请关注亚马逊的 ECS),因此有许多竞争标准和很多重叠!
-edit- 我没有提到 Docker swarm,因为我对它没有太多经验。