vlambda博客
学习文章列表

从Mesos转向Kubernetes,美国最大点评网站Yelp,开源Clusterman集群系统

Yelp对外开源其内部使用的集群伸缩系统Clusterman,原本该系统仅支持Mesos集群自动伸缩,而现在开始支持Kubernetes集群,通过自定义,以更积极主动的方法,控制集群的伸缩。使用者可以直接从GitHub上下载该项目。
 
Yelp采用全分布式且以服务为导向的基础设施,系统运行在由Yelp平台即服务的PaaSTA构成的云端之上。在今年二月的时候,Yelp对外公开了内部新的集群管理器ClustermanYelp提到,在Yelp有不同的工作负载需要自动伸缩,例如网页服务等长期执行的任务、定期执行的批次任务、单元和整合测试以及机器学习等工作,每一个应用程序都有不同的使用模式以及容错等级,因此他们需要可以分别为这些内容自动伸缩的集群系统。
 
为此,Yelp打造了他们第三个自动缩放器ClustermanClusterman起初仅支持Mesos集群,Apache Mesos是一个集群管理工具,其抽象了集群服务器中的特定属性,让开发人员可以直接将集群视为一台大型的计算机,整合应用运算资源。但现在Yelp为了扩展基础设施,他们认为,最简单地方式就是把工作负载从Mesos搬迁到Kubernetes,因为Kubernetes能够执行在Mesos难以管理的工作负载,例如FlinkCassandraSparkKafka等。
 
另外,Yelp也准备将所有现有的微服务和批次处理工作负载搬迁到Kubernetes上,而为了快速且方便地达成这个目标,他们让Clusterman支持Kubernetes,通过PaaSTA的抽象功能,可以无缝地进行工作负载搬迁。
 
Yelp表示,在Clusterman增加Kubernetes的支持并不是困难的事,因为Clusterman采用模块化设计,Yelp仅多定义了一个连接器类别,让连接器符合自动扩展器的需求。与ClustermanMesos的支持运行方法相似,连接器可与Kubernetes API进行通讯,撷取Kubernetes集群扩展的指标和统计数据,这些指标会被当作信号传递给自动扩展引擎,以决定增加或是减少运算资源。
 
与类似的系统Auto Scaling for Spot FleetKubernetes Cluster Autoscaler相比,Clusterman是唯一一个支持混合云端资源的自动缩放器解决方案,而且Clusterman的可插拔信息基础架构,让使用者可以自己编写任何类型的的缩放信号。
 
Yelp提到,虽然AWS Spot Fleet AutoscalerKubernetes Cluster Autoscaler已可符合大多数的Kubernetes使用案例,但是Clusterman可以让使用者更积极主动地准备运算资源。Yelp举例,他们内部使用了Jolt作为单元和整合测试的工具,Jolt集群每天会执行数百万个测试,具有可预测的工作量,他们在Clusterman编写自定义信息,可以在Pod进入等待状态之前,就对集群进行缩放,大幅降低开发者执行测试的等待时间。
 

参考:

https://engineeringblog.yelp.com/2019/11/open-source-clusterman.html

https://www.ithome.com.tw/news/134265

https://github.com/Yelp/clusterman


END