专栏名称: 稀土圈
掘金团队是一个新锐的互联网创业团队,服务用户是互联网技术开发者和从业者。旗下产品有:(专注技术干货的)掘金,(优质的下线活动)Meetup。可以戳 http://xitu.io 了解更多。对了,稀土君爱你们?
目录
相关文章推荐
新北方  ·  你敢信?有些素菜,其实比肥肉还油! ·  16 小时前  
新北方  ·  关于“罗某宇坠楼事件”的情况通报 ·  3 天前  
新北方  ·  最新曝光!沈阳这个单位被临时查封! ·  3 天前  
51好读  ›  专栏  ›  稀土圈

阿里巴巴黑科技调度系统揭秘 | JTalk 第六期

稀土圈  · 公众号  ·  · 2018-05-28 18:00

正文

请到「今天看啥」查看全文



这张图是容器和VM的对比,最大的区别在于VM有一个Hypervisor,它的分量比较重;而在容器上相对应的则是Docker Daemon,当用户提交请求时,Docker Daemon 会帮用户转化用户的请求,比方说你告诉Docker你需要一个容器,Docker Daemon负责接受请求并帮你把Docker container run起来。

什么是调度

  • 调度可以将容器快速放置在集群的机器上;

  • 根据用户请求将容器分配到不同的机器上;

  • 限制容器容量和保证容器公平;

  • 通过将空闲的机器分配到有需求的地方来提升资源利用率

  • 帮助出错挂掉的服务器重启


业界流行的调度系统中最古老的就是Google Borg,在上面跑了大部分Google的任务,以及一些后端的服务。Kubernetes也是来自于Google,Docker Swarm是Docker公司自己写的一套调度系统,Yarn是Hadoop的一个子项目。阿里巴巴内部的调度系统是Sigma和Fuxi。
我先简单介绍一下什么是Kubernetes,它最早是由Google开源出来的,过去两年它做了很多宣传,越来越多的人了解了它。现在Kubernetes接手了大部分的containerized workloads和服务。
这是Kubernetes的一个大致架构,用户提交一个请求给API Server,API Sever会把请求转交给Kubernetes Master,即做了一个调度逻辑。每个大公司的集群肯定会有一个task,它会在Nodes上分配一些容器给用户。
Kubernetes有一个好的地方就是它把多个容器抽象成了Pod,方便用户管理。


这里介绍一个例子,这是用户部署一个Web Application时的流程。如动图所示,比方说用户想在网页上部署一段“Hello World”的Web App,用户指定说要一个Replica,调度器会在Node 1上分配一个Pod出来,Pod里跑了一个Hello World的Container。调度接收到这个请求后,会把这个Web Server的容器复制三份,在Node1/2/3上都跑同一份Replica。假如有一天一个Node挂掉了,那么调度器就不能满足原来三份Replica的请求。这样调度器会在现有的Node中再申请出一个Pod出来满足用户请求。
现在我介绍一下Hadoop,Hadoop内也有一个调度器,叫做Yarn。最早的Big data jobs其实就是MadReduce,它可以分割成一个Mapper task和一个Reducer task。

它的过程也类似,Resource Manager扮演Master的角色,会把task分配到不同的机器上面,我们用容器做一个分装,让它们在不同的机器上一起跑。







请到「今天看啥」查看全文