我试图理解Apache Mesos,需要澄清一些问题。
我对Mesos的理解是,在集群中每个物理/虚拟机服务器(“节点”)上安装可执行文件,然后以某种方式提供Java API,将每个单独的节点视为计算资源(CPU / RAM等)的集体池。因此,对于使用Java API进行编码的程序,它们只看到1组资源,无需担心代码如何/在哪里部署。
因此,首先,我的理解可能基本上是错误的(如果是这种情况,请纠正我!)。但是如果我正确,那么Mesos提供的Java API如何允许Java客户端利用这些资源??有人能举一个Mesos实际应用的具体例子吗?
更新
请看下面我不好的图示。如果我正确理解了Mesos架构,我们有一个由3个物理服务器(phys01
,phys02
和phys03
)组成的集群。这些物理机器的每一个都在运行Ubuntu主机(或其他操作系统)。通过类似Xen的虚拟化技术,我们可以在其上运行一个或多个虚拟机。
我对Docker和CoreOS感兴趣,所以我会在这个示例中使用它们,但我猜想同样适用于其他非容器化的设置。
因此,在每个虚拟机上,我们都有一个运行着CoreOS的Mesos可执行文件/服务器。在集群中,所有Mesos节点将其下方的所有内容视为单个资源池,并且可以任意部署到Mesos集群中,Mesos将确定将其实际部署到哪个CoreOS实例。
在Mesos之上运行一个“Mesos框架”,例如Marathon或Kubernetes。在Kubernetes内部运行各种Docker容器(C1
- C4
)。
这样对Mesos的理解是不是更正确了?