CN116170518A - 一种国产芯片容器云跨架构管理的方法及设备 - Google Patents
一种国产芯片容器云跨架构管理的方法及设备 Download PDFInfo
- Publication number
- CN116170518A CN116170518A CN202310456747.7A CN202310456747A CN116170518A CN 116170518 A CN116170518 A CN 116170518A CN 202310456747 A CN202310456747 A CN 202310456747A CN 116170518 A CN116170518 A CN 116170518A
- Authority
- CN
- China
- Prior art keywords
- scheduled
- container
- priority
- container cluster
- cluster
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/04—Network management architectures or arrangements
- H04L41/042—Network management architectures or arrangements comprising distributed management centres cooperatively managing the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0893—Assignment of logical groups to network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Abstract
本申请涉及容器云平台管理技术领域,尤其涉及一种国产芯片容器云跨架构管理的方法及设备,方法包括:构建虚拟层,屏蔽容器云平台中不同芯片架构的容器集群的底层差异;虚拟层包括静态翻译器和动态翻译器;基于虚拟层,对容器云平台中的多个容器集群进行基于跨架构弹性伸缩的集中统一管理;包括:获取待调度容器集群队列;确定待调度容器集群队列中各待调度容器集群的优先级,根据待调度容器集群的优先级对待调度容器集群执行预设调度策略;预设调度策略的机制为:调度顺序和资源分配优先满足高优先级待调度容器集群;基于预设调度算法,生成待调度容器集群队列中各待调度容器集群的调度方案。
Description
技术领域
本申请涉及容器云平台管理技术领域,尤其涉及一种国产芯片容器云跨架构管理的方法及设备。
背景技术
摆随着互联网规模的增大,网络应用产生的海量数据促使大数据与云计算迅速发展。 云计算是指将大量用网络连接的计算资源统一管理和调度,构成一个计算资源池向用户提供服务。经典云架构中基础设施即服务层(IaaS)的资源分配是利用虚拟化技术以虚拟机为基本单元进行调度,这种大粒度的资源调度会出现资源利用率低、调度缓慢等问题。
在这样的背景下,以容器云为资源分割和调度的基本单位解决了上述问题。容器虚拟化技术出现,如今以 Docker为主的容器虚拟化技术能解决云平台资源调度存在的问题主要原因之一是容器编排工具利用容器技术使得大量网络应用以容器微服务的形式进行轻量化、便捷化管理、调度、升级,从而容器技术得以广泛应用。
容器编排工具提供调度和管理集群的技术,提供容器应用可扩展性的基本机制。这些工具使用并编排容器服务,决定容器之间如何进行交互,最常见的容器编排工具有kubernetes。
跨国产芯片架构容器编排工具的出现使得容器虚拟化技术解决了异构云平台资源利用率低、调度分发缓慢等诸多问题,因此,实现跨芯片架构容器编排工具的调度算法可以有效分配容器集群资源,提高资源利用率,同时最小化资源消费总成本。
但是现有技术中,跨芯片架构Kubemetes调度模型在部署长时间运行服务时未考虑资源消费成本的问题,进行多容器集群部署未考虑均衡调度的问题,节点选择策略存在局限性。且现有的调度模型在跨芯片架构集群资源量不足时存在调度失败率高的问题。
发明内容
为至少在一定程度上克服相关技术中的跨芯片架构调度模型节点选择策略存在局限性,在跨芯片架构集群资源量不足时存在调度失败率高的问题,本申请提供一种国产芯片容器云跨架构管理的方法及设备。
本申请的方案如下:
根据本申请实施例的第一方面,提供一种国产芯片容器云跨架构管理的方法,包括:
构建虚拟层,屏蔽容器云平台中不同芯片架构的容器集群的底层差异;所述虚拟层包括静态翻译器和动态翻译器;
基于所述虚拟层,对异构容器云平台中的多个容器集群进行基于跨架构弹性伸缩的集中统一管理;包括:
获取待调度容器集群队列;
确定待调度容器集群队列中各待调度容器集群的优先级,根据待调度容器集群的优先级对待调度容器集群执行预设调度策略;所述预设调度策略的机制为:调度顺序和资源分配优先满足高优先级待调度容器集群;
基于预设调度算法,生成待调度容器集群队列中各待调度容器集群的调度方案;
其中,所述预设调度算法包括:
基于蚁群算法在确定各待调度容器集群的的初选节点,生成初始调度方案;
通过所述初始调度方案,初始化粒子群算法的粒子初始位置,并基于粒子群算法确定各待调度容器集群的的终选节点,生成终选调度方案。
优选地,屏蔽异构容器云平台中不同芯片架构的容器集群的底层差异,包括:
通过虚拟层的静态翻译器对不同芯片架构的源二进制代码进行翻译,生成静态翻译结果;
通过虚拟层的动态翻译器根据所述静态翻译结果执行不同架构的源进制程序。
优选地,通过虚拟层的静态翻译器对不同芯片架构的源二进制代码进行翻译,生成静态翻译结果,包括:
将不同芯片架构的源二进制代码和性能分析结果装入内存;
对不同芯片架构的源二进制代码进行翻译,得到初始静态翻译结果;
对所述初始静态翻译结果进行优化,将优化后的结果按照预设格式输出为最终静态翻译结果。
优选地,对所述初始静态翻译结果进行优化,包括:
基于基本块内的寄存器分配算法,进行局部寄存器分配;
基于跨越基本块的寄存器分配算法,进行全局寄存器分配;
执行跨越基本块的编译优化;
识别不同芯片架构源二进制代码中标志位的指令组合,通过预设的精简指令集根据识别结果模拟不同芯片架构中标志位寄存器的功能;
通过语义提升,对间接跳转的目标进行识别。
优选地,通过虚拟层的动态翻译器根据所述静态翻译结果执行不同架构的源进制程序,包括:
获取基本块入口地址,根据基本块入口地址划分基本块,以块为单位提取静态翻译结果中的源代码信息;
模拟不同芯片架构的运行环境,以块为单位对提取得到的源代码信息对应的不同芯片架构的指令进行解释执行;
对提取得到的源代码信息以块为单位进行翻译,生成本地二进制码和对应的链接,将所述本地二进制码放入内存;
执行所述本地二进制码。
优选地,所述方法还包括:
在动态翻译器进行解释执行和翻译过程中进行性能分析,将性能分析结果提供给静态翻译器。
优选地,确定待调度容器集群队列中各待调度容器集群的优先级,包括:
根据待调度容器集群的运行状态、终止状态和重启策略对待调度容器集群的优先级进行划分:
将处于Runing运行状态或Failed终止状态的待调度容器集群确定为低优先级待调度容器集群;
将重启策略为Never且处于Pending运行状态的待调度容器集群确定为高优先级待调度容器集群;
将处于其他运行状态、终止状态或重启策略的待调度容器集群确定为中优先级待调度容器集群。
优选地,根据待调度容器集群的优先级对待调度容器集群执行预设调度策略,包括:
对于当前高优先级待调度容器集群,判断当前节点资源是否满足需求;
若满足,则直接将当前高优先级待调度容器集群部署在当前节点;
若不满足,则判断当前节点是否含有低优先级待调度容器集群;
在当前节点含有低优先级待调度容器集群时,判断低优先级待调度容器集群所占用的节点资源是否满足当前高优先级待调度容器集群使用;
若满足,对当前节点的低优先级待调度容器集群逐一挂起,直至当前节点资源满足时当前高优先级待调度容器集群使用时停止,进行当前高优先级待调度容器集群调度;
若不满足,执行循环遍历其他节点资源是否满足需求。
优选地,所述方法还包括:
根据所述调度方案,将各待调度容器集群在对应的终选节点上进行信息预绑定,并在存储系统中进行信息存储;
在各待调度容器集群对应的终选节点上创建和部署容器集群。
根据本申请实施例的第二方面,提供一种国产芯片容器云跨架构管理的设备,包括:
处理器和存储器;
所述处理器与存储器通过通信总线相连接:
其中,所述处理器,用于调用并执行所述存储器中存储的程序;
所述存储器,用于存储程序,所述程序至少用于执行如以上任一项所述的一种国产芯片容器云跨架构管理的方法。
本申请提供的技术方案可以包括以下有益效果:本申请中的国产芯片容器云跨架构管理的方法,包括:构建虚拟层,屏蔽容器云平台中不同芯片架构的容器集群的底层差异;虚拟层包括静态翻译器和动态翻译器;基于虚拟层,对容器云平台中的多个容器集群进行基于跨架构弹性伸缩的集中统一管理;包括:获取待调度容器集群队列;确定待调度容器集群队列中各待调度容器集群的优先级,根据待调度容器集群的优先级对待调度容器集群执行预设调度策略;预设调度策略的机制为:调度顺序和资源分配优先满足高优先级待调度容器集群;基于预设调度算法,生成待调度容器集群队列中各待调度容器集群的调度方案。其中,预设调度算法包括:基于蚁群算法在确定各待调度容器集群的的初选节点,生成初始调度方案;通过初始调度方案,初始化粒子群算法的粒子初始位置,并基于粒子群算法确定各待调度容器集群的的终选节点,生成终选调度方案。本申请的技术方案中,容器调度可以分为解释执行、静态翻译和动态翻译三种,虚拟层通过动静结合的二进制翻译系统,结合静态翻译器和动态翻译器的优点并避免它们的不足,从而更好的进行调度。本申请的技术方案能够对容器云平台中的多个容器集群进行集中统一管理,且不是每个集群里都有管理节点,而是每一个集群里的容器可以跨到另一个集群里进行跨架构弹性伸缩。本申请中,针对跨芯片架构Kubemetes调度模型在部署长时间运行服务时未考虑资源消费成本的问题,和进行多容器集群部署未考虑均衡调度的问题,通过蚁群算法和粒子群算法相结合的调度算法,改进调度模型的节点选择策略。且针对现有的调度模型在跨芯片架构集群资源量不足时存在调度失败率高的问题,提出一种新的抢占式调度策略,调度顺序和资源分配优先满足高优先级待调度容器集群,使高优先级待调度容器集群可以抢占低优先级待调度容器集群的资源进行调度,从而及时完成高优先级待调度容器集群的运行,运行结束后释放资源,使其他待调度容器集群可正常请求该资源。本申请中的技术方案相较于现有技术存在较高的信息技术应用创新。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。
图1是本申请一个实施例提供的一种国产芯片容器云跨架构管理的方法的流程示意图;
图2是本申请一个实施例提供的一种根据待调度容器集群的优先级对待调度容器集群执行预设调度策略的流程示意图;
图3是本申请一个实施例提供的一种基于蚁群算法在确定各待调度容器集群的的初选节点,生成初始调度方案的流程示意图;
图4是本申请一个实施例提供的一种国产芯片容器云跨架构管理的设备的结构示意图。
附图标记:处理器-101;存储器-102。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
实施例一
图1是本申请一个实施例提供的一种国产芯片容器云跨架构管理的方法的流程示意图,参照图1,一种国产芯片容器云跨架构管理的方法,包括:
构建虚拟层,屏蔽容器云平台中不同芯片架构的容器集群的底层差异;虚拟层包括静态翻译器和动态翻译器;
基于虚拟层,对容器云平台中的多个容器集群进行基于跨架构弹性伸缩的集中统一管理;包括:
S1:获取待调度容器集群队列;
S2:确定待调度容器集群队列中各待调度容器集群的优先级,根据待调度容器集群的优先级对待调度容器集群执行预设调度策略;预设调度策略的机制为:调度顺序和资源分配优先满足高优先级待调度容器集群;
S3:基于预设调度算法,生成待调度容器集群队列中各待调度容器集群的调度方案;
其中,预设调度算法包括:
S31:基于蚁群算法在确定各待调度容器集群的的初选节点,生成初始调度方案;
S32:通过初始调度方案,初始化粒子群算法的粒子初始位置,并基于粒子群算法确定各待调度容器集群的的终选节点,生成终选调度方案。
需要说明的是,本实施例中的技术方案涉及容器云平台管理技术领域,属于信息技术应用创新产业,
需要说明的是,跨国产芯片架构容器编排工具的出现使得容器虚拟化技术解决了异构云平台资源利用率低、调度分发缓慢等诸多问题,因此,实现跨芯片架构容器编排工具的调度算法可以实现统一管理,有效分配容器集群资源,可以提高资源利用率,同时最小化资源消费总成本。为得到更好的调度策略,本实施例提出一种国产芯片容器云跨架构管理的方法。
在具体实践中,本实施例中的容器云平台,能在六种国产芯片架构(SW64、LoongArch、Mips、ARM、C86、X86)的服务器上平滑弹性运行。以实现对六种容器集群的集中统一管理。本实施例中的容器云平台可以跨架构弹性伸缩,每一个集群里的容器可以跨到另一个集群里进行伸缩。
需要说明的是,本实施例中的容器云平台对多个容器集群的集中统一管理通过虚拟层实现,虚拟层是在容器操作系统之间增设的一层,类似虚拟化,用以屏蔽不同容器集群的底层差异。
本实施例中的虚拟层设计如下:
容器调度可以分为解释执行、静态翻译、动态翻译三种:
1)解释执行,解释器可以准确模拟不同芯片架构上容器相关功能编译开发,但存在的最大问题是运行速度、性能严重下降。
2)静态翻译,是在静态环境下对不同芯片架构上的可执行代码进行离线翻译和优化,然后执行传统编译器的代码生成,生成目标机上的可执行文件,其优点是翻译过程不占用运行时间,代码质量高,但对于程序中普遍出现的间接调用、间接转移、代码自修改等问题较难处理。
3)动态翻译,是一种将解释和动态翻译、动态优化相结合的方法。但缺点是由于动态时的优化要增加程序的开销,因此很多较复杂的优化手段不便于利用,使得翻译出的本地代码的质量不如静态翻译高。
本实施例中的技术方案,结合静态翻译器和动态翻译器的优点并避免它们的不足,提出了一种动静结合的二进制翻译方法,如下:
通过虚拟层的静态翻译器对不同芯片架构的源二进制代码进行翻译,生成静态翻译结果;
通过虚拟层的动态翻译器根据静态翻译结果执行不同架构的源进制程序。
需要说明的是,通过虚拟层的静态翻译器对不同芯片架构的源二进制代码进行翻译,生成静态翻译结果,包括:
将不同芯片架构的源二进制代码和动态翻译器提供的性能分析结果装入内存;
对不同芯片架构的源二进制代码进行翻译,得到初始静态翻译结果;
对初始静态翻译结果进行优化,将优化后的结果按照预设格式输出为最终静态翻译结果。
可以理解的是,静态翻译器的作用是在程序未执行之前,将不同芯片架构的源二进制代码进行翻译,生成静态翻译结果。该结果包括翻译后的目标机器(SW64)代码以及一些辅助信息。静态翻译是离线翻译,其翻译时间不占运行时开销,翻译出的结果可以供动态翻译执行器多次使用,因此静态翻译器可以实现一些力度更大的优化,生成更加高效的目标码。但静态翻译器也有一些局限性,例如间接跳转和间接调用的目标不能识别,不能处理代码自修改程序等,这些必须依靠动态翻译器来解决,所以本实施例中后续还通过虚拟层的动态翻译器根据静态翻译结果执行不同架构的源进制程序。
具体的,对初始静态翻译结果进行优化,包括:
基于基本块内的寄存器分配算法,进行局部寄存器分配;
基于跨越基本块的寄存器分配算法,进行全局寄存器分配;
执行跨越基本块的编译优化;
识别不同芯片架构源二进制代码中标志位的指令组合,通过预设的精简指令集根据识别结果模拟不同芯片架构中标志位寄存器的功能;
通过语义提升,对间接跳转的目标进行识别。
需要说明的是,跨越基本块的编译优化为扩展的基本块优化,包括常量传播,死代码删除等。
需要说明的是,源芯片架构中的标志位寄存器是源芯片架构系统结构区别于SW64结构的主要部件之一,现有技术中在SW64上模拟标志位的计算和引用需要大量的本地码才能实现。而本实施例中通过识别源芯片架构的源二进制代码中标志位计算和引用的指令组合,使用精简的SW64指令集便可实现相同的功能,从而避免了大量的模拟标志位的成本,能够大大提高二进制翻译系统的性能。
需要说明的是,静态翻译有不能处理间接跳转目标的局限性,本实施例中通过语义提升,对间接跳转的目标实现识别,在很大程度上克服了静态翻译的这种局限,也提高系统迁移的性能。
需要说明的是,通过虚拟层的动态翻译器根据静态翻译结果执行不同架构的源进制程序,包括:
获取基本块入口地址,根据基本块入口地址划分基本块,以块为单位提取静态翻译结果中的源代码信息;
模拟不同芯片架构的运行环境,以块为单位对提取得到的源代码信息对应的不同芯片架构的指令进行解释执行;
对提取得到的源代码信息以块为单位进行翻译,生成本地二进制码和对应的链接,将本地二进制码放入内存;
执行本地二进制码。
需要说明的是,程序的执行单元为一个Block块,即一组线形的源架构指令代码,直到遇到跳转指令结束。
需要说明的是,动态翻译器又分为基本块划分模块、解释模块、翻译模块和本地码执行模块四个模块。基本块划分模块获取基本块入口地址,根据基本块入口地址,划分基本块,以块为单位提取静态翻译结果中的源代码信息;解释模块模拟不同芯片架构的运行环境,以块为单位对提取得到的源代码信息对应的不同芯片架构的指令进行解释执行;翻译模块对提取得到的源代码信息以块为单位进行翻译,将源芯片架构的Block翻译为类ALPHA汇编结构进行表示,生成ALPHA本地二进制码和对应的链接,将ALPHA本地二进制码放入内存;本地码执行模块负责本地二进制码与本系统的上下文切换和本地二进制码执行。
需要说明的是,翻译模块还负责优化的工作,如标志位定值引用分析,模式分析等。
需要说明的是,在动态翻译器进行解释执行和翻译过程中进行性能分析,将性能分析结果提供给静态翻译器。
实施例二
在具体实践中,kubernetes的调度器主要工作为:接受主控制器接口组件发来的请求创建待调度容器集群,并为其安排一个节点。
需要说明的是,获取待调度容器集群队列包括:
基于预设时间间隔,通过接口服务检测是否有未绑定的待调度容器集群;
若存在,将未绑定的待调度容器集群生成待调度容器集群队列。
可以理解的是,kubernetes的调度器通过接口服务(API Server) 检测是有未绑定的待调度容器集群,若存在,将未绑定的待调度容器集群生成待调度容器集群队列,否则继续执行定时检测。
需要说明的是,方法还包括:
基于预设规则过滤掉不合格的节点。
在具体实践中,预设规则可以为,若待调度容器集群指定请求某节点端口,但此节点端口已被占用,则直接过滤掉此节点端口。
需要说明的是,方法还包括:
根据调度方案,将各待调度容器集群在对应的终选节点上进行信息预绑定,并在存储系统中进行信息存储;
在各待调度容器集群对应的终选节点上创建和部署容器集群。
可以理解的是,在得到调度方案后,根据调度方案对各待调度容器集群进行调度,将各待调度容器集群在对应的终选节点上进行信息预绑定,并在存储系统中进行信息存储。
在具体实践中,存储系统可以为etcd,etcd是一个分布式键值对存储系统,由coreos 开发,内部采用 raft 协议作为一致性算法,用于可靠、快速地保存关键数据,并提供访问。
在存储完成后,通过API Server 发送消息在各待调度容器集群对应的终选节点上创建和部署容器。
实施例三
需要说明的是,本技术方案设计容器集群的优先级思想来自容器集群的生命周期和容器集群的运行状态,而其生命周期运行时的终止状态是和容器集群的重启策略紧密相关,故根据容器集群的运行态、终止态和重启策略对容器集群的优先级进行划分。容器集群共有五种运行态和三种重启策略和三种终止态,本技术方案根据容器集群状态和其重启策略将容器集群的等级划分为3等级。
确定待调度容器集群队列中各待调度容器集群的优先级,包括:
根据待调度容器集群的运行状态、终止状态和重启策略对待调度容器集群的优先级进行划分:
将处于Runing运行状态或Failed终止状态的待调度容器集群确定为低优先级待调度容器集群;
将重启策略为Never且处于Pending运行状态的待调度容器集群确定为高优先级待调度容器集群;
将处于其他运行状态、终止状态或重启策略的待调度容器集群确定为中优先级待调度容器集群。
在具体实践中,在容器集群的集群中,若出现资源不足的警告,开启本文抢占式调度算法,在容器集群运行时长达一定阈值后对其运行状进行检查,若容器集群处于Runing运行状态或出现Failed终止状态,则将其设置为低优先级容器集群,此时忽略容器集群的重启策略;若容器集群的重启策略为Never且处于Pending运行状态,则将其设置为高优先级容器集群;其他情况,设置为中优先级。这种优先级划分有利于确保尽可能多的容器集群都能正常执行,同时保证终止态为Successd的容器集群优先调度,运行结束后释放资源,供其他优先级的容器集群正常请求使用该资源且不影响该容器集群的最终执行。
在具体实施时,参照图2,根据待调度容器集群的优先级对待调度容器集群执行预设调度策略,包括:
S21:对于当前高优先级待调度容器集群,判断当前节点资源是否满足需求;
S22:若满足,则直接将当前高优先级待调度容器集群部署在当前节点;
S23:若不满足,则判断当前节点是否含有低优先级待调度容器集群;
S231:在当前节点含有低优先级待调度容器集群时,判断低优先级待调度容器集群所占用的节点资源是否满足当前高优先级待调度容器集群使用;
S232:若满足,对当前节点的低优先级待调度容器集群逐一挂起,直至当前节点资源满足时当前高优先级待调度容器集群使用时停止,进行当前高优先级待调度容器集群调度;
S233:若不满足,执行循环遍历其他节点资源是否满足需求。
本实施例中的技术方案是针对现有的调度模型在跨芯片架构集群资源量不足时存在调度失败率高的问题,提出的一种新的抢占式调度策略,调度顺序和资源分配优先满足高优先级待调度容器集群,使高优先级待调度容器集群可以抢占低优先级待调度容器集群的资源进行调度,从而及时完成高优先级待调度容器集群的运行,运行结束后释放资源,使其他待调度容器集群可正常请求该资源。
实施例四
需要说明的是,蚁群算法是模拟蚂蚁搜索食物的过程,每只蚂蚁根据其他蚂蚁在路上释放的一种化学物质浓度去寻找食物的最终位置,在不断往来原点与终点的过程中释放化学物质,蚂蚁通过判断化学物质浓度找到寻找食物的最短路径。
本实施例中通过蚁群算法优化容器集群的调度算法,其思想可以概述为:设定x只蚂蚁,n个待调度容器集群,待分配节点有m个,则每只蚂蚁为每个待调度容器集群选择部署节点时,都会遍历一遍集群的节点,在遍历的过程中,对不可能的节点进行禁忌标记,对可能的节点进行概率计算。
需要说明的是,基于蚁群算法在确定各待调度容器集群的的初选节点,生成初始调度方案,包括:
S311:初始化kubernetes集群中所有虚拟机的值,以集群节点的资源量作为信息素浓度,设定迭代次数、信息素启发因子、期望启发因子、挥发因子、蚂蚁个数和权重系数;
S312:对于当前待调度容器集群,通过集群节点资源的优先级初始化信息素浓度;
S313:基于预设约束条件筛选节点,确定筛选后的各可用节点的分值;
S314:遍历全部可用节点后,对可用节点进行选择,并对选中的节点进行资源信息更新和局部信息素浓度更新;
S315:对当前待调度容器集群的服务部署进行概率计算;
S316:当超过预设百分比阈值的蚂蚁开始为当前待调度容器集群选择节点时,基于随机选择法为当前待调度容器集群进行节点分配;
S317:当所有蚂蚁完成所有待调度容器集群分配后,利用全局最优蚂蚁的总目标函数值进行全局信息素浓度迭代更新;
S318:判断是否达到迭代次数,若达到迭代次数则结束迭代,确定各待调度容器集群的的初选节点,输出当前分配方案为初始调度方案,并输出当前分配方案下的资源使用成本和集群负载度。
需要说明的是,对于当前待调度容器集群,通过蚁群算法的信息素浓度初始值、集群所有节点的芯片总资源量、集群所有节点的内存总资源量、当前节点的芯片总资源量、当前节点的内存总资源量、当前节点已占用的芯片资源量、当前节点已占用的内存资源量、当前待调度容器集群对芯片资源的请求量和当前待调度容器集群对内存资源的请求量,初始化信息素浓度;
基于预设约束条件筛选节点,确定筛选后的各可用节点的分值,包括:
若当前待调度容器集群对芯片资源的请求量不大于当前待调度容器集群对芯片空闲资源的请求量,当前待调度容器集群对内存资源的请求量不大于当前待调度容器集群对内存空闲资源的请求量,且当前待调度容器集群请求的端口未被占用,则当前待调度容器集群在当前节点的总分值为当前待调度容器集群在当前节点的资源优先级分值和资源均衡度分值之和,否则为0;
对选中的节点进行局部信息素浓度更新,包括:
根据更新前的信息素浓度值、第一挥发因子、节点优先级的权重系数和当前待调度容器集群在当前节点的资源优先级分值,得到当前节点更新后的信息素浓度值;
对当前待调度容器集群的服务部署进行概率计算,包括:
若蚂蚁下一步存在可以选择的节点,则根据蚂蚁为当前待调度容器集群选择节点时的概率、当前待调度容器集群选择节点时的信息素浓度、当前待调度容器集群选择节点的启发因子、信息启发因子和期望启发因子,得到当前待调度容器集群的服务部署概率;若蚂蚁下一步不存在可以选择的节点,则概率为0;
利用全局最优蚂蚁的总目标函数值进行全局信息素浓度更新,包括:
根据更新前的信息素浓度值、第二挥发因子、总目标函数的权重系数和蚁群求解中最优蚂蚁的总目标函数值,得到更新后的全局信息素浓度值。
需要说明的是,粒子群算法是模拟群体智能搜索所建立起来的一种优化算法,每个粒子代表搜索食物的鸟,都有一个速度决定它们的飞行方向和一个位置信息,通过设定目标函数,判断粒子当前的飞行位置是否较优,通过最优粒子的位置和粒子的历史最优位置更新当前粒子的位置和速度。
本实施例中还通过粒子群算法优化容器集群的调度算法,具体的,基于粒子群算法确定各待调度容器集群的的终选节点,生成终选调度方案,包括:
设定迭代次数、粒子数量、空间维数、节点数量和待调度容器集群的数量;
以最优节点为粒子群算法的最优解,以多个粒子在多维空间为待调度容器集群寻求最优解为粒子群算法的目标,执行粒子群算法;
根据当前粒子的最优解和全局粒子的最优解对粒子在多维空间中寻找解的速度进行迭代更新;
判断是否达到迭代次数,若达到迭代次数则结束迭代,输出当前迭代的最优解,作为各待调度容器集群的的终选节点,输出当前分配方案为终选调度方案,并输出当前分配方案下的资源消耗成本、集群负载数、总目标函数和调度失败率。
需要说明的是,根据当前粒子的最优解和全局粒子的最优解对粒子在多维空间中寻找解的速度进行迭代更新,包括:
根据当前迭代时粒子速度的权重、当前迭代时粒子为待调度容器集群选择节点时的飞行速度、粒子的自我学习能力、粒子的社会学习能力、粒子群历史迭代中的历史最优位置、当前粒子群最优粒子的飞行位置和粒子的当前位置,得到粒子下次迭代时为待调度容器集群选择节点时的飞行速度。
方法还包括:
根据随机位置挥发因子系数、当前迭代时粒子速度的权重、当前迭代次数和总迭代次数,得到粒子下次迭代时速度的权重;
根据当前迭代时粒子的位置和当前迭代时粒子为待调度容器集群选择节点时的飞行速度,得到粒子下次迭代时的位置。
可以理解的是,蚁群算法和粒子群算法是云计算资源调度算法中较为常见的调度优化算法,其具有全局搜索能力,寻找最优解能力强的特点,在低维优化问题上取得较好的优化效果,适用于本技术方案研究容器云对一个集群微服务部署的规模需求。本实施例中通过蚁群算法和粒子群算法优化现有的调度算法,改进kubernetes调度模型,解决容器集群调度的组合优化问题,提高容器集群调度均衡性,解决整体资源成本消费较高的问题。
实施例四
图4是本申请一个实施例提供的一种国产芯片容器云跨架构管理的设备的结构示意图,参照图4,一种国产芯片容器云跨架构管理的设备,包括:
处理器101和存储器102;
处理器101与存储器102通过通信总线相连接:
其中,处理器101,用于调用并执行存储器102中存储的程序;
存储器102,用于存储程序,程序至少用于执行以上实施例中的一种国产芯片容器云跨架构管理的方法。
可以理解的是,上述各实施例中相同或相似部分可以相互参考,在一些实施例中未详细说明的内容可以参见其他实施例中相同或相似的内容。
需要说明的是,在本申请的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本申请的描述中,除非另有说明,“多个”的含义是指至少两个。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本申请的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本申请的实施例所属技术领域的技术人员所理解。
应当理解,本申请的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本申请各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本申请的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本申请的限制,本领域的普通技术人员在本申请的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (10)
1.一种国产芯片容器云跨架构管理的方法,其特征在于,包括:
构建虚拟层,屏蔽容器云平台中不同芯片架构的容器集群的底层差异;所述虚拟层包括静态翻译器和动态翻译器;
基于所述虚拟层,对容器云平台中的多个容器集群进行基于跨架构弹性伸缩的集中统一管理;包括:
获取待调度容器集群队列;
确定待调度容器集群队列中各待调度容器集群的优先级,根据待调度容器集群的优先级对待调度容器集群执行预设调度策略;所述预设调度策略的机制为:调度顺序和资源分配优先满足高优先级待调度容器集群;
基于预设调度算法,生成待调度容器集群队列中各待调度容器集群的调度方案;
其中,所述预设调度算法包括:
基于蚁群算法在确定各待调度容器集群的的初选节点,生成初始调度方案;
通过所述初始调度方案,初始化粒子群算法的粒子初始位置,并基于粒子群算法确定各待调度容器集群的的终选节点,生成终选调度方案。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
通过虚拟层的静态翻译器对不同芯片架构的源二进制代码进行翻译,生成静态翻译结果;
通过虚拟层的动态翻译器根据所述静态翻译结果执行不同架构的源进制程序。
3.根据权利要求2所述的方法,其特征在于,通过虚拟层的静态翻译器对不同芯片架构的源二进制代码进行翻译,生成静态翻译结果,包括:
将不同芯片架构的源二进制代码和动态翻译器提供的性能分析结果装入内存;
对不同芯片架构的源二进制代码进行翻译,得到初始静态翻译结果;
对所述初始静态翻译结果进行优化,将优化后的结果按照预设格式输出为最终静态翻译结果。
4.根据权利要求3所述的方法,其特征在于,对所述初始静态翻译结果进行优化,包括:
基于基本块内的寄存器分配算法,进行局部寄存器分配;
基于跨越基本块的寄存器分配算法,进行全局寄存器分配;
执行跨越基本块的编译优化;
识别不同芯片架构源二进制代码中标志位的指令组合,通过预设的精简指令集根据识别结果模拟不同芯片架构中标志位寄存器的功能;
通过语义提升,对间接跳转的目标进行识别。
5.根据权利要求2所述的方法,其特征在于,通过虚拟层的动态翻译器根据所述静态翻译结果执行不同架构的源进制程序,包括:
获取基本块入口地址,根据基本块入口地址划分基本块,以块为单位提取静态翻译结果中的源代码信息;
模拟不同芯片架构的运行环境,以块为单位对提取得到的源代码信息对应的不同芯片架构的指令进行解释执行;
对提取得到的源代码信息以块为单位进行翻译,生成本地二进制码和对应的链接,将所述本地二进制码放入内存;
执行所述本地二进制码。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
在动态翻译器进行解释执行和翻译过程中进行性能分析,将性能分析结果提供给静态翻译器。
7.根据权利要求1所述的方法,其特征在于,确定待调度容器集群队列中各待调度容器集群的优先级,包括:
根据待调度容器集群的运行状态、终止状态和重启策略对待调度容器集群的优先级进行划分:
将处于Runing运行状态或Failed终止状态的待调度容器集群确定为低优先级待调度容器集群;
将重启策略为Never且处于Pending运行状态的待调度容器集群确定为高优先级待调度容器集群;
将处于其他运行状态、终止状态或重启策略的待调度容器集群确定为中优先级待调度容器集群。
8.根据权利要求1所述的方法,其特征在于,根据待调度容器集群的优先级对待调度容器集群执行预设调度策略,包括:
对于当前高优先级待调度容器集群,判断当前节点资源是否满足需求;
若满足,则直接将当前高优先级待调度容器集群部署在当前节点;
若不满足,则判断当前节点是否含有低优先级待调度容器集群;
在当前节点含有低优先级待调度容器集群时,判断低优先级待调度容器集群所占用的节点资源是否满足当前高优先级待调度容器集群使用;
若满足,对当前节点的低优先级待调度容器集群逐一挂起,直至当前节点资源满足时当前高优先级待调度容器集群使用时停止,进行当前高优先级待调度容器集群调度;
若不满足,执行循环遍历其他节点资源是否满足需求。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述调度方案,将各待调度容器集群在对应的终选节点上进行信息预绑定,并在存储系统中进行信息存储;
在各待调度容器集群对应的终选节点上创建和部署容器集群。
10.一种国产芯片容器云跨架构管理的设备,其特征在于,包括:
处理器和存储器;
所述处理器与存储器通过通信总线相连接:
其中,所述处理器,用于调用并执行所述存储器中存储的程序;
所述存储器,用于存储程序,所述程序至少用于执行权利要求1-9任一项所述的一种国产芯片容器云跨架构管理的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310456747.7A CN116170518B (zh) | 2023-04-26 | 2023-04-26 | 一种国产芯片容器云跨架构管理的方法及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310456747.7A CN116170518B (zh) | 2023-04-26 | 2023-04-26 | 一种国产芯片容器云跨架构管理的方法及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116170518A true CN116170518A (zh) | 2023-05-26 |
CN116170518B CN116170518B (zh) | 2023-07-18 |
Family
ID=86416745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310456747.7A Active CN116170518B (zh) | 2023-04-26 | 2023-04-26 | 一种国产芯片容器云跨架构管理的方法及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116170518B (zh) |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109889480A (zh) * | 2018-12-25 | 2019-06-14 | 武汉烽火信息集成技术有限公司 | 基于容器和云平台的全国产化融合云平台管理方法及系统 |
US10447806B1 (en) * | 2017-06-09 | 2019-10-15 | Nutanix, Inc. | Workload scheduling across heterogeneous resource environments |
CN112217676A (zh) * | 2020-10-13 | 2021-01-12 | 北京工业大学 | 一种基于混合元启发式算法的Kubernetes容器集群节点选取方法 |
CN112433819A (zh) * | 2020-11-30 | 2021-03-02 | 中国科学院深圳先进技术研究院 | 异构集群调度的模拟方法、装置、计算机设备及存储介质 |
CN112540844A (zh) * | 2019-09-20 | 2021-03-23 | 北京京东尚科信息技术有限公司 | 集群内容器调度方法、装置、存储介质和电子设备 |
US20210365290A1 (en) * | 2020-04-16 | 2021-11-25 | Nanjing University Of Posts And Telecommunications | Multidimensional resource scheduling method in kubernetes cluster architecture system |
CN113900773A (zh) * | 2021-10-25 | 2022-01-07 | 北京计算机技术及应用研究所 | 一种基于国产平台虚拟机和容器的超融合调度方法 |
CN114138486A (zh) * | 2021-12-02 | 2022-03-04 | 中国人民解放军国防科技大学 | 面向云边异构环境的容器化微服务编排方法、系统及介质 |
CN114625493A (zh) * | 2020-12-14 | 2022-06-14 | 中国石油大学(华东) | 基于改进天牛须智能方法的Kubernetes集群资源调度方法 |
CN114721719A (zh) * | 2022-04-20 | 2022-07-08 | 上海道客网络科技有限公司 | 一种在集群中容器化部署异构应用的方法和系统 |
CN114756374A (zh) * | 2022-04-30 | 2022-07-15 | 苏州浪潮智能科技有限公司 | 一种异构cpu调度的方法、装置、设备及介质 |
US20220413985A1 (en) * | 2021-06-29 | 2022-12-29 | International Business Machines Corporation | Optimizing cpu requests and limits for a pod based on benchmarked hardware |
CN115543547A (zh) * | 2022-11-30 | 2022-12-30 | 北京太极信息系统技术有限公司 | 一种异构虚拟化平台中虚拟机的迁移方法及系统 |
-
2023
- 2023-04-26 CN CN202310456747.7A patent/CN116170518B/zh active Active
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10447806B1 (en) * | 2017-06-09 | 2019-10-15 | Nutanix, Inc. | Workload scheduling across heterogeneous resource environments |
CN109889480A (zh) * | 2018-12-25 | 2019-06-14 | 武汉烽火信息集成技术有限公司 | 基于容器和云平台的全国产化融合云平台管理方法及系统 |
CN112540844A (zh) * | 2019-09-20 | 2021-03-23 | 北京京东尚科信息技术有限公司 | 集群内容器调度方法、装置、存储介质和电子设备 |
US20210365290A1 (en) * | 2020-04-16 | 2021-11-25 | Nanjing University Of Posts And Telecommunications | Multidimensional resource scheduling method in kubernetes cluster architecture system |
CN112217676A (zh) * | 2020-10-13 | 2021-01-12 | 北京工业大学 | 一种基于混合元启发式算法的Kubernetes容器集群节点选取方法 |
CN112433819A (zh) * | 2020-11-30 | 2021-03-02 | 中国科学院深圳先进技术研究院 | 异构集群调度的模拟方法、装置、计算机设备及存储介质 |
CN114625493A (zh) * | 2020-12-14 | 2022-06-14 | 中国石油大学(华东) | 基于改进天牛须智能方法的Kubernetes集群资源调度方法 |
US20220413985A1 (en) * | 2021-06-29 | 2022-12-29 | International Business Machines Corporation | Optimizing cpu requests and limits for a pod based on benchmarked hardware |
CN113900773A (zh) * | 2021-10-25 | 2022-01-07 | 北京计算机技术及应用研究所 | 一种基于国产平台虚拟机和容器的超融合调度方法 |
CN114138486A (zh) * | 2021-12-02 | 2022-03-04 | 中国人民解放军国防科技大学 | 面向云边异构环境的容器化微服务编排方法、系统及介质 |
CN114721719A (zh) * | 2022-04-20 | 2022-07-08 | 上海道客网络科技有限公司 | 一种在集群中容器化部署异构应用的方法和系统 |
CN114756374A (zh) * | 2022-04-30 | 2022-07-15 | 苏州浪潮智能科技有限公司 | 一种异构cpu调度的方法、装置、设备及介质 |
CN115543547A (zh) * | 2022-11-30 | 2022-12-30 | 北京太极信息系统技术有限公司 | 一种异构虚拟化平台中虚拟机的迁移方法及系统 |
Non-Patent Citations (2)
Title |
---|
卢林通: "基于异构计算平台的容器调度和部署研究", 《中国优秀硕士学位论文全文数据库(信息科技辑)》, no. 2022, pages 139 - 366 * |
彭丽苹;吕晓丹;蒋朝惠;彭成辉;: "基于Docker的云资源弹性调度策略", 计算机应用, no. 02, pages 557 - 562 * |
Also Published As
Publication number | Publication date |
---|---|
CN116170518B (zh) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022262167A1 (zh) | 集群资源调度方法及装置、电子设备和存储介质 | |
US20200117508A1 (en) | Determining an allocation of computing resources for a job | |
CN103858099B (zh) | 用于执行应用的方法和系统、具有机器指令的电路 | |
CN110704186A (zh) | 基于混合分布架构的计算资源分配方法、装置和存储介质 | |
US10187452B2 (en) | Hierarchical dynamic scheduling | |
KR20220006490A (ko) | 워크로드 동적 자원 배치 및 최적화 수행관리를 위한 하이브리드 클라우드 자원 배분 방법 | |
Tang et al. | A container based edge offloading framework for autonomous driving | |
CN112465146B (zh) | 一种量子与经典混合云平台以及任务执行方法 | |
US7389506B1 (en) | Selecting processor configuration based on thread usage in a multiprocessor system | |
EP3997571A1 (en) | Orchestration and scheduling of services | |
CN107864211B (zh) | 集群资源调度方法及系统 | |
CN111158855B (zh) | 一种基于微容器及云函数的轻量虚拟化裁剪方法 | |
CN113645300A (zh) | 一种基于Kubernetes集群的节点智能调度方法和系统 | |
US11042640B2 (en) | Safe-operation-constrained reinforcement-learning-based application manager | |
Rejiba et al. | Custom scheduling in kubernetes: A survey on common problems and solution approaches | |
CN111399970A (zh) | 一种预留资源管理方法、装置和存储介质 | |
CN111459684A (zh) | 面向多处理器架构的云计算资源融合调度管理方法、系统及介质 | |
CN113535321A (zh) | 虚拟化容器管理方法、系统和存储介质 | |
Harichane et al. | A proposal of kubernetes scheduler using machine-learning on cpu/gpu cluster | |
US20070239851A1 (en) | Process Restart on a Compute Node | |
US20210390405A1 (en) | Microservice-based training systems in heterogeneous graphic processor unit (gpu) cluster and operating method thereof | |
CN116170518B (zh) | 一种国产芯片容器云跨架构管理的方法及设备 | |
Sabouri et al. | Scheduling and analysis of real-time software families | |
CN114816665B (zh) | 混合编排系统及超融合架构下虚拟机容器资源混合编排方法 | |
CN109558214B (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 |