Nomad,Yarn,Kubernetes,Borg,Mesos和……等等!

您想降低噪音吗?

好吧,Scholar.google.com可以为您提供帮助。

我经常使用研究论文来分析"第一手"比较,而不是"标志"和" blogskite"帖子。

好,回到主题。

最好在这里描述调度体系结构概述:

Schwarzkopf,Malte等。 " Omega:适用于大型计算集群的灵活,可扩展的调度程序。" 第八届ACM欧洲计算机系统会议论文集。 ACM,2013年。

Nomad,Yarn,Kubernetes,Borg,Mesos和……等等!

> ( source )

…作为后续,下面的文章将它放在上下文中:

Shav Ravula。 "通过Mesos / Marathon实现不可变容器化微服务的持续交付。" (2017)。

单片调度程序

整体调度程序对所有作业使用单个集中式调度算法。 所有工作负载都通过相同的调度程序和相同的调度逻辑运行。 Swarm,Fleet,Borg和Kubernetes采用单片调度程序。 Kubernetes即兴使用Borg和Swarm调度程序的基本整体版本。 这种类型的调度程序不适用于运行异构的现代工作负载,包括Spark作业,容器和其他长时间运行的作业等。

两级调度程序

两级调度程序通过将对资源分配和任务放置的关注分开来解决了整体调度程序的缺点。 活跃的资源管理器将计算资源提供给多个并行的独立"调度程序框架"。 Mesos集群管理器率先采用了这种方法,YARN支持这种方法的有限版本。 在Mesos中,资源提供给应用程序级调度程序。 这允许定制的,特定于工作负载的调度策略。 这种调度体系结构的缺点是应用程序级框架不再能看到所有可能的放置选项。 相反,他们只看到与资源管理器组件提供的(Mesos)或分配的(YARN)资源相对应的那些选项。 这使得优先级抢占(高优先级任务踢出低优先级任务)变得困难。

共享状态调度程序

共享状态调度程序通过删除中央资源分配器来授予对整个群集资源的完全访问权限。 每个应用程序级别的调度程序都可以访问整个集群。 群集的状态在所有调度程序之间共享。 此类调度程序的一个示例是Omega和Nomad。 通过支持独立的调度程序实现并公开调度程序的整个分配状态,该体系结构可以扩展到许多调度程序,并通过自己的调度策略处理不同的工作负载。 这种体系结构的主要缺点是,调度程序必须使用过时的信息(与集中式调度程序不同),并且在高竞争情况下可能会遇到调度程序性能下降的情况。

(资源)

最后将Nomad放置到位,对吗?

另外,我今天在HashiCorp MeetUp#15上记录的Nomad消息转储

Nomad UI

· https://github.com/jippi/hashi-ui

· https://github.com/FRosner/cluster-broccoli

Nomad的Rundeck插件

ValFadeev / rundeck-nomad-plugin

rundeck-nomad-plugin-在Nomad群集上运行作业的Rundeck插件。

· 启动领事代理,以发现游牧代理的服务(在本地主机上的服务器和客户端中)

· 启动nomad代理(使用–dev)

· 打开领事UI

· 启动hashi UI

· 在本地主机上启动rundeck(启动jar可执行文件)

· 安装插件只需将其放到插件目录中

· 创建rundeck项目,创建工作,并-执行一些Nomad步骤:

· 一些命令/脚本/对另一个作业的引用,即运行带有alpine 3.5映像的docker容器,然后睡眠10秒钟$ {option.sleep}然后再次运行

更多的惊喜,因为我得到更多的动手与Nomad的明天!

(本文翻译自Arseny Chernov的文章《Nomad vs. Yarn vs. Kubernetes vs. Borg vs. Mesos vs… you name it!》,参考:https://medium.com/@arseny.chernov/nomad-vs-yarn-vs-kubernetes-vs-borg-vs-mesos-vs-you-name-it-7f15a907ece2)


分享到:


相關文章: