CN117519989A - 一种分布式系统托管方法、装置、电子设备及存储介质 - Google Patents

一种分布式系统托管方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN117519989A
CN117519989A CN202410004086.9A CN202410004086A CN117519989A CN 117519989 A CN117519989 A CN 117519989A CN 202410004086 A CN202410004086 A CN 202410004086A CN 117519989 A CN117519989 A CN 117519989A
Authority
CN
China
Prior art keywords
distributed system
platform
container
cloud platform
operator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202410004086.9A
Other languages
English (en)
Other versions
CN117519989B (zh
Inventor
潘星
叶永青
彭信民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Suiyuan Intelligent Technology Co ltd
Original Assignee
Shanghai Suiyuan Intelligent Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Suiyuan Intelligent Technology Co ltd filed Critical Shanghai Suiyuan Intelligent Technology Co ltd
Priority to CN202410004086.9A priority Critical patent/CN117519989B/zh
Publication of CN117519989A publication Critical patent/CN117519989A/zh
Application granted granted Critical
Publication of CN117519989B publication Critical patent/CN117519989B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种分布式系统托管方法、装置、电子设备及存储介质,包括:分布式系统对应的operator监测到用户向分布式系统提交作业后,向K8s平台发送作业请求,K8s平台创建pods;operator请求分布式系统扩容,分布式系统添加pods对应的工作节点并运行工作节点;operator监测到工作节点上的用户作业运行结束后请求分布式系统缩容,分布式系统将工作节点移除;operator监测到分布式系统缩容成功后,向K8s平台发送结束请求,K8s平台将pods删除,无需用户对K8s容器云平台进行额外学习,便可以轻松在K8s容器云平台上使用分布式系统,满足不同分布式系统的业务需求。

Description

一种分布式系统托管方法、装置、电子设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种分布式系统托管方法、装置、电子设备及存储介质。
背景技术
Kubernetes(K8s)是一个开源的,用于管理云平台中多个主机上的容器化的应用,目前已成为容器云的实际技术标准与实现,越来越多的应用是在容器云平台上运行的。
人工智能(Artificial Intelligence,AI)计算发展过程中需要大量使用分布式系统(例如Slurm、LSF、PBS等),有很多计算程序需要与分布式系统进行适配。但是,分布式系统上运行的模型代码是无法直接在K8s容器云平台上运行的,因此,在使用云平台资源的情况下,还需将模型代码与容器云平台进行适配。
然而,现有的开发人员通常仅了解某种特定分布式系统的使用,对容器云平台的使用不是很熟悉,需要花费时间与精力去学习容器云平台的使用方法,导致容器云平台的使用过程难度较高,使用效率较低。
发明内容
本发明提供了一种分布式系统托管方法、装置、电子设备及存储介质,无需用户对K8s容器云平台进行额外学习,便可以轻松在K8s容器云平台上使用分布式系统,满足不同分布式系统的业务需求。
根据本发明的一方面,提供了一种分布式系统托管方法,所述方法包括:
通过分布式系统对应的operator,监测到用户向分布式系统提交作业后,向K8s平台发送作业请求,以使所述K8s平台创建与作业请求对应的pods;
通过所述operator,监测到所述pods创建成功后,请求所述分布式系统进行扩容,以使所述分布式系统添加对应pods为工作节点,并运行所述工作节点上的用户作业;
通过所述operator,监测到所述工作节点上的用户作业运行结束后,请求所述分布式系统进行缩容,以使所述分布式系统将所述pods对应的工作节点进行移除;
通过所述operator,监测到所述分布式系统缩容成功后,向K8s平台发送结束请求,以使所述K8s平台根据结束请求,将所述pods进行删除。
根据本发明的另一方面,提供了一种分布式系统托管装置,所述装置包括:
作业监测模块,用于通过分布式系统对应的operator,监测到用户向分布式系统提交作业后,向K8s平台发送作业请求,以使所述K8s平台创建与作业请求对应的pods;
扩容模块,用于通过所述operator,监测到所述pods创建成功后,请求所述分布式系统进行扩容,以使所述分布式系统添加对应pods为工作节点,并运行所述工作节点上的用户作业;
缩容模块,用于通过所述operator,监测到所述工作节点上的用户作业运行结束后,请求所述分布式系统进行缩容,以使所述分布式系统将所述pods对应的工作节点进行移除;
删除模块,用于通过所述operator,监测到所述分布式系统缩容成功后,向K8s平台发送结束请求,以使所述K8s平台根据结束请求,将所述pods进行删除。
根据本发明的另一方面,提供了一种电子设备,所述设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明任一实施例所述的分布式系统托管方法。
根据本发明的另一方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现本发明任一实施例所述的分布式系统托管方法。
根据本发明的另一方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现本发明任一实施例所述的分布式系统托管方法。
本发明实施例提供的技术方案,通过分布式系统对应的operator,监测到用户向分布式系统提交作业后,向K8s平台发送作业请求,以使K8s平台创建与作业请求对应的pods,通过operator监测到pods创建成功后,请求分布式系统进行扩容,以使分布式系统添加对应pods为工作节点,并运行工作节点上的用户作业,通过operator监测到工作节点上的用户作业运行结束后,请求分布式系统进行缩容,以使分布式系统将pods对应的工作节点进行移除,通过operator监测到分布式系统缩容成功后,向K8s平台发送结束请求,以使K8s平台根据结束请求将pods进行删除的技术手段,无需用户对K8s容器云平台进行额外学习,便可以轻松在K8s容器云平台上使用分布式系统,满足不同分布式系统的业务需求。
应当理解,本部分所描述的内容并非旨在标识本发明的实施例的关键或重要特征,也不用于限制本发明的范围。本发明的其它特征将通过以下的说明书而变得容易理解。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是根据本发明实施例提供的一种分布式系统在K8s平台中创建过程对应的场景示意图;
图1b是根据本发明实施例提供的一种分布式系统托管方法的流程图;
图2是根据本发明实施例提供的另一种分布式系统托管方法的流程图;
图3是根据本发明实施例提供的另一种分布式系统托管方法的流程图;
图4是根据本发明实施例提供的一种分布式系统托管装置的结构示意图;
图5是实现本发明实施例的分布式系统托管方法的电子设备结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本实施例中,图1a可以为分布式系统在K8s平台中创建过程对应的场景示意图。其中,所述分布式系统可以为Slurm、LSF、PBS等中的任意一种,本实施例对此并不进行限制。
如图1a所示,K8s平台可以作为容器资源供应角色的云服软件,同时可以作为基础硬件资源的资源管理平台。具体的,所述K8s平台中的软件可以包括kubernetes api-server、etcd(数据库),controller(pod管理器)、sheduler(作业调度器)以及其他必要的组件例如proxy、dns等。上述组件可以单独部署,也可以统一部署至K8s平台上。
operator可以为K8s平台提供的一种资源定制化的编程范式,与特定的分布式系统一一对应。所述operator用于对K8s平台上的分布式系统进行监测、运维。在本实施例中,具体的,所述operator还用于监测分布式系统上的作业提交情况,并向K8s平台请求创建工作节点;监测K8s平台上pod的创建信息,并将创建好的pod作为工作节点发起分布式系统扩容请求;监测到分布式系统作业完成后,发起分布式系统缩容命令,以把完成工作的节点进行移除;向K8s平台发送任务,以使K8s将完成工作的pod进行删除。
分布式系统控制组件用于对分布式系统进行维护,以及对分布式系统上的作业进行调度与运维。具体的,所述分布式系统控制组件可以对外提供分布式系统服务,例如提供作业提交服务以及作业查看服务等。所述分布式系统控制组件可以单独部署于特定服务器上,也可以部署于K8s平台中。
图1b为本发明实施例一提供的一种分布式系统托管方法的流程图,本实施例可适用于基于K8s容器平台对分布式系统进行托管情况,该方法可以由分布式系统托管装置来执行,该分布式系统托管装置可以采用硬件和/或软件的形式实现,该分布式系统托管装置可配置于电子设备中。如图1b所示,该方法包括:
步骤110、通过分布式系统对应的operator,监测到用户向分布式系统提交作业后,向K8s平台发送作业请求,以使所述K8s平台创建与作业请求对应的pods。
在此步骤中,具体的,用户可以通过登录分布式系统(例如Slurm、LSF、PBS等)提交作业,并在作业配置信息中增加作业使用的镜像名,作业提交后处于排队等待状态。分布式系统对应的operator,监测到分布式系统对应的作业情况后,可以向K8s平台发送作业请求。K8s平台在接收到作业请求后,根据所述作业请求创建对应的pods,这些pods会被调度系统调度至相应的工作节点上。
步骤120、通过所述operator,监测到所述pods创建成功后,请求所述分布式系统进行扩容,以使所述分布式系统添加对应pods为工作节点,并运行所述工作节点上的用户作业。
在此步骤中,具体的,分布式系统对应的operator监测到K8s平台创建pods后,向分布式系统发起扩容请求。分布式系统接收到所述扩容请求后,将所述pods作为工作节点添加至系统中,并利用调度资源运行所述工作节点上的用户作业,由此实现将用户提交的作业调度至分布式系统中的工作节点。
步骤130、通过所述operator,监测到所述工作节点上的用户作业运行结束后,请求所述分布式系统进行缩容,以使所述分布式系统将所述pods对应的工作节点进行移除。
在此步骤中,具体的,分布式系统对应的operator监测到上述工作节点上的用户作业运行结束后,向分布式系统发起缩容请求。分布式系统接收到所述缩容请求后,将作业完成的工作节点从分布式系统中进行移除。
步骤140、通过所述operator,监测到所述分布式系统缩容成功后,向K8s平台发送结束请求,以使所述K8s平台根据结束请求,将所述pods进行删除。
在此步骤中,具体的,分布式系统对应的operator,监测到分布式系统缩容成功后,可以调用K8s平台提供的请求接口,向K8s平台发送结束请求。K8s平台接收到所述结束请求后,可以将所述pods进行删除,至此整个作业流程结束。
本发明实施例提供的技术方案,通过分布式系统对应的operator,监测到用户向分布式系统提交作业后,向K8s平台发送作业请求,以使K8s平台创建与作业请求对应的pods,通过operator监测到pods创建成功后,请求分布式系统进行扩容,以使所述分布式系统添加对应pods为工作节点,并运行所述工作节点上的用户作业,通过operator监测到工作节点上的用户作业运行结束后,请求分布式系统进行缩容,以使分布式系统将pods对应的工作节点进行移除,通过operator监测到分布式系统缩容成功后,向K8s平台发送结束请求,以使K8s平台根据结束请求将pods进行删除的技术手段,可以使用户在K8s 平台上自主完成分布式系统对应的作业,无需额外的学习成本,便可以轻松在K8s容器云平台上使用分布式系统,降低K8s容器云平台的使用难度;其次,由于K8s平台具有较高的扩展性和灵活性,本实施例提供的分布式系统托管方法,可以广泛应用于各种需要使用分布式系统的业务场景,例如大数据处理、云计算以及AI等。
图2为本发明实施例二提供的一种分布式系统托管方法的流程图,本实施例是对上述实施例的进一步细化。如图2所示,该方法包括:
步骤210、在统一的硬件平台上部署K8s容器云平台,以及所述K8s容器云平台对应的容器镜像仓库。
在本实施例中,具体的,所述硬件平台可以由一组服务器构成,所述服务器中可以包含或不包含GCU、GPU等硬件资源。各所述服务器之间通过网络互连。
这样设置的好处在于,可以使得所有物理服务器被K8s容器云平台管理,而其他类型的分布式系统(例如 Slurm, LSF, UGE、PBS等)则被部署在 K8s 容器云平台之上,由此可以根据业务需求灵活扩容和缩容 other集群,提高了K8s容器云平台的资源利用率;其次,通过使用K8s容器云平台作为基础集群,可以统一管理所有物理服务器和other集群,简化集群运维工作,降低运维成本。
在本实施例中,所述容器镜像仓库可以单独部署于特定服务器上,也可以部署于K8s容器云平台中。所述容器镜像仓库用于保存分布式系统作业相关的容器镜像,具体用于存储容器云平台中各种所需的容器镜像,以及在作业容器创建时负责对外提供镜像下载服务。
步骤220、获取所述分布式系统在K8s容器云平台上部署过程对应的镜像,并将所述镜像推送至所述容器镜像仓库。
步骤230、生成所述分布式系统在K8s容器云平台上部署过程关联的operator控制集以及对应的镜像,并将所述镜像推送至所述容器镜像仓库。
步骤240、生成所述operator在K8s容器云平台上部署过程关联的第一配置文件,以及所述operator对应的第二配置文件。
在本实施例中,具体的,所述第一配置文件可以为operator在K8s容器云平台上部署过程关联的crd配置文件。第二配置文件可以为与operator本身对应的配置文件。
步骤250、根据所述容器镜像仓库、第一配置文件以及第二配置文件,将所述分布式系统部署在K8s容器云平台上。
在本实施例的一个实施方式中,根据所述容器镜像仓库、第一配置文件以及第二配置文件,将所述分布式系统部署在K8s容器云平台上,包括:根据所述容器镜像仓库、第一配置文件以及第二配置文件,将分布式系统对应的operator部署在K8s容器云平台上;通过所述operator,在K8s容器云平台上部署所述分布式系统。
其中,所述分布式系统对应的管理组件以worker节点上的pod形式存在于K8s容器云平台中。
在一个具体的实施例中,在通过所述operator,在K8s容器云平台上部署所述分布式系统之后,还包括:通过所述operator,将所述分布式系统对应的service服务部署在K8s容器云平台上,以使用户根据所述service服务触发作业请求。
在本实施例中,用户在触发作业请求之前,需要感知自己在容器云平台上使用的分布式系统,并提前准备好所需的作业镜像。所述作业镜像是基于分布式系统中 worker节点的镜像。
步骤260、通过分布式系统对应的operator,监测到用户向分布式系统提交作业后,向K8s平台发送作业请求,以使所述K8s平台创建与作业请求对应的pods。
步骤270、通过所述operator,监测到所述pods创建成功后,请求所述分布式系统进行扩容,以使所述分布式系统添加对应pods为工作节点,并运行所述工作节点上的用户作业。
步骤280、通过所述operator,监测到所述工作节点上的用户作业运行结束后,请求所述分布式系统进行缩容,以使所述分布式系统将所述pods对应的工作节点进行移除。
步骤290、通过所述operator,监测到所述分布式系统缩容成功后,向K8s平台发送结束请求,以使所述K8s平台根据结束请求,将所述pods进行删除。
本发明实施例提供的技术方案,通过在统一的硬件平台上部署K8s容器云平台以及容器镜像仓库,获取分布式系统在K8s容器云平台上部署过程对应的镜像,并将镜像推送至容器镜像仓库,生成分布式系统在K8s容器云平台上部署过程关联的operator控制集以及对应的镜像,并将镜像推送至容器镜像仓库,生成operator在K8s容器云平台上部署过程关联的第一配置文件以及operator对应的第二配置文件,将分布式系统部署在K8s容器云平台上,通过分布式系统对应的operator监测到用户向分布式系统提交作业后,向K8s平台发送作业请求,以使K8s平台创建pods,通过operator监测到pods创建成功后,请求分布式系统进行扩容,以使所述分布式系统添加对应pods为工作节点,并运行所述工作节点上的用户作业,通过operator监测到工作节点上的用户作业运行结束后,请求分布式系统进行缩容,以使分布式系统将pods对应的工作节点进行移除,通过operator监测到分布式系统缩容成功后向K8s平台发送结束请求,以使K8s平台根据结束请求将pods进行删除的技术手段,无需用户对K8s容器云平台进行额外学习,便可以轻松在K8s容器云平台上使用分布式系统,满足不同分布式系统的业务需求。
图3为本发明实施例三提供的另一种分布式系统托管方法的流程图,本实施例是对上述实施例的进一步细化。如图3所示,该方法包括:
步骤310、通过分布式系统对应的operator,监测到用户向分布式系统提交作业后,向K8s平台发送作业请求,以使所述K8s平台创建与作业请求对应的pods。
步骤320、通过operator监测到pods创建成功后,调用分布式系统提供的请求接口,将pods作为请求参数发送至分布式系统,以使分布式系统根据请求参数进行扩容,并添加对应pods为工作节点,然后运行所述工作节点上的用户作业。
在本实施例中,具体的,所述请求接口可以为API接口或者命令行,本实施例对此并不进行限制。
步骤330、通过所述operator,监测到所述工作节点上的用户作业运行结束后,请求所述分布式系统进行缩容,以使所述分布式系统将所述pods对应的工作节点进行移除。
步骤340、通过所述operator,监测到所述分布式系统缩容成功后,向K8s平台发送结束请求,以使所述K8s平台根据结束请求,将所述pods进行删除。
步骤350、检测到K8s平台对所述pods删除成功之后,控制所述分布式系统以及K8s平台回归到提交作业之前的状态。
在本实施例中,K8s平台上可以同时部署多个类似的分布式系统(例如Slurm、LSF、PBS等),这些分布式系统共同部署在相同的一组硬件资源上。此外,对K8s平台使用方法不熟悉的用户,可以在自己熟悉的分布式系统上使用K8s平台的资源。
本发明实施例提供的技术方案,通过分布式系统对应的operator监测到用户向分布式系统提交作业后,向K8s平台发送作业请求,以使K8s平台创建与作业请求对应的pods,通过operator监测到pods创建成功后,调用分布式系统提供的请求接口,将pods作为请求参数发送至分布式系统,以使分布式系统根据请求参数进行扩容,并添加对应pods为工作节点,然后运行所述工作节点上的用户作业,通过operator监测到工作节点上的用户作业运行结束后,请求分布式系统进行缩容,以使分布式系统将pods对应的工作节点进行移除,通过operator监测到分布式系统缩容成功后,向K8s平台发送结束请求,以使K8s平台根据结束请求将pods进行删除,检测到K8s平台对pods删除成功之后,控制分布式系统以及K8s平台回归到提交作业之前的状态的技术手段,无需用户对K8s容器云平台进行额外学习,便可以轻松在K8s容器云平台上使用分布式系统,满足不同分布式系统的业务需求。
为了更好地对本发明实施例提供的技术方案进行介绍,以分布式系统为Slurm系统为例,本发明实施例可以参考下述的实施方式:
步骤1:Slurm-K8s-operator监测到Slurm上用户新提交的作业,获取作业信息,包括作业需要的资源(cpu、memory、计算卡(例如gpu、gcu、npu等)、网络设备信息(例如数量、类型、网卡名称等)、作业名称、作业用户名称、作业所需要用的镜像名或者作业所需环境(例如python3.6/3.8、pytorch、tensorflow)等);
步骤2:Slurm-K8s-operator需要根据获取到的用户作业信息,构建一个在K8s平台上创建pod/rs/sts的yaml文件,并发送请求给K8s创建;
步骤3:Slurm-K8s-operator需要监测K8s创建的对象,等创建的对象正常运行之时,获取运行对象的主ip列表;
步骤4:Slurm-K8s-operator 把刚获取到的ip列表发送给Slurm分布式系统,修改Slurm 分布式系统的配置文件,然后通知Slurm集群进行扩容;
步骤5:Slurm分布式系统自我更新(扩容)后会自动把用户作业调度到对应的worker节点上运行;
步骤6:Slurm-K8s-operator监测到Slurm分布式系统上用户作业运行完成,则可以先将刚刚完成的作业节点从Slurm集群剔除(修改Slurm集群的配置文件),然后命令Slurm集群缩容;
步骤7:Slurm集群自我更新(缩容);
步骤8:Slurm-K8s-operator 调用K8s接口删除对应作业提交时创建的对象(pod/rs/sts)。
本发明实施例提供的方法可以使K8s集群中同时运行多个类似的operator(例如slurm-k8s-operator、LSF-k8s-operator、PBS-k8s- operator)等。
图4为本发明实施例四提供的一种分布式系统托管装置的结构示意图,该装置包括:作业监测模块410、扩容模块420、缩容模块430和删除模块440。
其中,作业监测模块410,用于通过分布式系统对应的operator,监测到用户向分布式系统提交作业后,向K8s平台发送作业请求,以使所述K8s平台创建与作业请求对应的pods;
扩容模块420,用于通过所述operator,监测到所述pods创建成功后,请求所述分布式系统进行扩容,以使所述分布式系统添加对应pods为工作节点,并运行所述工作节点上的用户作业;
缩容模块430,用于通过所述operator,监测到所述工作节点上的用户作业运行结束后,请求所述分布式系统进行缩容,以使所述分布式系统将所述pods对应的工作节点进行移除;
删除模块440,用于通过所述operator,监测到所述分布式系统缩容成功后,向K8s平台发送结束请求,以使所述K8s平台根据结束请求,将所述pods进行删除。
本发明实施例提供的技术方案,通过分布式系统对应的operator,监测到用户向分布式系统提交作业后,向K8s平台发送作业请求,以使K8s平台创建与作业请求对应的pods,通过operator监测到pods创建成功后,请求分布式系统进行扩容,以使所述分布式系统添加对应pods为工作节点,并运行所述工作节点上的用户作业,通过operator监测到工作节点上的用户作业运行结束后,请求分布式系统进行缩容,以使分布式系统将pods对应的工作节点进行移除,通过operator监测到分布式系统缩容成功后,向K8s平台发送结束请求,以使K8s平台根据结束请求将pods进行删除的技术手段,无需用户对K8s容器云平台进行额外学习,便可以轻松在K8s容器云平台上使用分布式系统,满足不同分布式系统的业务需求。
在上述实施例的基础上,所述装置还包括:
平台部署模块,用于在统一的硬件平台上部署K8s容器云平台,以及所述K8s容器云平台对应的容器镜像仓库;
镜像推送模块,用于获取所述分布式系统在K8s容器云平台上部署过程对应的镜像,并将所述镜像推送至所述容器镜像仓库;生成所述分布式系统在K8s容器云平台上部署过程关联的operator控制集以及对应的镜像,并将所述镜像推送至所述容器镜像仓库;
文件生成模块,用于生成所述operator在K8s容器云平台上部署过程关联的第一配置文件,以及所述operator对应的第二配置文件;
系统部署模块,用于根据所述容器镜像仓库、第一配置文件以及第二配置文件,将所述分布式系统部署在K8s容器云平台上。
其中,系统部署模块包括:
operator部署单元,用于根据所述容器镜像仓库、第一配置文件以及第二配置文件,将分布式系统对应的operator部署在K8s容器云平台上;通过所述operator,在K8s容器云平台上部署所述分布式系统;所述分布式系统对应的管理组件以worker节点上的pod形式存在于K8s容器云平台中;
service服务部署单元,用于通过所述operator,将所述分布式系统对应的service服务部署在K8s容器云平台上,以使用户根据所述service服务触发作业请求。
扩容模块420包括:
请求参数发送单元,用于通过所述operator,监测到所述pods创建成功后,调用所述分布式系统提供的请求接口,将所述pods作为请求参数发送至分布式系统,以使所述分布式系统根据所述请求参数进行扩容。
删除模块440包括:
状态控制单元,用于检测到K8s平台对所述pods删除成功之后,控制所述分布式系统以及K8s平台回归到提交作业之前的状态。
上述装置可执行本发明前述所有实施例所提供的方法,具备执行上述方法相应的功能模块和有益效果。未在本发明实施例中详尽描述的技术细节,可参见本发明前述所有实施例所提供的方法。
图5示出了可以用来实施本发明的实施例的电子设备10的结构示意图。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图5所示,电子设备10包括至少一个处理器11,以及与至少一个处理器11通信连接的存储器,如只读存储器(ROM)12、随机访问存储器(RAM)13等,其中,存储器存储有可被至少一个处理器执行的计算机程序,处理器11可以根据存储在只读存储器(ROM)12中的计算机程序或者从存储单元18加载到随机访问存储器(RAM)13中的计算机程序,来执行各种适当的动作和处理。在RAM 13中,还可存储电子设备10操作所需的各种程序和数据。处理器11、ROM 12以及RAM 13通过总线14彼此相连。输入/输出(I/O)接口15也连接至总线14。
电子设备10中的多个部件连接至I/O接口15,包括:输入单元16,例如键盘、鼠标等;输出单元17,例如各种类型的显示器、扬声器等;存储单元18,例如磁盘、光盘等;以及通信单元19,例如网卡、调制解调器、无线通信收发机等。通信单元19允许电子设备10通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
处理器11可以是各种具有处理和计算能力的通用和/或专用处理组件。处理器11的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的处理器、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。处理器11执行上文所描述的各个方法和处理,例如分布式系统托管方法。
在一些实施例中,分布式系统托管方法可被实现为计算机程序,其被有形地包含于计算机可读存储介质,例如存储单元18。在一些实施例中,计算机程序的部分或者全部可以经由ROM 12和/或通信单元19而被载入和/或安装到电子设备10上。当计算机程序加载到RAM 13并由处理器11执行时,可以执行上文描述的分布式系统托管方法的一个或多个步骤。备选地,在其他实施例中,处理器11可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行分布式系统托管方法。
本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、复杂可编程逻辑设备(CPLD)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
用于实施本发明的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,使得计算机程序当由处理器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明的上下文中,计算机可读存储介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的计算机程序。计算机可读存储介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。备选地,计算机可读存储介质可以是机器可读信号介质。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
为了提供与用户的交互,可以在电子设备上实施此处描述的系统和技术,该电子设备具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给电子设备。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)、区块链网络和互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决了传统物理主机与VPS服务中,存在的管理难度大,业务扩展性弱的缺陷。
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发明中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本发明的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (9)

