Yelp开源了自动扩展集群系统Clusterman,可支持Kubernetes集群管理

Yelp对外开源其内部使用的集群扩展系统Clusterman,而原本该系统仅支持Mesos集群自动扩展,而现在还能支持Kubernetes集群,通过自定义的信号,以更积极主动的方法,控制集群的缩放。用户已经可以直接从GitHub上取得该项目。

Yelp现在采用全分布式且以服务为导向的基础设施,系统运行在由自家平台即服务PaaSTA构成的云计算之上。在今年二月的时候,Yelp对外公开了内部新的集群管理器Clusterman,Yelp提到,在Yelp有不同的工作负载需要自动扩展,包括像是网页服务等长期执行的任务、定期执行的批次任务、单元和集成测试以及机器学习等工作,每一个应用程序都有不同的使用模式以及容错等级,因此他们需要可以分别为这些内容自动缩放的集群系统。

为此,Yelp打造了他们第三个自动缩放器Clusterman,Clusterman起初仅支持Mesos集群,Apache Mesos是一个集群管理工具,其抽象了集群服务器中的特定属性,让开发人员可以直接将集群视为一台大型的计算机,集成应用计算资源。但现在Yelp为了扩展基础设施,他们认为,最简单地方式就是把工作负载从Mesos搬迁到Kubernetes,因为Kubernetes能够执行在Mesos难以管理的工作负载,像是Flink、Cassandra、Spark和Kafka等。

另外,Yelp也准备将所有现有的微服务和批处理工作负载搬迁到Kubernetes上,而为了快速且方便地完成这个目标,他们让Clusterman支持Kubernetes,通过PaaSTA的抽象功能,可以无缝地进行工作负载搬迁。

Yelp表示,在Clusterman增加Kubernetes的支持并不是困难的事,因为Clusterman采用模块化设计,Yelp仅多定义了一个连接器类别,让连接器符合自动扩展器的需求。与Clusterman对Mesos的支持运行方法相似,连接器可与Kubernetes API进行通信,截取Kubernetes集群扩展的指标和统计数据,这些指标会被当作信号传递给自动扩展引擎,以决定增加或是移除计算资源。

与类似的系统Auto Scaling for Spot Fleet和Kubernetes Cluster Autoscaler相比,Clusterman是唯一一个支持混合云计算资源的自动缩放器解决方案,而且Clusterman的可插拔信号基础架构,让用户可以自己编写任何类型的的缩放信号。

Yelp提到,虽然AWS Spot Fleet Autoscaler或Kubernetes Cluster Autoscaler已可符合大多数的Kubernetes使用案例,但是Clusterman可以让用户更积极主动地准备计算资源。Yelp举例,他们内部使用了Jolt作为单元和集成测试的工具,Jolt集群每天会执行数百万个测试,具有可预测的工作量,他们在Clusterman编写自定义信号,可以在Pod进入等待状态之前,就对集群进行缩放,大幅降低开发者执行测试的等待时间。