swarm kubernetes mesos对比

一个集群高度工具有多个目的:使用得集群的资源被高效利用,支持用户提供的配置约束,能够迅速调度应用以此保证它们不会处于待定状态(pending state),有一定程序的“公平”,具有一定的鲁棒性和可用性。

 

  • 一体式调度(Monolithic scheduling)

由单一的调度代理组成,它负责处理所有的请求,这种框架通常应用于高性能计算。yarn是一个非常流行的架构,尽管它将许多调度功能都分发到每一个应用模块中,但它依然是一体式的调度架构,因为实际上,所有的资源请求都会被发送到一个单一的全局调度模块。

  • 两级调度(Two-level scheduling)

两级调度框架会利用一个中央协调器来动态决定各个调度模块可以调用多少资源,这项技术被应用于Mesos。

  • 共享状态调度(共享状态调度)

每一个调度器对整个集群有全部访问权限,也就是说调度器们可以自由地竞争,因为所有的资源分配都发生在各个调度器中,所以也就没有资源分配器。

 

 

容器调度

容器高度工具的主要任务就是负责在最合适的主机上启动容器,并且将它们关联起来,它必须能够通过自动的故障转移(fail-overs)来处理错误,并且当一个实例不足以处理/计算数据时,它能够扩展容器来解决问题。

 

  • Docker swarm(running the Marathon framework)

由Docker开发的调度框架,由Docker自身开发的好外之一就是标准Docker API的使用。

(1)策略

swarm采用了三个策略:

spread:最少的容器,并且忽视它们的状态。

binpack:最拥挤

random:随机选择

(2)过滤器

swarm提供了两个节点过滤器(constraint和health),还有三个容器配置过滤器(affinity, dependency和port)。

constraint过滤器中每一个节点都关联有键值对,当你在实际的生产环境中运行容器时,你可以指定约束来完成查找,比如说一个容器只会在带有环境变量key=prod的节点上运行,如果没有节点满足要求,这个容器将不会运行。

health过滤器用来防止调度不健康用来防止调度不健康的节点。

affinity过滤器对容器来说,当你想要运行一个新的容器时,你只需要指定你想要链接的容器的名字,然后这些容器就会互相链接。

Dependency过滤器用来运行一个依赖于其他容器的容器。

port过滤器如果你想要在具有特定开发端口的节点上运行容器,就可以使用端口过滤器。

  • Mesos(Twitter)

mesos的提出就是为在底部添加一个轻量的资源共享层,这个层使得各个框架能够适用一个统一的接口来访问集群资源,Mesos并不负责调度而是负责委派权,毕竟很多框架都已经实现了复杂的调度。

  • Kubernetes(Kubernetes)

K8s是一个Docker容器的编排系统,它使用label和pod的概念来将容器划分为逻辑单元。

 

最后欢迎大家访问我的个人网站:1024s

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值