本发明专利技术公开了一种基于Kubernetes智能板卡集群的资源集成监控与调度装置。其中,该装置包括:自定义调度器、智能板卡集成组件、智能板卡监控组件以及节点优先级队列;本发明专利技术基于Kubernetes调度框架开发自定义调度器以解决集群资源碎片问题,优化集群资源利用率;通过智能板卡集成组件框架向Kubernetes集群中集成国产智能板卡资源,使得Kubernetes集群能够对异构硬件进行设备的发现并且使容器能够对该资源进行申请;通过智能板卡监控组件向分布式监控组件Prometheus汇报智能板卡运行时参数;通过节点优先级缓存队列,从性能上解决了大规模集群下使用默认调度策略的效率低下问题。题。题。
【技术实现步骤摘要】
基于Kubernetes智能板卡集群的资源集成监控与调度装置
[0001]本专利技术实施例涉及Kubernetes智能板卡集群
,尤其涉及一种基于Kubernetes智能板卡集群的资源集成监控与调度装置。
技术介绍
[0002]针对大规模的容器进行编排管理已经成为了保证云服务部署便利性以及运行稳定性的一种必然性趋势。Kubernetes容器编排引擎在Docker容器的基础之上增加了一层新的抽象对象Pod,以便更好地利用容器进行应用的功能模块划分。其一经公布就得到了众多IaaS云服务提供商的支持,并凭借其活跃的社区以及超强的可拓展性,很快占领了容器云的主要市场,逐渐成为容器云平台的事实标准。
[0003]然而在一个拥有大数据和多样化工作负载的世界中,对计算的需求是无穷无尽的。随着人工智能的发展,一个集群中越来越多的实例将处理着AI相关的业务,复杂的神经网络运算也逐渐证明了当下对计算能力的需求是无止境的。同时,随着业务的复杂度不断提升,国内市场上也不断涌现出应用于某一特殊领域的国产专用芯片,如寒武纪科技推出的MLU100与MLU200系列高性能深度学习处理器。本申请的国产智能板卡集群环境也基于寒武纪MLU100与MLU270进行构建,但这类设备往往与集群中常规的CPU等设备是异构的。而Kubernetes作为一种通用的容器编排引擎,在对基于国产智能板卡集群进行统一虚拟化纳管时,往往会出现如下几个问题:
[0004]1、无法默认对特殊的国产智能板卡进行集成导致容器无法申请资源
[0005]这带来的巨大的问题是:Kubernetes在执行容器调度的过程中,仍仅仅只能通过CPU以及内存利用率作为调度的依据,这种较为单一化的调度指标无法充分考虑到部分异构国产智能板卡的资源情况,往往导致当容器调度到某一个节点上且满足CPU和内存的需求时,无法充分利用这些设备的资源导致任务失败。
[0006]2、分布式监控组件无法获取国产智能板卡信息
[0007]在现如今Kubernetes集群的管理中,通常采用Prometheus分布式监控组件对集群的软件服务与硬件进行监控,而由于异构设备的存在,Prometheus在硬件方面的监控也只能针对常规的硬件设备,如CPU、内存、网卡等。因此无法监控到异构硬件设备的运行时信息,为设备异常的排查以及服务的部署带来困难。
[0008]3、默认调度策略导致集群资源出现碎片
[0009]Kubernetes Api Server在接收到开发或运维人员的容器的调度请求时,通过调度器组件来执行具体的调度流程。而其默认的调度算法偏向于将容器进行负载均衡地调度。而这种默认调度策略往往会导致出现如下问题:当集群负载较高的情况下,由于均衡的调度策略导致每一个节点的剩余资源量都比较少,而当一个资源需求较高的容器到来时,集群的剩余资源总量足够的情况下却没有一个节点能够满足其调度需求,导致容器被迫暂停调度(Pending),而集群当前剩余的资源在之后的容器调度过程中也难以充分利用,处于一个碎片化的分布状态。
[0010]4、大规模集群中使用默认调度策略效率低下
[0011]Kubernetes默认调度策略采用多个调度扩展点协同工作的方式。基于Kubernetes调度框架(Scheduling Framework)的流程,每一次Pod调度的过程在最后的打分策略中,对于每一个Pod都会进行一次全量list操作(即全量地对上一环节中筛选出来的所有节点进行评分,最后选择分数最高的节点进行调度绑定的操作)来进行评分和绑定。在集群规模很大的情况下,每一次全量list操作都会耗费大量的时间,因此导致容器调度的效率很低。
技术实现思路
[0012]解决上述在国产智能板卡虚拟化纳管过程中出现的问题,本专利技术提供一种基于Kubernetes智能板卡集群的资源集成监控与调度装置,以实现国产智能板卡集群的资源集成监控与容器调度。
[0013]本专利技术实施例提供的一种基于Kubernetes智能板卡集群的资源集成监控与调度装置,包括:
[0014]自定义调度器、智能板卡集成组件、智能板卡监控组件以及节点优先级队列;
[0015]其中,所述自定义调度器用于根据预设的调度策略、节点优先级队列的运行结果以及国产智能板卡集成组件的运行结果,对容器进行调度;
[0016]所述国产智能板卡集成组件用于向Kubernetes集群集成目标智能板卡,并将集成后的目标智能板卡作为第三方资源接入到Kubernetes集群中;
[0017]所述国产智能板卡监控组件用于向分布式监控组件定时上报目标智能板卡的运行参数信息,并根据接口通过多线程的方式采集目标智能板卡的运行参数信息;
[0018]所述节点优先级队列用于动态调整其内部缓存的节点队列,将运行结果提供给所述自定义调度器,以供自定义调度器通过遍历的方式对调整后的节点优先级队列进行节点打分。
[0019]可选的,所述国产智能板卡集成组件向Kubernetes集群集成目标智能板卡的步骤包括:
[0020]通过扩展资源的方式向Kubernetes集成目标智能板卡对象;
[0021]扫描目标目录下的设备文件,向代理组件更新;
[0022]以控制循环方式通过代理组件向Kubernetes应用程序接口服务器汇报目标智能板卡信息,在智能板卡对象信息发生更改时变更对应的节点对象与智能板卡对象的绑定关系。
[0023]可选的,所述国产智能板卡监控组件还用于通过Prometheus Exporter机制向分布式监控组件服务器汇报用户自定义的监控数据。
[0024]可选的,所述节点优先级队列的动态调整过程包括:
[0025]节点优先级队列控制器通过控制循环方式观测节点对象的相关事件;
[0026]根据相关事件的事件类型对本队列中节点元素进行增删改查,包含了对节点所绑定的智能板卡对象的资源剩余量的更新;
[0027]根据资源剩余量越少优先级越高的原则,动态调整队列中元素的位置。
[0028]可选的,所述自定义调度器包括预选阶段的扩展点和优选阶段的扩展点;
[0029]其中,预选阶段的扩展点用于根据预选策略对可运行的节点进行初筛;
[0030]优选阶段的扩展点用于根据优选算法在预选结果列表中选出最优的节点进行绑定调度。
[0031]可选的,所述自定义调度器包括过滤模块,用于在调度过程中过滤无法运行当前调度的Pod的节点。
[0032]可选的,所述自定义调度器包括打分模块,用于对已通过过滤阶段的节点进行打分排名。
[0033]可选的,所述自定义调度器包括归一化模块,用于在调度程序计算节点的最终排名之前修改节点分数。
[0034]本专利技术的有益效果:
[0035]1、本专利技术通过智能板卡集成组件(Device Plugin)框架向Kubernetes集群中集成国产智能板卡资源,使得Kubernetes集群能够对异构硬件进行设备本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种基于Kubernetes智能板卡集群的资源集成监控与调度装置,其特征在于,包括:自定义调度器、智能板卡集成组件、智能板卡监控组件以及节点优先级队列;其中,所述自定义调度器用于根据预设的调度策略、节点优先级队列的运行结果以及国产智能板卡集成组件的运行结果,对容器进行调度;所述国产智能板卡集成组件用于向Kubernetes集群集成目标智能板卡,并将集成后的目标智能板卡作为第三方资源接入到Kubernetes集群中;所述国产智能板卡监控组件用于向分布式监控组件定时上报目标智能板卡的运行参数信息,并根据接口通过多线程的方式采集目标智能板卡的运行参数信息;所述节点优先级队列用于动态调整其内部缓存的节点队列,将运行结果提供给所述自定义调度器,以供自定义调度器通过遍历的方式对调整后的节点优先级队列进行节点打分。2.根据权利要求1所述的装置,其特征在于,所述国产智能板卡集成组件向Kubernetes集群集成目标智能板卡的步骤包括:通过扩展资源的方式向Kubernetes集成目标智能板卡对象;扫描目标目录下的设备文件,向代理组件更新;以控制循环方式通过代理组件向Kubernetes应用程序接口服务器汇报目标智能板卡信息,在智能板卡对象信息发生更改时变更对应的节点对象与智能板卡对象绑...
【专利技术属性】
技术研发人员:周学海,郝天成,朱宗卫,王超,李曦,
申请(专利权)人:中国科学技术大学,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。