近年来,云原生的概念席卷了整个云计算领域,以Kubernetes为代表的云原生技术所带来的变革引发了企业深思,越来越多的企业逐步将基础架构向云原生架构迁移,业务应用也以遵从云原生十二要素标准进行开发部署。技术交付理念的变革同时也加快了企业数字化和智能化转型的过程。
云原生技术初期天然适合微服务架构,而随着整个云原生技术的快速发展和云原生基础架构的不断夯实,企业逐渐开始将传统大数据的分析型应用和计算型应用“搬上”云原生架构。至此,云原生基础架构作为企业内部的统一基础架构已成为必然趋势。然而,将云原生基础架构作为统一的基础架构也势必面临着基础平台整合后的兼容性问题,例如:传统大数据任务如何在云原生架构下进行编排和调度、大数据中所提倡的计算数据本地化如何在云原生架构下完美落地等。因此,虽然统一云原生基础架构是大势所趋,但依然有很长的路要走。
星环科技是云原生技术的早期实践者,为???????推动统一云原生基础架构进行了多方面探索,数据云平台产品TDC即是星环在统一云原生基础架构方面多年积累和实践的产物。TDC覆盖了分析云、数据云、应用云三方面功能,在一个平台内满足企业对于三类云平台的建设要求,包含数据仓库、流式引擎、分析工具、DevOps等应用,能够同时应对多样、复杂的工作负载场景。为此,星环科技底层云平台多年来做了不少工作,接下来就分享下我们在统一云原生基础架构下关于复杂工作负载混合调度器的思考与实践。
统一云原生基础架构在统一云原生基础架构的概念出现后,如何解决多类型工作负载的编排和调度成为了一个亟待解决的问题,包括但不限于MicroService、BigData、AI、HPC类型的工作负载。对于MicroService则是云原生架构天然支持的,所以如何满足其余类型的工作负载的编排、调度是迫切需要解决的,典型的如Spark、TensorFlow等社区代表计算任务,HDFS、HBase等大数据存储服务。而以Kubernetes为核心的开源社区针对这些需求也做了相应的尝试,比如通过SparkOperator以及TensorFlowOperator等解决了任务编排的问题,但是调度相关的能力仍然有缺失的。除此之外还有一些大数据生态的企业级特性也是原生Kubernetes调度能力无法支持的。为此,我们针对如何解决在统一基础架构背景下Kubernetes所缺失的调度能力进行了调研和思考。﹀
﹀
﹀
大数据/AI生态调度器让我们来回顾下在大数据/AI生态的相关调度器的特性,主要调研对象为Mesos和YARN。
Mesos
Mesos诞生于加州大学伯克利分校,后经开源后在Twitter被大规模使用,技术原型参考Google内部的调度器进行设计实现。Mesos是一个具有两级调度架构的框架,其本身主要专注于做基于DRF算法的资源分配,具体提交的任务资源如何管控和分配则是由特定的Framework实现。因此,在如此灵活的架构下,开发者们有非常广阔的发挥空间。但是由于其自身并没有能够提供太多功能特性导致没有建立起相应的生态,使得越来越多使用者望而却步,转而寻求其他项目。Mesos的特性总结如下:
两级调度架构,更加灵活
专注于基于DRF算法的资源分配
可自定义Framework来实现特定任务的资源调度和管理
支持在线、离线、HPC类型任务调度
YARN
YARN是Hadoop2.0版本中发布的一款原生的资源管理和调度框架。随着YARN的发布,Hadoop彻底确立了自己在大数据领域的核心地位,所有的大数据组件和服务均可以由YARN进行调度和管理。虽然其架构相比Mesos不够灵活,但是YARN相比Mesos有Hadoop强大的生态背书,其发展可谓顺风顺水,相关特性和能力也被企业所推崇,解决了企业中关于资源调度和管理的诸多问题。其特性总结如下:
单级调度架构,不够灵活
支持层次化的资源队列,可以映射多租户和企业组织架构
支持资源共享、弹性调度、公平调度
支持多种大数据任务编排调度
支持在线、离线、HPC类型任务调度
﹀
﹀
﹀
Kubernetes原生调度器相比于大数据/AI生态调度器,Kubernetes原生调度器在微服务、无状态应用等领域具有得天独厚的优势,而在统一云原生基础架构背景下,Kubernetes原生调度器所显露出的能力不足则被不断放大。下面列举了一些Kubernetes原生调度器的不足点:
不支持多租户模型下的资源调度
不支持大数据、AI类型任务的调度
不支持资源队列
不支持资源共享和弹性调度
不支持细粒度资源管控
不支持应用感知调度
调度排序算法单一
﹀
﹀
﹀
Kubernetes生态调度器Volcano
Volcano(