1.一种分布式系统托管方法,其特征在于,所述方法包括:
通过分布式系统对应的operator,监测到用户向分布式系统提交作业后,向K8s平台发送作业请求,以使所述K8s平台创建与作业请求对应的pods;
通过所述operator,监测到所述pods创建成功后,请求所述分布式系统进行扩容,以使所述分布式系统添加对应pods为工作节点,并运行所述工作节点上的用户作业;
通过所述operator,监测到所述工作节点上的用户作业运行结束后,请求所述分布式系统进行缩容,以使所述分布式系统将所述pods对应的工作节点进行移除;
通过所述operator,监测到所述分布式系统缩容成功后,向K8s平台发送结束请求,以使所述K8s平台根据结束请求,将所述pods进行删除;
在通过分布式系统对应的operator,监测到用户向分布式系统提交作业之前,还包括:
在统一的硬件平台上部署K8s容器云平台,以及所述K8s容器云平台对应的容器镜像仓库;
获取所述分布式系统在K8s容器云平台上部署过程对应的镜像,并将所述镜像推送至所述容器镜像仓库;
生成所述分布式系统在K8s容器云平台上部署过程关联的operator控制集以及对应的镜像,并将所述镜像推送至所述容器镜像仓库;
生成所述operator在K8s容器云平台上部署过程关联的第一配置文件,以及所述operator对应的第二配置文件;
根据所述容器镜像仓库、第一配置文件以及第二配置文件,将所述分布式系统部署在K8s容器云平台上。
2.根据权利要求1所述的方法,其特征在于,根据所述容器镜像仓库、第一配置文件以及第二配置文件,将所述分布式系统部署在K8s容器云平台上,包括:
根据所述容器镜像仓库、第一配置文件以及第二配置文件,将分布式系统对应的operator部署在K8s容器云平台上;
通过所述operator,在K8s容器云平台上部署所述分布式系统;
其中,所述分布式系统对应的管理组件以worker节点上的pod形式存在于K8s容器云平台中。
3.根据权利要求2所述的方法,其特征在于,在通过所述operator,在K8s容器云平台上部署所述分布式系统之后,还包括:
通过所述operator,将所述分布式系统对应的service服务部署在K8s容器云平台上,以使用户根据所述service服务触发作业请求。
4.根据权利要求1所述的方法,其特征在于,通过所述operator,监测到所述pods创建成功后,请求所述分布式系统进行扩容,包括:
通过所述operator,监测到所述pods创建成功后,调用所述分布式系统提供的请求接口,将所述pods作为请求参数发送至分布式系统,以使所述分布式系统根据所述请求参数进行扩容。
5.根据权利要求1所述的方法,其特征在于,在将所述pods进行删除之后,还包括:
检测到K8s平台对所述pods删除成功之后,控制所述分布式系统以及K8s平台回归到提交作业之前的状态。
6.一种分布式系统托管装置,其特征在于,所述装置包括:
作业监测模块,用于通过分布式系统对应的operator,监测到用户向分布式系统提交作业后,向K8s平台发送作业请求,以使所述K8s平台创建与作业请求对应的pods;
扩容模块,用于通过所述operator,监测到所述pods创建成功后,请求所述分布式系统进行扩容,以使所述分布式系统添加对应pods为工作节点,并运行所述工作节点上的用户作业;
缩容模块,用于通过所述operator,监测到所述工作节点上的用户作业运行结束后,请求所述分布式系统进行缩容,以使所述分布式系统将所述pods对应的工作节点进行移除;
删除模块,用于通过所述operator,监测到所述分布式系统缩容成功后,向K8s平台发送结束请求,以使所述K8s平台根据结束请求,将所述pods进行删除;
平台部署模块,用于在统一的硬件平台上部署K8s容器云平台,以及所述K8s容器云平台对应的容器镜像仓库;
镜像推送模块,用于获取所述分布式系统在K8s容器云平台上部署过程对应的镜像,并将所述镜像推送至所述容器镜像仓库;生成所述分布式系统在K8s容器云平台上部署过程关联的operator控制集以及对应的镜像,并将所述镜像推送至所述容器镜像仓库;
文件生成模块,用于生成所述operator在K8s容器云平台上部署过程关联的第一配置文件,以及所述operator对应的第二配置文件;
系统部署模块,用于根据所述容器镜像仓库、第一配置文件以及第二配置文件,将所述分布式系统部署在K8s容器云平台上。
7.一种电子设备,其特征在于,所述设备包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的计算机程序,所述计算机程序被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-5中任一项所述的分布式系统托管方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,所述计算机指令用于使处理器执行时实现权利要求1-5中任一项所述的分布式系统托管方法。
9.一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序在被处理器执行时实现根据权利要求1-5中任一项所述的分布式系统托管方法。
CN202410004086.9A 2024-01-03 2024-01-03 一种分布式系统托管方法、装置、电子设备及存储介质 Active CN117519989B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410004086.9A CN117519989B (zh) 2024-01-03 2024-01-03 一种分布式系统托管方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410004086.9A CN117519989B (zh) 2024-01-03 2024-01-03 一种分布式系统托管方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN117519989A true CN117519989A (zh) 2024-02-06
CN117519989B CN117519989B (zh) 2024-04-02

