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