一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种非侵入式HPC计算集群的统一容器集群托管系统和方法与流程

2022-10-26 18:33:10 来源:中国专利 TAG:

一种非侵入式hpc计算集群的统一容器集群托管系统和方法
技术领域
1.本发明涉及计算机集群管理和高性能计算的技术领域,尤其涉及一种非侵入式hpc计算集群的统一容器集群托管系统和方法。


背景技术:

2.随着数字经济时代到来,通用算力逐渐普及,算力聚合网络成趋势。针对数据中心算力网络建设过程中,在同一数据中心或者不同数据中心中,存在大量异构的hpc算力集群和容器集群,但各个集群之间的算力定义、资源使用、作业调度没有统一标准,无法在其上构建统一的算力聚合网络。因此,设计一种非侵入式hpc计算集群的统一容器集群托管系统成为了技术人员亟待解决的问题。使算力的使用方可以在统一的平台对这些hpc算力集群进行管理和调度,使算力的使用方可以方便地根据需要、使用习惯调度算力资源。


技术实现要素:

3.本发明的目的在于提供一种以非侵入式hpc计算集群方式构建统一容器集群托管系统和方法,解决了现有技术中异构hpc计算集群统一托管的问题。
4.本发明采用的技术方案如下:本发明提供一种非侵入式hpc计算集群的统一容器集群托管系统,包括:容器集群、自定义计算作业资源集、计算集群管理模块、计算集群执行模块以及一个或多个需要被纳管的hpc计算集群;用户在容器集群提交对自定义作业资源集的操作;计算集群管理模块监听自定义资源集的变更,生成相应的执行指令下发给计算集群执行模块;计算集群执行模块根据执行指令生成hpc计算集群实际运行的命令,并在hpc计算集群上运行。
5.所述的计算集群管理模块包括工作负载承载器以及与该工作负载承载器连接的控制器和配置器。
6.] 在一些实施例中, 所述的自定义计算作业资源集是一系列能够完整描述一个作业对象的资源集合,一个自定义计算资源的字段应包括但不限于计算任务所需的软硬件资源信息、任务执行的命令或脚本、任务结果存放目录、日志存放目录。
7.在一些实施例中,所述的控制器能够持续监听所述自定义计算作业资源集的创建、修改、删除事件。能根据事件类型及所述自定义作业资源对象的定义生成相应的对工作负载的操作事件及工作负载对象的定义,并将工作负载操作事件发送给容器集群调度器。其中工作负载,是hpc计算集群真正计算任务的上层抽象,用于描述一个hpc集群计算任务。
8.在一些实施例中,所述的工作负载承载器是所述hpc计算集群的最小计算资源调度单元的上层抽象,并且能伪装成容器集群的一个节点而被容器集群发现,并参与容器集群的调度,可根据工作负载操作事件和工作负载对象的定义,生成实际作业执行指令并发送给所述计算集群执行模块。
9.在一些实施例中,所述的配置器可与所述的计算集群执行模块网络交互,持续监控所述集群的各种软硬件资源信息和当前状态,并根据收集到的信息动态创建、销毁、配置工作负载承载器。
10.在一些实施例中,所述的计算集群执行模块还包括资源感知层和任务执行层。所述的资源感知层,能实时获取所述计算集群的软硬件资源状态和任务资源状态,并将状态上报给所述的配置器;所述的任务执行层,可根据所述工作负载承载器下发的作业执行指令生成并执行所述hpc计算集群的实际计算任务。
11.本发明还提供一种非侵入式hpc计算集群的统一容器集群托管方法,应用于所述的非侵入式hpc计算集群的统一容器集群托管系统,包括以下步骤:步骤1:所述自定义作业资源集接受用户创建、修改、删除操作,并携带操作类型、命令、所需资源等信息;步骤2:所述的计算集群管理模块监听自定义作业资源的变更,并根据操作类型下发相应的执行指令到计算集群执行模块;步骤3:所述的计算集群执行模块,根据执行指令运行实际的所述hpc计算集群的相应命令。
12.在一些实施例中,步骤2生成执行指令包含以下步骤:步骤2.1:所属的控制器根据自定义作业资源的变更,生成相应的工作负载的变更,并将工作负载变更信息发送给容器集群调度器;步骤2.2:容器集群调度器根据工作负载变更,调度或变更所述工作负载承载器上的工作负载;步骤2.3:所述工作负载承载器监听其上的工作负载变更事件,当工作负载信息发生变化后,生成相应的执行指令并下发给所述的计算集群执行模块。
13.本发明提供的非侵入式hpc计算集群的统一容器集群托管系统,通过云原生、算力感知、控制、集中调度等技术,实现将现有hpc集群非侵入式纳入容器集群管理,并提供统一的计算资源和计算任务的出口,使算力的使用方可以在统一的平台上、使用统一的算力视图对这些hpc算力集群进行管理和调度,使算力的使用方可以方便地根据使用需要,使用习惯调度算力资源。
附图说明
14.为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
15.图1为本发明一实施例提供的一种非侵入式hpc计算集群的统一容器集群托管系统的结构示意图;图2 为本发明一实施例提供的一种非侵入式hpc计算集群的统一容器集群托管系统中控制器工作流程示意图;图3 为本发明一实施例提供的一种非侵入式hpc计算集群的统一容器集群托管系统中工作负载承载器工作流程示意图;
图4 为本发明一实施例提供的一种非侵入式hpc计算集群的统一容器集群托管系统中配置器工作流程示意图;图5 为本发明一实施例提供的一种非侵入式hpc计算集群的统一容器集群托管系统中计算集群执行模块工作流程示意图;图6为本发明一实施例提供的一种非侵入式hpc计算集群的统一容器集群托管方法流程示意图。
具体实施方式
16.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
17.本发明的一种非侵入式hpc计算集群的统一容器集群托管系统,包括:容器集群、自定义计算作业资源集、计算集群管理模块、计算集群执行模块以及一个或多个需要被纳管的hpc计算集群,用户在容器集群提交对自定义作业资源集的操作;计算集群管理模块监听自定义资源集的变更,生成相应的执行指令下发给计算集群执行模块;计算集群执行模块根据执行指令生成hpc计算集群实际运行的命令,并在hpc计算集群上运行。
18.所述的计算集群管理模块包括工作负载承载器以及与该工作负载承载器连接的控制器和配置器。
19.所述自定义计算作业资源集作为与用户交互的入口,用于描述一个完整的作业对象。
20.所述控制器持续监听所述自定义计算作业资源集的创建、修改、删除事件,继而生成工作负载对象, 将工作负载对象提交到所述的容器集群,并接收容器集群的发现与调度。
21.所述工作负载承载器是所述hpc计算集群的最小计算资源调度单元的上层抽象,其用于伪装成容器集群的一个节点而被容器集群发现,并参与容器集群的调度,根据运行在其上的工作负载生成实际作业执行指令并发送给所述计算集群执行模块。
22.所述配置器与所述的计算集群执行模块网络交互,配置器持续监控所述hpc计算集群的各种软硬件资源信息和当前状态,并根据收集到的信息动态创建、销毁、配置工作负载承载器。
23.所述计算集群执行模块还包括资源感知层和任务执行层;所述的资源感知层,用于实时获取所述hpc计算集群(管理模块还是执行模块)的软硬件资源状态和任务资源状态,并将状态上报给所述的配置器;所述的任务执行层,用于根据所述工作负载承载器下发的作业执行指令生成并执行所述hpc计算集群的实际计算任务。
24.本发明的一种非侵入式hpc计算集群的统一容器集群托管方法,应用于所述的非侵入式hpc计算集群的统一容器集群托管系统,包括以下步骤:步骤(1):所述自定义作业资源集接受用户创建、修改、删除操作,并携带操作类
型、命令、所需资源信息;步骤(2):所述的计算集群管理模块监听自定义作业资源集的变更,并根据操作类型下发相应的执行指令到计算集群执行模块;步骤(3):实际指令运行:所述的计算集群执行模块,根据执行指令运行实际的所述hpc计算集群的相应命令。
25.所述的步骤2还包含以下子步骤:步骤(2.1):所述的控制器根据自定义作业资源集的变更,生成相应的工作负载的变更,并将工作负载变更信息发送给容器集群调度器;步骤(2.2):容器集群调度器根据工作负载变更,调度或变更所述工作负载承载器上的工作负载;步骤(2.3):所述工作负载承载器监听其上的工作负载变更事件,当工作负载信息发生变化后,生成相应的执行指令并下发给所述的计算集群执行模块。
26.实施例1首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
27.kubernetes:亦简称为k8s,是一种容器集群管理系统,是容器编排领域的事实标准和云原生领域的关键项目,它有一个快速发展的社区和正在大量被开发的平台生态系统。可帮助用户构建跨容器的应用服务,并长期持续管理这些容器的健康状况。因此k8s天然适合部署有状态的服务。而hpc类的计算业务往往需的是运行一个批处理作业,作业结束后容器退出,这和有状态的服务运行机制区别较大,导致hpc一直以来是k8s的短板。
28.kubernetes pod: 是可以在k8s中创建管理的,最小的可部署的计算单元。
29.kubernetes node: k8s通过将容器放入节点上运行的pod中来执行工作负载。节点可以是一个虚拟机或物理机器。
30.kubernetes api server:是k8s的api管理中心,为服务器验证并配置api对象的数据,这些对象pod等内置资源以及其他自定义资源。所有k8s组件均通过api server进行交互。
31.slurm:是一种hpc集群管理和作业调度框架,提供了资源管理和工作调度能力,在hpc领域应用广泛,为世界上超过60%的超级计算机和计算机集群使用。
32.slurm partition:是slurm集群资源分配的最小单元,是几个节点的逻辑集群。
33.参见图1,图1示出了根据本说明书一个实施例提供的一种非侵入式hpc计算集群的统一容器集群托管系统的系统结构示意图。包括:容器集群、自定义计算作业资源集、计算集群管理模块、计算集群执行模块以及一个或多个需要被纳管的hpc计算集群,用户在容器集群提交对自定义作业资源集的操作;计算集群管理模块监听自定义资源集的变更,生成相应的执行指令下发给计算集群执行模块;计算集群执行模块根据执行指令生成hpc计算集群实际运行的命令,并在hpc计算集群上运行。
34.需要说明的是,在本实施例中,容器集群管理系统使用kubernetes,需要被托管的hpc计算集群管理系统使用slurm。
35.所述的自定义作业资源集,是一系列能够完整描述一个作业对象的集合,在实际应用中可以被理解为,是一系列可扩展的kubernetes自定义资源,每一种自定义作业资源都能够携带相应创建任务的所有需要的配置信息。包括但不应限于任务所需的资源信息、
任务执行的命令或脚本、任务结果存放目录、日志及错误日志存放目录和镜像信息。自定义作业资源可被kubernetes原生支持,并执行创建、修改、删除、查询等操作,是与用户交互的入口。进一步的所有支持kubernetes原生资源管理的都可以作为用户,比如常用的kubectl、client-go、kubefed等。
36.所述的计算集群管理模块,包括控制器、配置器、工作负载承载器。
37.在实际应用中,应当理解的是,所述的计算集群管理模块可以理解为kubernetes和异构计算集群之间的重要适配层。借由这一适配层可达到使用kubernets管控异构计算集群的目的,并且应当理解的是,此适配层是解耦的、可扩展的、仅需少量接口开发即可适配新的、暂不支持的异构计算集群。
38.所述的控制器,以容器的形式运行在kubernetes中,具体的执行过程如图2所示,可持续监听所述自定义作业资源创建、修改、删除事件。触发事件时可获取到所有必要的作业资源信息,可根据事件类型和作业资源信息,生成对工作负载的操作,并将工作负载操作发送给kubernetes api server。
39.需要说明的是,工作负载是一个kubernetes pod,或能够调度kubernetes pod的内置资源对象或自定义资源对象。
40.所述的工作负载承载器,是所述slurm计算集群的最小计算资源调度单元,即slurm partition的上层抽象,其具体的工作流程如图3所示,能监听工作负载的创建、更改、删除事件,并根据相应事件生成作业执行指令下发给所述计算集群执行模块的任务执行层。还会改变工作负载的状态以及任务事件,以供kubernetes原生方式的计算任务状态查看。
41.需要说明的是,工作负载承载器实现了virtual kubelet的接口,所以能被kubernetes api server发现并伪装成一个kubernetes node,并可以被kubernetes调度工作负载运行其上。在工作负载器上记录了计算资源最小调度单元的资源信息,并实时与计算集群的调度单元的数量、状态、配置同步。所述工作负载器能够接受kubernetes原生的调度逻辑调度,进一步的也可支持所有kubernetes原生支持的扩展调度逻辑,如webhook等。
42.所述的配置器,其具体的工作流程如图4所示,能够与所述的计算集群执行模块的资源感知层交互,并持续监控所述slurm集群的各种软硬件资源信息和当前状态,并根据slurm partition的数量与当前所述工作负载承载器的数量相比对,调谐地创建、销毁所述工作负载承载器,使其数量与slurm partition数量一致。并将当前slurm partition的状态记录在所述工作负载承载器中。
43.所述的计算集群执行模块,还包括资源感知层和任务执行层,其具体的工作流程如图5所示。
44.其中,资源感知层可被理解为,能够获取整个计算集群软硬件资源和状态的并根据获取到的信息生成通用的资源信息描述对象,并提供服务使所述配置器能够通过网络获取。
45.其中,任务执行层可被理解为,能够根据负载承载器通过网络下发的通用的作业执行指令生成特定异构计算集群的实际执行命令或执行脚本,并能际执行。
46.在实际应用中,计算集群执行模块被部署在异构计算集群的管理节点上,并具备整个计算集群的操作视图。应当理解的是,计算集群执行模块暴露统一的接口,这使适配各
种异构计算集群时只需要实现相应接口即可,这使系统能够支持多种异构计算集群。
47.参见图6,图6示出了根据本说明书一个实施例提供的一种非侵入式hpc计算集群的统一容器集群托管方法的流程示意图。应用于所述非侵入式hpc计算集群的统一容器集群托管系统。包括以下步骤:步骤1:所述自定义作业资源集接受用户创建、修改、删除操作,并携带操作类型、命令、所需资源等信息;步骤2:所述的计算集群管理模块监听自定义作业资源的变更,并根据操作类型下发相应的执行指令到计算集群执行模块;步骤3:实际指令运行:所述的计算集群执行模块,根据执行指令运行实际的所述hpc计算集群的相应命令。
48.所述的步骤2,还包含以下子步骤:步骤2.1:所述的控制器根据自定义作业资源的变更,生成相应的工作负载的变更,并将工作负载变更信息发送给容器集群调度器;步骤2.2:容器集群调度器根据工作负载变更,调度或变更所述工作负载承载器上的工作负载;步骤2.3:所述工作负载承载器监听其上的工作负载变更事件,当工作负载信息发生变化后,生成相应的执行指令并下发给所述的计算集群执行模块。
49.在实际应用中,具体地,包含计算任务创建方法、计算任务修改方法、计算任务删除方法、获取计算任务状态及详情的方法、获取计算任务日志和获取计算任务运行结果的方法。
50.其中,计算任务创建方法包含以下步骤:步骤1:用户配置需要创建的自定义任务资源,并通过kubenetes api server下发;步骤2:配置器监听资源对象的创建事件,根据自定义任务资源的配置生成相应的工作负载对象,并将工作负载对象根据资源、类型等的要求调度到合适的工作负载承载器;步骤3:工作负载承载器获取工作负载创建事件,并根据工作负载配置生成相应的计算任务创建指令,并将指令下发给计算任务执行模块;步骤4:计算任务执行模块接收到创建指令,可根据指令生成当前所在计算集群相应的实际创建执行命令或脚本并执行。
51.其中,计算任务修改方法包含以下步骤:步骤1:用户配置需要修改的自定义任务资源,并通过kubenetes api server下发;步骤2:配置器监听资源对象的修改事件,根据自定义任务资源的配置检索需要修改的工作负载对象,并将工作负载对象修改;步骤3:工作负载承载器获取工作负载修改事件,根据新的工作负载配置生成相应的计算任务修改指令,并将指令下发给计算任务执行模块;步骤4:计算任务执行模块接收到修改指令,可根据指令生成当前所在计算集群相应的实际修改执行命令或脚本并执行。
52.其中,计算任务删除方法包含以下步骤:
步骤1:用户配置需要删除的自定义任务资源,并通过kubenetes api server下发;步骤2:配置器监听资源对象的删除事件,根据自定义任务资源的配置检索需要删除的工作负载对象,并将工作负载对象删除;步骤3:工作负载承载器获取工作负载删除事件,根据要删除的工作负载配置生成相应的计算任务取消指令,并将指令下发给计算任务执行模块;步骤4:计算任务执行模块接收到取消指令,可根据指令生成当前所在计算集群相应的实际取消执行命令或脚本并执行。
53.其中,获取计算任务状态及详情的方法包含以下步骤:步骤1:工作负载承载器定时发送作业状态获取指令;步骤2:计算任务执行模块接收到作业状态获取指令后,运行所在集群相应的实际获取作业状态的执行命令或脚本并执行,将结果转换为通用的作业状态对象并返回;步骤3:工作负载承载器接收到作业状态对象,同步改变工作负载和自定义资源对象的状态;步骤4:用户通过kubernetes原生的获取资源状态方式获取计算任务状态。
54.其中,获取计算任务日志方法包含以下步骤:步骤1:用户使用kubernetes原生的日志查看接口提交工作负载的日志获取指令;步骤2:工作负载承载器实现了日志查看接口,根据工作负载信息检索自定义资源对象信息,自定义资源对象包含了日志及错误信息存放目录信息,并根据目录信息给计算集群执行模块下发日志获取指令;步骤3:计算集群执行模块根据目录信息读取相应日志文件,并使用http chunk的方式将日志返回,并支持tail方式持续获取日志。
55.其中,获取计算任务运行结果方法包含以下步骤:步骤1:工作负载承载器持续监听工作负载完成事件,当工作负载完成时触发结果收集任务;步骤2:根据工作负载信息检索自定义工作资源对象信息,其中包含执行结果存放目录,并根据存放目录给计算集群执行模块下发结果获取指令;步骤3:计算集群执行模块根据目录信息读取相应文件,并使用http chunk的方式将结果传回指定位置。
56.以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献