Family

ID=89749690

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410004086.9A Active CN117519989B (zh) 2024-01-03 2024-01-03 一种分布式系统托管方法、装置、电子设备及存储介质

Country Status (1)

Country Link
CN (1) CN117519989B (zh)

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778031A (zh) * 2014-01-15 2014-05-07 华中科技大学 一种云环境下的分布式系统多级故障容错方法
CN105897946A (zh) * 2016-04-08 2016-08-24 北京搜狐新媒体信息技术有限公司 一种访问地址的获取方法及系统
US10133797B1 (en) * 2013-08-16 2018-11-20 Amazon Technologies, Inc. Distributed heterogeneous system for data warehouse management
CN109656686A (zh) * 2018-12-17 2019-04-19 武汉烽火信息集成技术有限公司 OpenStack上部署容器云方法、存储介质、电子设备及系统
CN109766184A (zh) * 2018-12-28 2019-05-17 北京金山云网络技术有限公司 分布式任务处理方法、装置、服务器和系统
US20210152554A1 (en) * 2019-11-20 2021-05-20 Verizon Patent And Licensing Inc. Authorization for network function registration
CN114116909A (zh) * 2021-12-01 2022-03-01 敏博科技(武汉)有限公司 一种分布式云原生数据库管理方法和系统
CN114237810A (zh) * 2021-11-05 2022-03-25 贵州轻工职业技术学院 一种基于bim集成交付模式的云计算平台
CN114253661A (zh) * 2021-11-05 2022-03-29 贵州轻工职业技术学院 基于容器云计算平台的产品结构
US20220107842A1 (en) * 2020-10-05 2022-04-07 International Business Machines Corporation Dynamically scaling out pods using a recursive way
CN115499310A (zh) * 2022-08-26 2022-12-20 浪潮软件科技有限公司 一种基于云计算平台容器服务的业务应用上云方法及系统
WO2023024740A1 (zh) * 2021-08-23 2023-03-02 支付宝(杭州)信息技术有限公司 一种基于容器部署联邦学习任务的方法及装置
CN115827008A (zh) * 2023-02-14 2023-03-21 北京邮电大学 一种基于云原生平台Kubernetes的云原生大数据组件管理系统
CN116069449A (zh) * 2023-02-24 2023-05-05 华东理工大学 一种基于容器技术的实验环境部署方法及系统
US20230289351A1 (en) * 2020-08-06 2023-09-14 Inspur Suzhou Intelligent Technology Co., Ltd. Mirror List Query method of Multi-Architecture Cloud Platform Mirror Warehouse
CN116755794A (zh) * 2023-05-24 2023-09-15 北京无代码科技有限公司 一种于云原生的应用程序自动化部署方法及系统
US20230325253A1 (en) * 2022-04-12 2023-10-12 Netapp Inc. Distributed control plane for reformatting communication between a container orchestration platform and a distributed storage architecture

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10133797B1 (en) * 2013-08-16 2018-11-20 Amazon Technologies, Inc. Distributed heterogeneous system for data warehouse management
CN103778031A (zh) * 2014-01-15 2014-05-07 华中科技大学 一种云环境下的分布式系统多级故障容错方法
CN105897946A (zh) * 2016-04-08 2016-08-24 北京搜狐新媒体信息技术有限公司 一种访问地址的获取方法及系统
CN109656686A (zh) * 2018-12-17 2019-04-19 武汉烽火信息集成技术有限公司 OpenStack上部署容器云方法、存储介质、电子设备及系统
CN109766184A (zh) * 2018-12-28 2019-05-17 北京金山云网络技术有限公司 分布式任务处理方法、装置、服务器和系统
US20210152554A1 (en) * 2019-11-20 2021-05-20 Verizon Patent And Licensing Inc. Authorization for network function registration
US20230289351A1 (en) * 2020-08-06 2023-09-14 Inspur Suzhou Intelligent Technology Co., Ltd. Mirror List Query method of Multi-Architecture Cloud Platform Mirror Warehouse
US20220107842A1 (en) * 2020-10-05 2022-04-07 International Business Machines Corporation Dynamically scaling out pods using a recursive way
WO2023024740A1 (zh) * 2021-08-23 2023-03-02 支付宝(杭州)信息技术有限公司 一种基于容器部署联邦学习任务的方法及装置
CN114253661A (zh) * 2021-11-05 2022-03-29 贵州轻工职业技术学院 基于容器云计算平台的产品结构
CN114237810A (zh) * 2021-11-05 2022-03-25 贵州轻工职业技术学院 一种基于bim集成交付模式的云计算平台
CN114116909A (zh) * 2021-12-01 2022-03-01 敏博科技(武汉)有限公司 一种分布式云原生数据库管理方法和系统
US20230325253A1 (en) * 2022-04-12 2023-10-12 Netapp Inc. Distributed control plane for reformatting communication between a container orchestration platform and a distributed storage architecture
CN115499310A (zh) * 2022-08-26 2022-12-20 浪潮软件科技有限公司 一种基于云计算平台容器服务的业务应用上云方法及系统
CN115827008A (zh) * 2023-02-14 2023-03-21 北京邮电大学 一种基于云原生平台Kubernetes的云原生大数据组件管理系统
CN116069449A (zh) * 2023-02-24 2023-05-05 华东理工大学 一种基于容器技术的实验环境部署方法及系统
CN116755794A (zh) * 2023-05-24 2023-09-15 北京无代码科技有限公司 一种于云原生的应用程序自动化部署方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张羿;胡永华;黄丁;: "基于Docker的电网轻量级PaaS平台构建方案", 信息与电脑(理论版), no. 11, 8 June 2017 (2017-06-08) *
李灿彬;甘宏;: "基于Docker容器的云平台设计与实现", 科技广场, no. 06, 30 June 2017 (2017-06-30) *

Also Published As

Publication number Publication date
CN117519989B (zh) 2024-04-02

Similar Documents

Publication Publication Date Title
US10735345B2 (en) Orchestrating computing resources between different computing environments
CN113742031B (zh) 节点状态信息获取方法、装置、电子设备及可读存储介质
CN110752947B (zh) 一种k8s集群部署方法及装置,一种部署平台
CN111385114B (zh) Vnf服务实例化方法及装置
CN115292026B (zh) 容器集群的管理方法、装置、设备及计算机可读存储介质
US8938490B2 (en) System and method for accessing mainframe system automation from a process automation application
CN113645071A (zh) 一种集群部署方法、系统、介质及电子终端
CN114691567A (zh) 基于微服务的多云接口适配方法、系统及存储介质
CN111770176B (zh) 流量调度方法及装置
CN117616395A (zh) 迁移期间应用的连续活跃度和完整性
CN117519989B (zh) 一种分布式系统托管方法、装置、电子设备及存储介质
CN116521573A (zh) 一种自动化测试方法、装置、设备及存储介质
CN114070889B (zh) 配置方法、流量转发方法、设备、存储介质及程序产品
CN116107694A (zh) k8s子集群的部署方法、装置及存储介质
CN115309558A (zh) 一种资源调度管理系统、方法、计算机设备及存储介质
CN114416276A (zh) 设备管理服务的调度方法、装置、电子设备及存储介质
CN114189439A (zh) 一种自动扩容的方法及装置
CN110768855B (zh) 链路化性能测试的方法和装置
CN111045778B (zh) 一种虚拟机的创建方法、装置、服务器及存储介质
CN110445628B (zh) 基于nginx的服务器及其部署、监控的方法和装置
CN112241293A (zh) 工业互联网云平台的应用管理方法、装置、设备及介质
US11907142B2 (en) Configuring polling times for software applications
TWI673610B (zh) 遠端工作系統及其工作方法
CN117056022A (zh) Rpa任务的执行方法、装置、电子设备及存储介质
CN118051316A (zh) 任务的异步处理方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant