CN114637576A - 用于生成容器分配方案的方法及装置 - Google Patents

用于生成容器分配方案的方法及装置 Download PDF

Info

Publication number
CN114637576A
CN114637576A CN202210285711.2A CN202210285711A CN114637576A CN 114637576 A CN114637576 A CN 114637576A CN 202210285711 A CN202210285711 A CN 202210285711A CN 114637576 A CN114637576 A CN 114637576A
Authority
CN
China
Prior art keywords
scheme
pod
node
allocation
distribution
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.)
Pending
Application number
CN202210285711.2A
Other languages
English (en)
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.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information 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 Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN202210285711.2A priority Critical patent/CN114637576A/zh
Publication of CN114637576A publication Critical patent/CN114637576A/zh
Pending legal-status Critical Current

Links

Images

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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing

Abstract

本说明书实施例提供了用于生成容器分配方案的方法及装置。在该方法中,根据各个节点中当前已分配的Pod生成待调整分配方案,按照以下方式执行第一分配算法:根据各个节点的可用资源对各个节点进行排序;根据节点序列对各个节点中的部分Pod进行迁移,以得到局部最优分配方案;将局部最优分配方案与当前最优分配方案进行比较,以确定出新的当前最优分配方案;在当前迭代次数未达到指定次数阈值时,将新的当前最优分配方案作为下一轮的当前最优分配方案,以及根据当前分配重置度对当前初始分配方案中所分配的Pod进行分配重置,以生成新分配方案,并作为下一轮的当前初始分配方案;以及在当前迭代次数达到指定次数阈值时,输出当前最优分配方案。

Description

用于生成容器分配方案的方法及装置
技术领域
本说明书实施例涉及计算机技术领域,具体地,涉及用于生成容器分配方案的方法及装置。
背景技术
容器化技术是通过虚拟出一个小规模的环境(即容器)以用于技术人员的开发,每个容器中都单独地划分有资源,以用于容器中的应用程序运行。通过各个孤立的容器可以平衡资源使用需求。例如,被广泛使用的Docker,是一个应用容器引擎,能够提供容器和镜像。
各个容器需要部署在由物理机构成的节点上,且各个容器的资源也来自于所在节点的资源。因此,针对容器在各个节点上的分配会影响节点的资源消耗及成本。因此,如何根据分配评价指标进行容器编排以生成优化的分配方案是亟待解决的问题。
发明内容
鉴于上述,本说明书实施例提供了用于生成容器分配方案的方法及装置。在本说明书实施例提供的技术方案中,通过每轮迭代能够生成局部最优分配方案,以及通过分配重置的方式使得在每轮迭代中使用不同的初始分配方案,从而能够实现探索更多的解空间,得到在全局范围内的优化分配方案。
根据本说明书实施例的一个方面,提供了一种用于生成容器分配方案的方法,包括:
根据各个节点中当前已分配的Pod生成待调整分配方案,其中,所述待调整分配方案包括所述各个节点与各个Pod之间的已分配关系,每个Pod包括至少一个容器;将所述待调整分配方案作为初始分配方案按照以下方式执行第一分配算法:根据当前初始分配方案中的所述各个节点具有的可用资源对所述各个节点进行排序,以得到节点序列;根据所述节点序列对所述各个节点中的部分Pod进行迁移,以得到基于分配评价指标的局部最优分配方案,所述部分Pod由所述节点序列和所述分配评价指标所确定;将所述局部最优分配方案与当前最优分配方案进行比较,以确定出新的当前最优分配方案,其中,用于比较的当前最优分配方案是从所述待调整分配方案以及已执行的迭代过程所生成的局部最优分配方案中所确定出来的;在当前迭代次数未达到指定次数阈值时,将所确定出的新的当前最优分配方案作为下一轮的当前最优分配方案,以及根据当前分配重置度对所述当前初始分配方案中所分配的Pod进行分配重置,以生成新分配方案,并作为下一轮的当前初始分配方案,其中,所生成的新分配方案不同于已执行的各个迭代过程中所使用的初始分配方案;以及在当前迭代次数达到所述指定次数阈值时,输出当前最优分配方案。
根据本说明书实施例的另一方面,还提供一种用于生成容器分配方案的装置,包括:待调整分配方案生成单元,根据各个节点中当前已分配的Pod生成待调整分配方案,其中,所述待调整分配方案包括所述各个节点与各个Pod之间的已分配关系,每个Pod包括至少一个容器;节点排序单元,根据当前初始分配方案中的所述各个节点具有的可用资源对所述各个节点进行排序,以得到节点序列;Pod迁移单元,根据所述节点序列对所述各个节点中的部分Pod进行迁移,以得到基于分配评价指标的局部最优分配方案,所述部分Pod由所述节点序列和所述分配评价指标所确定;第一方案比较单元,将所述局部最优分配方案与当前最优分配方案进行比较,以确定出新的当前最优分配方案,其中,用于比较的当前最优分配方案是从所述待调整分配方案以及已执行的迭代过程所生成的局部最优分配方案中所确定出来的;下一轮方案确定单元,在当前迭代次数未达到所述指定次数阈值时,将所确定出的新的当前最优分配方案作为下一轮的当前最优分配方案,以及根据当前分配重置度对所述当前初始分配方案中所分配的Pod进行分配重置,以生成新分配方案,并作为下一轮的当前初始分配方案,其中,所生成的新分配方案不同于已执行的各个迭代过程中所使用的初始分配方案;以及第一方案输出单元,在当前迭代次数达到指定次数阈值时,输出当前最优分配方案,其中,所述下一轮方案确定单元执行完成时,触发所述节点排序单元执行操作。
根据本说明书实施例的另一方面,还提供一种电子设备,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器上的计算机程序,所述至少一个处理器执行所述计算机程序来实现如上述任一所述的用于生成容器分配方案的方法。
根据本说明书实施例的另一方面,还提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的用于生成容器分配方案的方法。
根据本说明书实施例的另一方面,还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上任一所述的用于生成容器分配方案的方法。
附图说明
通过参照下面的附图,可以实现对于本说明书实施例内容的本质和优点的进一步理解。在附图中,类似组件或特征可以具有相同的附图标记。
图1示出了图1示出了根据本说明书实施例提供的用于生成容器分配方案的方法的一个示例的流程图。
图2示出了根据本说明书实施例的对部分Pod进行迁移得到局部最优分配方案的一个示例的流程图。
图3示出了根据本说明书实施例的对部分Pod进行迁移得到局部最优分配方案的另一个示例的流程图。
图4示出了根据本说明书的另一实施例的使用多个第一分配算法来生成容器分配方案的方法的一个示例的流程图。
图5示出了根据本说明书实施例的用于对待使用初始分配方案进行相似度检测的方法的一个示例的流程图。
图6示出了根据本说明书实施例的初始分配方案转换成矩阵的一个示例的示意图。
图7示出了根据本说明书实施例的用于基于输出的分配方案来生成迁移方案的方法的一个示例的流程图。
图8示出了根据本说明书实施例的迁移环状的一个示例的示意图。
图9示出了根据本说明书实施例的用于生成容器分配方案的装置的一个示例的方框图。
图10示出了根据本说明书实施例的容器分配方案生成装置的另一个示例的方框图。
图11示出了本说明书实施例的用于实现容器分配方案生成方法的电子设备的方框图。
具体实施方式
以下将参考示例实施方式讨论本文描述的主题。应该理解,讨论这些实施方式只是为了使得本领域技术人员能够更好地理解从而实现本文描述的主题,并非是对权利要求书中所阐述的保护范围、适用性或者示例的限制。可以在不脱离本说明书实施例内容的保护范围的情况下,对所讨论的元素的功能和排列进行改变。各个示例可以根据需要,省略、替代或者添加各种过程或组件。另外,相对一些示例所描述的特征在其它例子中也可以进行组合。
如本文中使用的,术语“包括”及其变型表示开放的术语,含义是“包括但不限于”。术语“基于”表示“至少部分地基于”。术语“一个实施例”和“一实施例”表示“至少一个实施例”。术语“另一个实施例”表示“至少一个其他实施例”。术语“第一”、“第二”等可以指代不同的或相同的对象。下面可以包括其他的定义,无论是明确的还是隐含的。除非上下文中明确地指明,否则一个术语的定义在整个说明书中是一致的。
容器化技术是通过虚拟出一个小规模的环境(即容器)以用于技术人员的开发,每个容器中都单独地划分有资源,以用于容器中的应用程序运行。通过各个孤立的容器可以平衡资源使用需求。例如,被广泛使用的Docker,是一个应用容器引擎,能够提供容器和镜像。
各个容器需要部署在由物理机构成的节点上,且各个容器的资源也来自于所在节点的资源。因此,针对容器在各个节点上的分配会影响节点的资源消耗及成本。因此,如何根据分配评价指标进行容器编排以生成优化的分配方案是亟待解决的问题。
鉴于上述,本说明书实施例提供了用于生成容器分配方案的方法及装置。在该方法中,根据各个节点中当前已分配的Pod生成待调整分配方案,将待调整分配方案作为初始分配方案按照以下方式执行第一分配算法:根据当前初始分配方案中的各个节点具有的可用资源对各个节点进行排序,以得到节点序列;根据节点序列对各个节点中的部分Pod进行迁移,以得到针对分配评价指标的局部最优分配方案;将局部最优分配方案与当前最优分配方案进行比较,以确定出新的当前最优分配方案;在当前迭代次数未达到指定次数阈值时,将所确定出的新的当前最优分配方案作为下一轮的当前最优分配方案,以及根据当前分配重置度对当前初始分配方案中所分配的Pod进行分配重置,以生成新分配方案,并作为下一轮的当前初始分配方案;以及在当前迭代次数达到指定次数阈值时,输出当前最优分配方案。在本说明书实施例提供的技术方案中,通过每轮迭代能够生成局部最优分配方案,以及通过分配重置的方式使得在每轮迭代中使用不同的初始分配方案,从而能够实现探索更多的解空间,得到在全局范围内的优化分配方案。
下面结合附图对本说明书实施例提供的用于生成容器分配方案的方法及装置进行详细说明。
本说明书实施例提供的用于生成容器分配方案的方法可以由用于对容器进行管理的系统集群来执行,该系统集群可以包括若干节点,该若干节点中可以包括工作负载节点和集群控制节点,其中,集群控制节点可以用于对容器所部署的节点进行管理和控制,工作负载节点可以用于部署容器。在一个示例中,作为本说明书实施例的执行主体的系统集群可以包括Kubernetes。
图1示出了根据本说明书实施例提供的用于生成容器分配方案的方法的一个示例100的流程图。
如图1所示,在1100,根据各个节点中当前已分配的Pod生成待调整分配方案。
Pod是一组容器的集合,每个Pod可以包括至少一个容器,Pod是最小的部署单元。基于此,在本说明书实施例中,对容器进行编排可以通过对Pod进行编排来实现,Pod可以挂载在不同的节点上。当一个Pod挂载在一个节点上,则该Pod中的各个容器需要占用该节点上的资源,从而各个节点为挂载在该节点上的各个Pod中的容器分配资源,以支持各个容器正常运行。
在本说明书实施例中,在执行生成容器分配方案前,各个Pod已被分配并部署在各个节点中。从而,可以遍历各个节点中已分配的Pod,将所遍历到的所有节点中的Pod部署信息进行聚合,以形成各个节点与各个Pod之间的已分配方案,该已分配方案即为待调整分配方案。待调整分配方案可以包括各个节点与各个Pod之间的已分配关系,每个节点可以被分配有一个或多个Pod,还可以未被分配Pod。
此外,通过遍历可以确定各个Pod所占用的资源以及各个节点的总资源,从而进一步地可以计算出基于当前Pod的分配情况各个节点的可用资源。从而,待调整分配方案还可以包括各个节点的可用资源。在一个示例中,节点的可用资源可以包括CPU资源、内存资源和硬盘资源等,其中,CPU资源可以包括CPU核数等。
在1200,根据当前初始分配方案中的各个节点所具有的可用资源对各个节点进行排序,以得到节点序列。
在本说明书实施例中,第一分配算法用于根据探索到的解空间得到所探索到的最优分配方案,第一分配算法的执行过程包括多次迭代过程,每次迭代过程可以包括本说明书实施例中的1200至1700的操作。第一分配算法中的不同的迭代过程所使用的当前初始分配方案不同,迭代过程中所使用的当前初始分配方案可以是待调整分配方案,例如,在第一分配算法的首次迭代过程中,所使用的当前初始分配方案可以是待调整分配方案。此外,迭代过程中所使用的当前初始分配方案还可以是除待调整分配方案以外的其他分配方案,该其他分配方案可以由待调整分配方案或者前一迭代过程中所使用的初始分配方案经过Pod分配重置后生成,所生成的该其他分配方案与执行Pod分配重置前的分配方案不同。因此,当前初始分配方案可以是待调整分配方案,还可以是经过Pod分配重置后所生成的分配方案。
在本说明书实施例中,节点序列可以按照各个节点的可用资源从少到多的顺序对各个节点进行排序得到,还可以按照各个节点的可用资源从多到少的顺序对各个节点进行排序得到。
在第一分配算法中的每个迭代过程中,所使用的当前初始分配方案不同,不同的初始分配方案中的各个节点的可用资源量可以不同,从而对应地得到的节点序列可以不同。因此,在每个迭代过程中,需要对该迭代过程中使用的当前初始分配方案中的各个节点进行排序得到节点序列。
在1300,可以根据节点序列对各个节点中的部分Pod进行迁移,以得到针对分配评价指标的局部最优分配方案。
在本说明书实施例中,分配评价指标可以用作对Pod在节点上的分配方案进行优劣评价的指标,分配评价指标可以包括Pod所占用的节点数、节点的负载均衡等,从而根据分配评价指标的不同,可以从不同角度对分配方案进行评价。例如,分配评价指标是Pod所占用的节点数时,Pod占用的节点数越少,则可以认为分配方案越好。因此,从Pod所占用的节点数的角度来说,分配方案中Pod占用的节点数越少越好,相应地评价也越高。
在一个示例中,对于用户来说,可以根据需求采用不同的分配评价指标来对所得到的各个分配方案进行评价,从而最终可以得到基于该分配评价指标的优化分配方案。基于分配评价指标的优化分配方案是指该优化分配方案在该分配评价指标上的评价较好,从该分配评价指标的角度上可以确定该分配方案是优化方案,甚至是当前最优方案或者局部最优方案。
在本说明书实施例中,待迁移的部分Pod可以由节点序列和分配评价指标所确定。对于不同的分配评价指标,可以按照节点序列的不同顺序来确定待迁移的部分Pod。例如,当分配评价指标是Pod所占用的节点数时,可以按照节点序列中各个节点的可用资源从多到少的顺序来从各个节点中确定待迁移的部分Pod。当分配评价指标是节点的负载均衡时,可以按照节点序列中各个节点的可用资源从少到多的顺序来从各个节点中确定待迁移的部分Pod。
部分Pod的迁移是在当前初始分配方案的基础上执行的。在当前初始分配方案的基础上,对部分Pod进行迁移,直至在分配评价指标上无法进一步地优化,此时所生成的分配方案是针对该分配评价指标的局部最优分配方案。在一个示例中,当分配评价指标是Pod所占用的节点数时,在部分Pod进行迁移后,无法再进一步地减少所占用的节点数,则此时所生成的分配方案是基于该分配评价指标的局部最优分配方案,即,当前所能够探索到的占用节点数最少的局部最优分配方案。
局部最优分配方案是在当前初始分配方案的基础上所得到的,该局部最优分配方案仅是针对当前初始分配方案的最优解,而对于其他初始分配方案可能并不是最优解,因此,此时得到的最优分配方案仅仅是针对当前初始分配方案的局部最优解。
图2示出了根据本说明书实施例的对部分Pod进行迁移得到局部最优分配方案的一个示例200的流程图。在该示例中,所采用的分配评价指标可以包括Pod所占用的节点数。
如图2所示,在1311,可以按照节点序列中各个节点的可用资源从多到少的第一顺序依次选取Pod作为待迁移Pod。
在该示例中,每次可以仅选取一个Pod作为待迁移Pod,所选取的Pod可以是当前节点序列中分配有Pod且可用存储资源最多的目标节点中的Pod。当目标节点中分配有多个Pod时,可以采用随机方式选取一个Pod作为待迁移Pod,还可以选取所需资源最多的一个Pod作为待迁移Pod。这样可以按照所需资源从多到少的顺序来分配各个Pod,以使得具有固定资源量的各个节点中所分配的Pod更多,且各个Pod之间分布更紧凑,从而实现所占用的节点数更少。
在每次获取待迁移Pod后,可以保持节点序列不变,仅更新该节点序列中各个节点的可用资源,以使得下一次的待迁移Pod仍然按照该节点序列中的第一顺序来选取。
在1313,可以按照节点序列中各个节点的可用资源从少到多的第二顺序以及各个节点的可用资源来确定为待迁移Pod分配的节点。
在该示例中,按照各个节点的可用资源从少到多的第二顺序,根据各个节点的可用资源将各个节点依次与待迁移Pod进行匹配,直至确定出一个可用资源不小于待迁移Pod的所需资源的节点,该节点被确定是为该待迁移Pod分配的节点。
通过上述方式为各个待迁移Pod分配节点,可以优先分配可用资源少的节点,提高节点的利用率,从而减少Pod占用节点的数量。
在1315,判断为待迁移Pod重新分配后得到的新分配方案是否达到基于分配评价指标的局部最优。如果否,则可以执行1317的操作;如果是,则可以执行1319的操作。
在判断局部最优的一种方式中,判断在为待迁移Pod重新分配后的分配方案中是否还存在可移动的Pod能够使得占用的节点数减少,若存在,表示通过迁移该Pod能够使得占用的节点数进一步地减少,此时可以确定在Pod占用节点数的分配评价指标上还未达到局部最优。若不存在,则可以确定当前为待迁移Pod重新分配后的分配方案在Pod占用节点数的分配评价指标上达到局部最优。
在判断局部最优的另一种方式中,判断在为待迁移Pod重新分配后的分配方案中是否还存在可移动的Pod能够使得占用的节点数减少或者能够使得Pod在所占用的各个节点中分布更紧凑。在该方式中,首先判断是否能够使得占用的节点数减少,具体可以采用上述方式进行判断。在占用的节点数不能进一步地减少的基础上,可以继续判断是否能够通过移动部分Pod使得所有Pod在所占用的各个节点中分布更紧凑,如果是,则执行1317的操作;如果否,则执行1319的操作。
在该方式中,分布更紧凑可以是各个Pod优先地且尽量地分配在节点序列中按照第二顺序排在靠前的节点中。每个分配有Pod的节点中的Pod无法再分配至排在该节点之前的各个节点中,此时可以认为Pod在节点中的分布达到紧凑。
在1317,可以更新各个节点的可用资源,并返回执行1311的操作。
在确定为待迁移Pod分配的节点(可以称为目的节点)后,若对待迁移Pod进行迁移,目的节点以及该待迁移Pod的起始节点的可用资源均会变化,从而可以对节点序列中的节点的可用资源进行更新。在一个示例中,针对Pod的迁移,可以通过模拟迁移的方式来执行迁移操作。在对待迁移Pod进行模拟迁移后,可以根据模拟迁移后的各个节点中的Pod部署状态,计算并更新各个节点的可用资源。
在1319,将所得到的新分配方案作为局部最优分配方案输出。
图3示出了根据本说明书实施例的对部分Pod进行迁移得到局部最优分配方案的另一个示例300的流程图。在该示例中,所采用的分配评价指标可以包括各个节点的负载均衡。
如图3所示,在1321,可以按照当前节点序列中各个节点的可用资源从少到多的第二顺序依次选取Pod作为待迁移Pod。
在该示例中,为了确保各个节点的负载均衡,可以将各个Pod尽可能均匀地分配给各个节点。因此,可以优先迁移可用资源相对较少的节点上的Pod,将其迁移至可用资源相对较多的节点上。基于此,每次选取待迁移Pod时,可以按照可用资源从少到多的第二顺序来依次选取。
每次可以仅选取一个Pod作为待迁移Pod,所选取的Pod可以是当前节点序列中分配有Pod且可用存储资源最少的目标节点中的Pod。当目标节点中分配有多个Pod时,可以采用随机方式选取一个Pod作为待迁移Pod。
在该示例中,可以执行多轮Pod迁移,每轮可以对一个或多个Pod进行迁移。每一轮中所使用的当前节点序列是根据各个节点当前的可用资源经过排序得到的,因此,不同轮次中所使用得到当前节点序列可以不同。例如,在首轮中所使用的当前节点序列可以是第一分配算法中根据当前初始分配方案所得到的节点序列。经过首轮中的Pod迁移后,节点的可用资源发生变化,从而可以导致节点序列发生变化,进而在后续轮次中所使用的当前节点序列与首轮中所使用的当前节点序列不同。
在1323,可以按照当前节点序列中各个节点的可用资源从多到少的第一顺序来确定为待迁移Pod分配的节点。
在该示例中,在当前节点序列中,按照可用资源从多到少的第一顺序,排在第一位的节点的可用资源最多,从而可以将该排在第一位的节点确定为待迁移Pod分配的节点。
在该示例中,为待迁移Pod分配可用资源最多的节点,通过对该待迁移Pod进行迁移,可以为可用资源最多的节点增加负载,为可用资源最少的节点减少负载,从而使得各个节点的负载相较于迁移前更均衡。
在1325,判断为待迁移Pod重新分配后得到的新分配方案是否达到基于分配评价指标的局部最优。如果否,则可以执行1327的操作;如果是,则可以执行1329的操作。
在判断局部最优的一种方式中,可以用负载均衡度来度量各个节点的负载均衡,负载均衡度越小表示各个节点之间的负载越均衡,负载均衡度越大表示各个节点之间的负载越不均衡。当负载均衡度达到对当前新分配方案中的Pod进行迁移也不能使得该负载均衡度继续减小时,则可以判定在负载均衡的分配评价指标上该新分配方案达到局部最优。当通过对当前新分配方案中的Pod继续迁移使得负载均衡度能够继续减小时,则可以判定在负载均衡的分配评价指标上该新分配方案未达到局部最优。
在一个示例中,可以用损失函数来表征各个节点的负载均衡度,从而可以通过损失函数来计算对应的负载均衡度。损失函数可以如下所示:
Figure BDA0003558134720000091
其中,n表示Pod的数量,m表示节点的数量,i为不大于n的正整数,j为不大于m的正整数。Xij表示第i个Pod是否在第j个节点上,如果是,则Xij为1,如果否,则Xij为0。PCPUi表示第i个Pod所需的资源占所有节点的资源总量的百分比,pmean表示理想条件下最平均的百分比水位,pmean可以通过用所有Pod所需的资源总和除以所有节点的资源总量得到。
在1327,可以更新各个节点的可用资源,以及可以按照更新后的可用资源对各个节点重新进行排序,以得到新的节点序列,并作为下一轮中的当前节点序列,并返回执行1321的操作。
在该示例中,为待迁移Pod所分配的节点由当前节点序列中的可用资源最少的节点变更为当前节点序列中的可用资源最多的节点,导致该两个节点的可用资源发生变化,从而可以更新该两个节点在该待迁移Pod进行迁移后的可用资源。
此外,由于各个节点中存在可用资源变化的节点,导致各个节点按照可用资源的排序会发生变化。因此,可以按照更新后的可用资源对各个节点重新进行排序,以得到新的节点序列,并作为下一轮中的当前节点序列。接着,执行下一轮对Pod进行迁移的操作。
在1329,将所得到的新分配方案作为局部最优分配方案输出。
回到图1,在1400,可以将所得到的局部最优分配方案与当前最优分配方案进行比较,以确定出新的当前最优分配方案。
在本说明书实施例中,用于比较的当前最优分配方案可以是从待调整分配方案以及已执行的迭代过程所生成的局部最优分配方案中所确定出来的。在每一轮迭代过程中,可以确定出一个当前最优分配方案,并将该当前最优分配方案进行记录,以用于在下一轮中基于分配评价指标方面所执行的比较操作。
例如,在首轮迭代过程中用于比较的当前最优分配方案可以是待调整分配方案;在第二轮迭代过程中用于比较的当前最优分配方案可以是待调整分配方案与首轮得到的局部最优分配方案中的较优的一个方案,以此类推。
例如,分配评价指标包括Pod所占用的节点数,则比较所得到的局部最优分配方案与当前最优分配方案中所占用的节点数,所占用的节点数少的分配方案可以被确定为新的当前最优分配方案。
在1500,可以判断当前迭代次数是否达到指定次数阈值。如果否,则可以执行1600的操作;如果是,则可以执行1800的操作。
在1600,将所确定出的新的当前最优分配方案作为下一轮的当前最优分配方案,以用于在下一轮中作为其中一个比较对象基于分配评价指标进行比较。
在1700,根据当前分配重置度对当前初始分配方案中所分配的Pod进行分配重置,以生成新分配方案,并作为下一轮的当前初始分配方案。
在本说明书实施例中,分配重置度可以表示对分配方案中的Pod分配进行重置的比例,分配重置度越高,则对Pod进行重置分配的比例越高。分配重置度可以用数值或者百分比等来表示,当分配重置度用数值来表示时,所表示的数值是不大于节点总数的正整数,该数值用于表示需要分配重置的节点数。例如,节点总数为20,分配重置度为5,则表示需要对20个节点中的5个节点中分配的Pod进行分配重置。当分配重置度用百分比来表示时,则需要分配重置的节点数可以根据分配重置度与节点总数的乘积来确定。
在根据分配重置度确定待重置的节点数量后,可以以随机方式从各个节点中确定出待重置的节点。
在分配重置的一种方式中,可以将待重置的节点中所分配的所有Pod再重新分配给其他节点,该其他节点包括除待重置的节点以外的节点。在分配重置的另一种方式中,可以将待重置的节点中所分配的所有Pod再在所有节点中进行重新分配。在上述两种方式中,重新分配的方式可以包括以随机方式重新分配,还可以包括按照指定规则进行重新分配,比如,指定规则可以包括平均分配、按序分配等。
在一个示例中,无论采取哪种分配重置方式,所生成的新分配方案不同于已执行的各个迭代过程中所使用的初始分配方案。
通过对每一轮迭代中的当前初始分配方案进行分配重置,以确保每一轮迭代中所使用的初始分配方案各不相同。从而,通过分配重置能够跳出局部解空间,避免仅得到局部最优分配方案。每一个不同的初始分配方案相当于不同的解空间,通过分配重置得到更多的不同的初始分配方案,实现探索更多的解空间,从而实现在全局范围内搜索得到优化分配方案,相比于局部最优分配方案来说更接近于全局最优解,并且还能够提高得到全局最优解的可能性。
在一个示例中,在利用当前分配重置度进行分配重置后,可以对当前分配重置度进行更新以生成新的分配重置度,并作为下一轮迭代过程中的当前分配重置度。
在该示例中,所生成的新的分配重置度与更新之前的分配重置度不同。在更新的一种方式中,可以将当前分配重置度变更成其他数值或者百分比所表示的分配重置度。在更新的另一种方式中,可以减小当前分配重置度的数值或百分比。在该方式中,每次更新分配重置度都以减小的方式来更新,确保了每轮迭代所使用的当前分配重置度不同,并且,可以确保每次根据当前分配重置度所生成的新分配方案与已执行的各个迭代中所使用的初始分配方案不同,进而增加了所探索的解空间的数量。
需要说明的是,本说明书实施例可以不限定1600和1700的操作执行顺序,既可以先执行1600的操作,再执行1700的操作;也可以先执行1700的操作,再执行1600的操作;还可以同时执行1600和1700的操作。
在1800,可以输出当前最优分配方案。
所输出的当前最优分配方案是待调整分配方案以及多轮迭代过程所生成的多个局部最优分配方案中的最优分配方案。
在本说明书实施例提供的技术方案中,通过每轮迭代能够生成对应的局部最优分配方案,以及通过分配重置的方式使得在每轮迭代中使用不同的初始分配方案,从而能够实现探索更多的解空间,实现在全局范围内得到优化分配方案。
图4示出了根据本说明书的另一实施例的使用多个第一分配算法来生成容器分配方案的方法的一个示例400的流程图。
如图4所示,在4100,根据各个节点中当前已分配的Pod生成待调整分配方案。
在该实施例中,4100的操作与上述图1中的1100的操作相同,4100的操作可以参照上述1100的说明。
在4200,可以使用多个第一分配算法分别输出各自所得到的当前最优分配方案。
在该实施例中,各个第一分配算法相互之间可以独立运行,多个第一分配算法可以采用并行执行方式,通过并行执行,可以提高方案的执行效率。
对于每个第一分配算法,可以按照上述图1所示的1200至1700的操作来执行,从而每个第一分配算法的执行过程可以参照上述1200至1700的操作。每个第一分配算法均可以输出所得到的当前最优分配方案,每个第一分配算法所输出的当前最优分配方案是该第一分配算法所探索的解空间中能够得到的最优分配方案。
在该实施例中,每个第一分配算法在每一次迭代过程中所使用的初始分配方案各不相同,从而可以确保每个第一分配算法在每一次迭代过程中所探索的解空间各不同,从而可以提高所探索的解空间的数量,进而使得最终输出的分配方案是基于更多解空间的最优分配方案,该最优分配方案也更接近于全局最优解。
为了确保每个第一分配算法在每一次迭代过程中所使用的初始分配方案各不相同,在所使用的每个第一分配算法中的每个迭代过程中,在使用初始分配方案前,可以检测待使用初始分配方案是否与在各个第一分配算法中已执行的迭代过程中所使用的初始分配方案相同。若相同,则需要对该待使用初始分配方案进行分配重置,若不相同,则可以使用该待使用初始分配方案来执行迭代过程。
图5示出了根据本说明书实施例的用于对待使用初始分配方案进行相似度检测的方法的一个示例500的流程图。
如图5所示,在4210,在所使用的每个第一分配算法中的每个迭代过程中,在使用初始分配方案前,可以将待使用初始分配方案与在各个第一分配算法中已执行的迭代过程中所使用的初始分配方案进行相似度比较。
在该示例中,可以记录各个第一分配算法中已执行的迭代过程中所使用的初始分配方案,以便在后续过程中作为比较对象进行相似度比较。每个迭代过程中的待使用初始分配方案可以是该迭代过程中的当前初始分配方案在使用之前的初始分配方案,该待使用初始分配方案被确定可以使用后即成为该迭代过程中的当前初始分配方案。
在使用初始分配方案前,待使用初始分配方案可以与每个已使用的初始分配方案分别进行相似度比较,所得到的相似度可以表示作为比较对象的两个分配方案之间的相似程度,相似度越高表示作为比较对象的两个分配方案越相似,甚至相同。
在本说明书实施例的一个示例中,针对作为相似度比较对象的各个初始分配方案,可以将该各个初始分配方案转换成对应的矩阵。其中,每次相似度比较的对象可以包括待使用初始分配方案和其中一个已使用的初始分配方案。
每个矩阵中的行数和列数可以由所对应的初始分配方案中的Pod数和节点数确定。在一种确定方式中,行数等于对应的初始分配方案中的Pod数,列数等于对应的初始分配方案中的节点数。矩阵中的每一行可以表示一个Pod,每一列可以表示一个节点。在另一种确定方式中,行数等于对应的初始分配方案中的节点数,列数等于对应的初始分配方案中的Pod数。矩阵中的每一行可以表示一个节点,每一列可以表示一个Pod。
在该示例中,矩阵可以由0和1构成,1表示对应的Pod分配在对应的节点中,0表示对应的Pod未分配在对应的节点中。在具体的矩阵转换过程中,矩阵中的每个元素对应有一个行序号和列序号,从而可以确定出矩阵中的每个元素对应的Pod和节点。当在该矩阵对应的初始分配方案中,该元素对应的Pod分配在该元素对应的节点中,则可以将该元素设置为1。当该元素对应的Pod未分配在该元素对应的节点时,则可以将该元素设置为0。
图6示出了根据本说明书实施例的初始分配方案转换成矩阵的一个示例的示意图。
如图6所示,在待转换的初始分配方案中,包括有4个节点:Node1、Node2、Node3和Node4,以及6个Pod:Pod1、Pod2、Pod3、Pod4、Pod5和Pod6,则对应转换的矩阵为4行6列的矩阵,每一行表示一个对应的节点,每一列表示一个对应的Pod。针对矩阵中的每个元素,在初始分配方案中确定该元素对应的Pod是否在对应的节点中,若在节点中,则可以将该元素设置为1。若不在节点中,则可以将该元素设置为0。比如,第一行第一列的元素对应的节点是Node1,对应的Pod是Pod1,在初始分配方案中,Pod1被分配在Node1中,则可以将该元素设置为1。按照上述方式设置每个元素,最终得到的转换矩阵如图6所示。
在得到作为相似度比较对象的各个初始分配方案对应的矩阵后,可以根据待使用初始分配方案对应的矩阵与已使用的各个初始分配方案对应的矩阵来计算该待使用初始分配方案与已使用的各个初始分配方案之间的相似度。
每一次相似度比较可以在待使用初始分配方案和其中一个已使用的初始分配方案之间进行,可以将作为比较对象的其中一个分配方案对应的矩阵进行转置,得到对应的转置矩阵,并将该转置矩阵与作为比较对象的另一个分配方案对应的矩阵相乘,得到两个分配方案之间的相似度。
回到图5,在4220,判断经过比较所得到的相似度是否达到指定相似度阈值。如果相似度达到指定相似度阈值,则表示作为比较对象的已使用的初始分配方案与该待使用初始分配方案相同,此时可以执行4230的操作。如果相似度未达到指定相似度阈值,则表示作为比较对象的已使用的初始分配方案与该待使用初始分配方案不同,则执行4240的操作。
在该实施例中,指定相似度阈值可以用来区分两个矩阵对应的初始分配方案相同或不同,相似度大于指定相似度阈值,可以认为作为比较对象的两个矩阵对应的初始分配方案相同;相似度不大于指定相似度阈值,可以认为作为比较对象的两个矩阵对应的初始分配方案不相同。
在4230,对待使用初始分配方案中的Pod进行分配重置,以生成新的分配方案,并作为该迭代过程中的待使用初始分配方案,再返回执行4210的操作。
在4240,将待使用初始分配方案作为对应迭代过程中的当前初始分配方案来执行该迭代过程。
在本说明书实施例的一个示例中,针对所使用的多个第一分配算法,该多个第一分配算法中的其中一个第一分配算法的首轮迭代过程中所使用的初始分配方案是待调整分配方案,其他第一分配算法中的首轮迭代过程中所使用的初始分配方案是待调整分配方案经过分配重置后的分配方案。
在该示例中,首轮迭代过程使用待调整分配方案的第一分配算法可以是多个第一分配算法中的任一个第一分配算法,该任一个第一分配算法可以指定。
在该示例中,被指定的其中一个第一分配算法在接收到待调整分配方案时,可以直接将该待调整分配方案作为首轮迭代过程中的当前初始分配方案。对于其他第一分配算法来说,在接收到待调整分配方案时,可以先对该待调整分配方案进行分配重置,以得到新的分配方案。然后,可以将新的分配方案与已执行的迭代过程中使用的初始分配方案进行相似度比较,在确定该新的分配方案与其他已使用的初始分配方案都不同时,该第一分配算法可以将该新的分配方案作为首轮迭代过程中的当前初始分配方案。
通过上述示例,可以避免多个第一分配算法重复地使用待调整分配方案作为首轮迭代过程中的当前初始分配方案,能够使得除使用待调整分配方案作为首轮迭代过程中的当前初始分配方案的一个第一分配算法以外的其他多个第一分配算法从首轮迭代便开始探索其他的解空间,从而实现探索更多的解空间,进而实现在全局范围内得到优化分配方案。
回到图4,在得到各个第一分配算法各自输出的当前最优分配方案后,在4300,可以将各个第一分配算法对应输出的当前最优分配方案进行基于分配评价指标的比较。
在4400,将经过比较得到的最优分配方案输出。
所输出的最优分配方案是各个第一分配算法在探索的多个解空间的情况下对应得到的若干个分配方案中的最优分配方案。
在一个示例中,在分配评价指标是节点的负载均衡时,可以计算作为比较对象的各个当前最优分配方案的负载均衡度,可以将负载均衡度最小的分配方案作为最优分配方案输出。
在另一个示例中,在分配评价指标是Pod所占用的节点数时,可以确定各个第一分配算法对应输出的当前最优分配方案中Pod所占用的节点数,将占用节点数最少的分配方案作为最优分配方案输出。
在一个示例中,当作为比较对象的多个当前最优分配方案中节点数最少的分配方案有至少两个时,可以对该至少两个分配方案中的Pod的分布紧凑度进行比较,将分布最紧凑的分配方案作为最优分配方案输出。
图7示出了根据本说明书实施例的用于基于输出的分配方案来生成迁移方案的方法的一个示例700的流程图。
图7中的示例可以在图1所示的实施例执行完之后再开始执行,还可以在图4所示的实施例执行完之后再开始执行。
如图7所示,在7100,根据输出的分配方案和待调整分配方案,可以确定待迁移的Pod以及该Pod的起始节点以及目的节点。
在该示例中,所输出的分配方案用于指导待调整分配方案中的各个Pod进行迁移,以使得各个Pod以及各个节点之间实现基于分配评价指标的最佳分配效果。所输出的分配方案可以包括使用单个第一分配算法时所输出的当前最优分配方案,还可以包括使用多个第一分配算法时所输出的经过比较得到的最优分配方案。
待调整分配方案可以用于指示各个Pod的起始位置,所输出的分配方案用于指示各个Pod的最终位置。结合输出的分配方案和待调整分配方案,若Pod的起始位置和最终位置是同一位置,则表示该Pod不用迁移。若Pod的起始位置和最终位置不同,则表示该Pod需要进行迁移,可以将该Pod确定为待迁移的Pod。
在该示例中,还可以从待调整分配方案中确定出待迁移的Pod的起始节点,该起始节点是该Pod的起始位置。可以从所输出的分配方案中确定出待迁移的Pod的目的节点,该目的节点是该Pod的最终位置。此外,可以将待迁移的Pod以及Pod的起始节点和目的节点作为一组数据进行记录,每组数据表示一个Pod的迁移路径,可以用于指导对应的Pod进行迁移。
在7200,可以根据各个节点的当前可用资源,从待迁移的Pod中确定出当前能够迁移的Pod。
在该示例中,可以判断待迁移的Pod能否迁移,在判断的一种方式中,可以判断待迁移的Pod的目的节点当前的可用资源是否大于该待迁移的Pod所需的资源,若大于或等于,则可以确定该待迁移的Pod当前能够迁移;若小于,则可以确定该待迁移的Pod当前不能迁移。
当所确定出的当前能够迁移的Pod有多个时,可以确定该多个待迁移的Pod可以同时迁移,进而可以将该多个待迁移的Pod标记为可以以并行方式执行迁移操作。
在7300,判断所确定出的能够迁移的Pod是否包括所有待迁移的Pod。如果否,表示还不能完成迁移,则可以执行7400的操作。如果是,表示当前已能够完成全部迁移,则可以执行7500的操作。
所确定出的能够迁移的Pod可以包括当前所确定出的Pod以及在当前确定之前(即,在当前执行7200的操作之前)已经被确定出能够移动的Pod。例如,待迁移的Pod包括Pod1、Pod2、Pod3、Pod4和Pod5,当前通过执行7200的操作可以确定给出当前能够迁移的Pod是Pod3,而在此之前,已经确定出Pod1和Pod2能够迁移,则当前所确定出的能够移动的Pod包括Pod1、Pod2和Pod3。
在7400,可以更新将当前所确定出的Pod进行迁移后的各个节点的可用资源,并返回执行7200的操作。
在一个示例中,可以对当前所确定出的能够迁移的Pod进行模拟迁移操作,以实时同步经过迁移后的各个节点以及Pod的分配状态,便于在不同阶段根据同步的分配状态来确定能够迁移的Pod。
通过返回执行7200的操作,在下一轮中继续从待迁移的Pod中确定能够迁移的Pod,直至所有待迁移的Pod都被确定为能够迁移。
在7500,生成针对待迁移的Pod的迁移方案。
在该示例中,可以记录每一次所确定出的能够迁移的Pod,并可以按照所确定的先后顺序来记录,先确定出的能够迁移的Pod可以被先记录,后确定出的能够迁移的Pod可以在后记录,根据记录的先后顺序可以确定给出迁移的先后顺序,先记录的Pod可以先迁移,后记录的Pod则后迁移,记录在同一批中的各个Pod可以以并行方式进行迁移。基于此,可以根据记录的在不同轮次中所确定出的能够迁移的Pod以及记录的先后顺序,生成迁移方案。
通过上述示例生成的迁移方案,可以用于指导后续所需执行的Pod迁移操作,按照迁移方案依次进行迁移,提高迁移效率。
在一个示例中,当存在待迁移的Pod且待迁移的各个Pod无法移动时,可以确定各个待迁移的Pod的目的节点中的可用资源少于该Pod所需的资源,从而导致各个待迁移的Pod无法移动。在这种情况下,可以确定由当前待迁移的各个Pod以及该各个Pod对应的起始节点和目的节点构成迁移环状。
在迁移环状中,每个待迁移的Pod所在的起始节点都有至少一个Pod需要迁移进来,并且该起始节点的可用资源少于该至少一个Pod所需的资源。每个待迁移的Pod的目的节点中也有至少一个Pod需要迁移至其他节点,并且,该目的节点的可用资源少于该待迁移的Pod所需的资源。各个待迁移的Pod以及所在的起始节点相互之间牵制导致无法移动,并且待迁移的各个Pod的迁移路径构成一个闭环。
图8示出了根据本说明书实施例的迁移环状的一个示例的示意图。如图8所示,Pod1的起始节点是Node1,目的节点是Node3;Pod4的起始节点是Node3,目的节点是Node2;Pod3的起始节点是Node2,目的节点是Node1。而Node1的可用资源少于Pod3所需的资源,Node3的可用资源少于Pod1所需的资源,Node2的可用资源少于Pod4所需的资源,导致Pod1、Pod2和Pod3都无法移动,并且Pod1、Pod2和Pod3的迁移路径构成一个闭环,从而Pod1以及Node1、Pod2以及Node2和Pod3以及Node3构成迁移环状。
在确定构成迁移环状后,可以将该迁移环状中的至少一个Pod迁移至迁移环状包括的节点以外的其他节点上。这样,迁移至其他节点上的Pod的起始节点的可用资源增加,当增加后的可用资源大于将该起始节点作为目的节点的Pod所需的资源时,可以确定该Pod能够迁移,从而该迁移环状中的其他各个待迁移的Pod也可以按序地进行迁移,最后可以将迁移至其他节点上的至少一个Pod迁移至该Pod对应的目的节点上。
上述针对迁移环状的迁移操作过程可以是通过模拟操作来执行,在模拟操作过程中可以记录每一次迁移操作,记录的方式可以是按照迁移操作执行的先后顺序进行记录。
在针对迁移环状的迁移完成后,可以将该迁移环状的迁移过程进行整合,即可以将针对迁移环状的所有迁移操作按序整合在一起,形成针对迁移环状的完整迁移步骤。该迁移步骤可以是迁移方案中的一部分,从而可以将针对迁移环状的迁移步骤增加至迁移方案中,以构成完整的迁移方案。
图9示出了根据本说明书实施例的用于生成容器分配方案的装置(以下称为容器分配方案生成装置900)的一个示例的方框图。
如图9所示,容器分配方案生成装置900包括:待调整分配方案生成单元910、节点排序单元920、Pod迁移单元930、第一方案比较单元940、下一轮方案确定单元950以及第一方案输出单元960。
待调整分配方案生成单元910,被配置为根据各个节点中当前已分配的Pod生成待调整分配方案,其中,待调整分配方案包括各个节点与各个Pod之间的已分配关系,每个Pod包括至少一个容器。
节点排序单元920,被配置为根据当前初始分配方案中的各个节点具有的可用资源对各个节点进行排序,以得到节点序列。
Pod迁移单元930,被配置为根据节点序列对各个节点中的部分Pod进行迁移,以得到针对分配评价指标的局部最优分配方案,部分Pod由节点序列和分配评价指标所确定。
在一个示例中,分配评价指标包括Pod所占用的节点数。Pod迁移单元930还可以被配置为:按照节点序列中各个节点的可用资源从多到少的第一顺序依次选取Pod作为待迁移Pod;按照节点序列中各个节点的可用资源从少到多的第二顺序以及各个节点的可用资源来确定为待迁移Pod分配的节点;判断为待迁移Pod重新分配后得到的新分配方案是否达到针对分配评价指标的局部最优;如果未达到局部最优,更新各个节点的可用资源,并返回执行按照节点序列的第一顺序依次选取Pod作为待迁移Pod的操作;以及如果达到局部最优,将所得到的新分配方案作为局部最优分配方案输出。
在一个示例中,分配评价指标包括各个节点的负载均衡。Pod迁移单元930还可以被配置为:按照当前节点序列中各个节点的可用资源从少到多的第二顺序依次选取Pod作为待迁移Pod;按照当前节点序列中各个节点的可用资源从多到少的第一顺序来确定为待迁移Pod分配的节点;判断为待迁移Pod重新分配后得到的新分配方案是否达到针对分配评价指标的局部最优;如果未达到局部最优,更新各个节点的可用资源,并按照更新后的可用资源对各个节点重新进行排序,以得到新的节点序列,并作为下一轮中的当前节点序列,并返回执行按照节点序列的第二顺序依次选取Pod作为待迁移Pod的操作;以及如果达到局部最优,将所得到的新分配方案作为局部最优分配方案输出。
在一个示例中,容器分配方案生成装置900还可以包括分配重置度更新单元,该分配重置度更新单元可以被配置为:在利用当前分配重置度进行分配重置后,对当前分配重置度进行更新以生成新的分配重置度,并作为下一轮迭代过程中的当前分配重置度。
第一方案比较单元940,被配置为将局部最优分配方案与当前最优分配方案进行比较,以确定出新的当前最优分配方案,其中,用于比较的当前最优分配方案是从待调整分配方案以及已执行的迭代过程所生成的局部最优分配方案中所确定出来的。
下一轮方案确定单元950,被配置为在当前迭代次数未达到指定次数阈值时,将所确定出的新的当前最优分配方案作为下一轮的当前最优分配方案,以及根据当前分配重置度对当前初始分配方案中所分配的Pod进行分配重置,以生成新分配方案,并作为下一轮的当前初始分配方案,其中,所生成的新分配方案不同于已执行的各个迭代过程中所使用的初始分配方案。其中,下一轮方案确定单元950执行完成时,触发节点排序单元920执行操作。
第一方案输出单元960,被配置为在当前迭代次数达到指定次数阈值时,输出当前最优分配方案。
在一个示例中,容器分配方案生成装置900还可以包括:待迁移Pod确定单元、可迁移Pod筛选单元、迁移方案生成单元以及节点资源更新单元。
待迁移Pod确定单元,被配置为根据输出的分配方案和待调整分配方案,确定待迁移的Pod以及该Pod的起始节点以及目的节点。
可迁移Pod筛选单元,被配置为根据各个节点的当前可用资源,从待迁移的Pod中确定出当前能够迁移的Pod。
迁移方案生成单元,被配置为在所确定出的能够迁移的Pod包括所有待迁移的Pod时,生成针对待迁移的Pod的迁移方案。
节点资源更新单元,被配置为在所确定出的能够迁移的Pod没有包括所有待迁移的Pod时,更新将当前所确定出的Pod进行迁移后的各个节点的可用资源,并触发可迁移Pod筛选单元执行操作。
在一个示例中,容器分配方案生成装置900还可以包括:迁移环状确定单元。
迁移环状确定单元,被配置为当存在待迁移的Pod且待迁移的各个Pod无法移动时,确定由待迁移的各个Pod以及该各个Pod对应的起始节点和目的节点构成迁移环状。
Pod迁移单元930,被配置为将迁移环状中的至少一个Pod迁移至迁移环状包括的节点以外的其他节点上;将迁移环状中的待迁移的其他Pod进行迁移,以及将迁移至其他节点上的至少一个Pod进行迁移至对应的目的节点。
迁移方案生成单元,被配置为将迁移环状的迁移过程进行整合,以形成迁移方案中的迁移步骤。
图10示出了根据本说明书实施例的容器分配方案生成装置900的另一个示例的方框图。
如图10所示,容器分配方案生成装置900还可以包括:第二方案比较单元970以及第二方案输出单元980。
第一方案输出单元960,还可以被配置为使用多个第一分配算法分别输出各自所得到的当前最优分配方案,其中,每个第一分配算法在每一次迭代过程中所使用的初始分配方案各不相同。
第二方案比较单元970,可以被配置为将各个第一分配算法对应输出的当前最优分配方案进行基于分配评价指标的比较。
第二方案输出单元980,可以被配置为将经过比较得到的最优分配方案输出。
需要说明的是,第二方案比较单元970与第一方案比较单元940可以是属于独立的两个装置,还可以是同一个装置。第二方案输出单元980与第一方案输出单元960可以是属于独立的两个装置,还可以是同一个装置。
在一个示例中,容器分配方案生成装置900还可以包括:相似度比较单元、分配重置单元以及当前初始分配方案确定单元。
相似度比较单元,被配置为在所使用的每个第一分配算法中的每个迭代过程中,在使用初始分配方案前,将待使用初始分配方案与在各个第一分配算法中已执行的迭代过程中所使用的初始分配方案进行相似度比较。
分配重置单元,被配置为在已使用的初始分配方案中存在至少一个初始分配方案与待使用初始分配方案的相似度达到指定相似度阈值时,对待使用初始分配方案中的Pod进行分配重置,以生成新的分配方案,并作为该迭代过程中的待使用初始分配方案,返回执行将待使用初始分配方案与在各个第一分配算法中已执行的迭代过程中所使用的初始分配方案进行相似度比较的操作。
当前初始分配方案确定单元,被配置为在已使用的各个初始分配方案与待使用初始分配方案的相似度均未达到指定相似度阈值时,将待使用初始分配方案作为该迭代过程中的当前初始分配方案来执行该迭代过程。
在一个示例中,相似度比较单元还可以被配置为:针对作为相似度比较对象的各个初始分配方案,将该各个初始分配方案转换成对应的矩阵,矩阵中的行数和列数由所对应的初始分配方案中的Pod数和节点数所确定,矩阵由0和1构成,1表示对应的Pod分配在对应的节点中,0表示对应的Pod未分配在对应的节点中;以及根据待使用初始分配方案对应的矩阵与已使用的各个初始分配方案对应的矩阵计算待使用初始分配方案与已使用的各个初始分配方案之间的相似度。
以上参照图1到图10,对根据本说明书实施例的用于生成容器分配方案的方法及装置的实施例进行了描述。
本说明书实施例的用于生成容器分配方案的装置可以采用硬件实现,也可以采用软件或者硬件和软件的组合来实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将存储器中对应的计算机程序指令读取到内存中运行形成的。在本说明书实施例中,用于生成容器分配方案的装置例如可以利用电子设备实现。
图11示出了本说明书实施例的用于实现容器分配方案生成方法的电子设备1100的方框图。
如图11所示,电子设备1100可以包括至少一个处理器1110、存储器(例如,非易失性存储器)1120、内存1130和通信接口1140,并且至少一个处理器1110、存储器1120、内存1130和通信接口1140经由总线1150连接在一起。至少一个处理器1110执行在存储器中存储或编码的至少一个计算机可读指令(即,上述以软件形式实现的元素)。
在一个实施例中,在存储器中存储计算机可执行指令,其当执行时使得至少一个处理器1110:根据各个节点中当前已分配的Pod生成待调整分配方案,将待调整分配方案作为初始分配方案按照以下方式执行第一分配算法:根据当前初始分配方案中的各个节点具有的可用资源对各个节点进行排序,以得到节点序列;根据节点序列对各个节点中的部分Pod进行迁移,以得到针对分配评价指标的局部最优分配方案;将局部最优分配方案与当前最优分配方案进行比较,以确定出新的当前最优分配方案;在当前迭代次数未达到指定次数阈值时,将所确定出的新的当前最优分配方案作为下一轮的当前最优分配方案,以及根据当前分配重置度对当前初始分配方案中所分配的Pod进行分配重置,以生成新分配方案,并作为下一轮的当前初始分配方案;以及在当前迭代次数达到指定次数阈值时,输出当前最优分配方案。
应该理解,在存储器中存储的计算机可执行指令当执行时使得至少一个处理器1110进行本说明书的各个实施例中以上结合图1-10描述的各种操作和功能。
根据一个实施例,提供了一种例如机器可读介质的程序产品。机器可读介质可以具有指令(即,上述以软件形式实现的元素),该指令当被机器执行时,使得机器执行本说明书的各个实施例中以上结合图1-10描述的各种操作和功能。
具体地,可以提供配有可读存储介质的系统或者装置,在该可读存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机或处理器读出并执行存储在该可读存储介质中的指令。
在这种情况下,从可读介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此机器可读代码和存储机器可读代码的可读存储介质构成了本发明的一部分。
本说明书各部分操作所需的计算机程序代码可以用任意一种或多种程序语言编写,包括面向对象编程语言,如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB、NET以及Python等,常规程序化编程语言如C语言、Visual Basic 2003、Perl、COBOL2002、PHP以及ABAP,动态编程语言如Python、Ruby和Groovy,或者其他编程语言等。该程序编码可以在用户计算机上运行,或者作为独立的软件包在用户计算机上运行,或者部分在用户计算机上运行另一部分在远程计算机运行,或者全部在远程计算机或服务器上运行。在后一种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或者在云计算环境中,或者作为服务使用,比如软件即服务(SaaS)。
可读存储介质的实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD-RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上或云上下载程序代码。
上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
上述各流程和各系统结构图中不是所有的步骤和单元都是必须的,可以根据实际的需要忽略某些步骤或单元。各步骤的执行顺序不是固定的,可以根据需要进行确定。上述各实施例中描述的装置结构可以是物理结构,也可以是逻辑结构,即,有些单元可能由同一物理实体实现,或者,有些单元可能分由多个物理实体实现,或者,可以由多个独立设备中的某些部件共同实现。
在整个本说明书中使用的术语“示例性”意味着“用作示例、实例或例示”,并不意味着比其它实施例“优选”或“具有优势”。出于提供对所描述技术的理解的目的,具体实施方式包括具体细节。然而,可以在没有这些具体细节的情况下实施这些技术。在一些实例中,为了避免对所描述的实施例的概念造成难以理解,公知的结构和装置以框图形式示出。
以上结合附图详细描述了本说明书的实施例的可选实施方式,但是,本说明书的实施例并不限于上述实施方式中的具体细节,在本说明书的实施例的技术构思范围内,可以对本说明书的实施例的技术方案进行多种简单变型,这些简单变型均属于本说明书的实施例的保护范围。
本说明书内容的上述描述被提供来使得本领域任何普通技术人员能够实现或者使用本说明书内容。对于本领域普通技术人员来说,对本说明书内容进行的各种修改是显而易见的,并且,也可以在不脱离本说明书内容的保护范围的情况下,将本文所定义的一般性原理应用于其它变型。因此,本说明书内容并不限于本文所描述的示例和设计,而是与符合本文公开的原理和新颖性特征的最广范围相一致。

Claims (16)

1.一种用于生成容器分配方案的方法,包括:
根据各个节点中当前已分配的Pod生成待调整分配方案,其中,所述待调整分配方案包括所述各个节点与各个Pod之间的已分配关系,每个Pod包括至少一个容器;
将所述待调整分配方案作为初始分配方案按照以下方式执行第一分配算法:
根据当前初始分配方案中的所述各个节点具有的可用资源对所述各个节点进行排序,以得到节点序列;
根据所述节点序列对所述各个节点中的部分Pod进行迁移,以得到基于分配评价指标的局部最优分配方案,所述部分Pod由所述节点序列和所述分配评价指标所确定;
将所述局部最优分配方案与当前最优分配方案进行比较,以确定出新的当前最优分配方案,其中,用于比较的当前最优分配方案是从所述待调整分配方案以及已执行的迭代过程所生成的局部最优分配方案中所确定出来的;
在当前迭代次数未达到指定次数阈值时,将所确定出的新的当前最优分配方案作为下一轮的当前最优分配方案,以及根据当前分配重置度对所述当前初始分配方案中所分配的Pod进行分配重置,以生成新分配方案,并作为下一轮的当前初始分配方案,其中,所生成的新分配方案不同于已执行的各个迭代过程中所使用的初始分配方案;以及
在当前迭代次数达到所述指定次数阈值时,输出当前最优分配方案。
2.如权利要求1所述的方法,其中,所述分配评价指标包括Pod所占用的节点数,
根据所述节点序列对所述各个节点中的部分Pod进行迁移,以得到基于分配评价指标的局部最优分配方案包括:
按照所述节点序列中所述各个节点的可用资源从多到少的第一顺序依次选取Pod作为待迁移Pod;
按照所述节点序列中所述各个节点的可用资源从少到多的第二顺序以及所述各个节点的可用资源来确定为所述待迁移Pod分配的节点;
判断为所述待迁移Pod重新分配后得到的新分配方案是否达到基于所述分配评价指标的局部最优;
如果未达到局部最优,更新所述各个节点的可用资源,并返回执行按照所述节点序列的所述第一顺序依次选取Pod作为待迁移Pod的操作;以及
如果达到局部最优,将所得到的新分配方案作为局部最优分配方案输出。
3.如权利要求1所述的方法,其中,所述分配评价指标包括所述各个节点的负载均衡,
根据所述节点序列对所述各个节点中的部分Pod进行迁移,以得到基于分配评价指标的局部最优分配方案包括:
按照当前节点序列中所述各个节点的可用资源从少到多的第二顺序依次选取Pod作为待迁移Pod;
按照所述当前节点序列中所述各个节点的可用资源从多到少的第一顺序来确定为所述待迁移Pod分配的节点;
判断为所述待迁移Pod重新分配后得到的新分配方案是否达到基于所述分配评价指标的局部最优;
如果未达到局部最优,更新所述各个节点的可用资源,并按照更新后的可用资源对所述各个节点重新进行排序,以得到新的节点序列,并作为下一轮中的当前节点序列,并返回执行按照所述节点序列的所述第二顺序依次选取Pod作为待迁移Pod的操作;以及
如果达到局部最优,将所得到的新分配方案作为局部最优分配方案输出。
4.如权利要求1所述的方法,还包括:
在利用所述当前分配重置度进行分配重置后,对所述当前分配重置度进行更新以生成新的分配重置度,并作为下一轮迭代过程中的当前分配重置度。
5.如权利要求1所述的方法,还包括:
使用多个第一分配算法分别输出各自所得到的当前最优分配方案,其中,每个第一分配算法在每一次迭代过程中所使用的初始分配方案各不相同;
将各个第一分配算法对应输出的当前最优分配方案进行基于所述分配评价指标的比较;以及
将经过比较得到的最优分配方案输出。
6.如权利要求5所述的方法,还包括:
在所使用的每个第一分配算法中的每个迭代过程中,在使用初始分配方案前,将待使用初始分配方案与在各个第一分配算法中已执行的迭代过程中所使用的初始分配方案进行相似度比较;
在已使用的初始分配方案中存在至少一个初始分配方案与所述待使用初始分配方案的相似度达到指定相似度阈值时,对所述待使用初始分配方案中的Pod进行分配重置,以生成新的分配方案,并作为该迭代过程中的待使用初始分配方案,返回执行将待使用初始分配方案与在各个第一分配算法中已执行的迭代过程中所使用的初始分配方案进行相似度比较的操作;以及
在已使用的各个初始分配方案与所述待使用初始分配方案的相似度均未达到指定相似度阈值时,将所述待使用初始分配方案作为该迭代过程中的当前初始分配方案来执行该迭代过程。
7.如权利要求6所述的方法,其中,将待使用初始分配方案与在各个第一分配算法中已执行的迭代过程中所使用的初始分配方案进行相似度比较包括:
针对作为相似度比较对象的各个初始分配方案,将该各个初始分配方案转换成对应的矩阵,所述矩阵中的行数和列数由所对应的初始分配方案中的Pod数和节点数所确定,所述矩阵由0和1构成,1表示对应的Pod分配在对应的节点中,0表示对应的Pod未分配在对应的节点中;以及
根据待使用初始分配方案对应的矩阵与已使用的各个初始分配方案对应的矩阵计算所述待使用初始分配方案与已使用的各个初始分配方案之间的相似度。
8.如权利要求5所述的方法,其中,所述多个第一分配算法中的其中一个第一分配算法的首轮迭代过程中所使用的初始分配方案是所述待调整分配方案,其他第一分配算法中的首轮迭代过程中所使用的初始分配方案是所述待调整分配方案经过分配重置后的分配方案。
9.如权利要求1或5所述的方法,还包括:
根据输出的分配方案和所述待调整分配方案,确定待迁移的Pod以及该Pod的起始节点以及目的节点;
根据所述各个节点的当前可用资源,从所述待迁移的Pod中确定出当前能够迁移的Pod;
在所确定出的能够迁移的Pod包括所有待迁移的Pod时,生成针对所述待迁移的Pod的迁移方案;以及
在所确定出的能够迁移的Pod没有包括所有待迁移的Pod时,更新将当前所确定出的Pod进行迁移后的所述各个节点的可用资源,并执行根据所述各个节点的当前可用资源,从所述待迁移的Pod中确定出能够并行迁移的Pod的操作。
10.如权利要求9所述的方法,还包括:
当存在待迁移的Pod且待迁移的各个Pod无法移动时,确定由待迁移的各个Pod以及该各个Pod对应的起始节点和目的节点构成迁移环状;
将所述迁移环状中的至少一个Pod迁移至所述迁移环状包括的节点以外的其他节点上;
将所述迁移环状中的待迁移的其他Pod进行迁移,以及将迁移至所述其他节点上的所述至少一个Pod进行迁移至对应的目的节点;以及
将所述迁移环状的迁移过程进行整合,以形成迁移方案中的迁移步骤。
11.一种用于生成容器分配方案的装置,包括:
待调整分配方案生成单元,根据各个节点中当前已分配的Pod生成待调整分配方案,其中,所述待调整分配方案包括所述各个节点与各个Pod之间的已分配关系,每个Pod包括至少一个容器;
节点排序单元,根据当前初始分配方案中的所述各个节点具有的可用资源对所述各个节点进行排序,以得到节点序列;
Pod迁移单元,根据所述节点序列对所述各个节点中的部分Pod进行迁移,以得到基于分配评价指标的局部最优分配方案,所述部分Pod由所述节点序列和所述分配评价指标所确定;
第一方案比较单元,将所述局部最优分配方案与当前最优分配方案进行比较,以确定出新的当前最优分配方案,其中,用于比较的当前最优分配方案是从所述待调整分配方案以及已执行的迭代过程所生成的局部最优分配方案中所确定出来的;
下一轮方案确定单元,在当前迭代次数未达到所述指定次数阈值时,将所确定出的新的当前最优分配方案作为下一轮的当前最优分配方案,以及根据当前分配重置度对所述当前初始分配方案中所分配的Pod进行分配重置,以生成新分配方案,并作为下一轮的当前初始分配方案,其中,所生成的新分配方案不同于已执行的各个迭代过程中所使用的初始分配方案;以及
第一方案输出单元,在当前迭代次数达到指定次数阈值时,输出当前最优分配方案,
其中,所述下一轮方案确定单元执行完成时,触发所述节点排序单元执行操作。
12.如权利要求11所述的装置,其中,
所述第一方案输出单元,使用多个第一分配算法分别输出各自所得到的当前最优分配方案,其中,每个第一分配算法在每一次迭代过程中所使用的初始分配方案各不相同;
所述装置还包括:
第二方案比较单元,将各个第一分配算法对应输出的当前最优分配方案进行基于所述分配评价指标的比较;以及
第二方案输出单元,将经过比较得到的最优分配方案输出。
13.如权利要求11或12所述的装置,还包括:
待迁移Pod确定单元,根据输出的分配方案和所述待调整分配方案,确定待迁移的Pod以及该Pod的起始节点以及目的节点;
可迁移Pod筛选单元,根据所述各个节点的当前可用资源,从所述待迁移的Pod中确定出当前能够迁移的Pod;
迁移方案生成单元,在所确定出的能够迁移的Pod包括所有待迁移的Pod时,生成针对所述待迁移的Pod的迁移方案;以及
节点资源更新单元,在所确定出的能够迁移的Pod没有包括所有待迁移的Pod时,更新将当前所确定出的Pod进行迁移后的所述各个节点的可用资源,并触发所述可迁移Pod筛选单元执行操作。
14.一种电子设备,包括:至少一个处理器,与所述至少一个处理器耦合的存储器,以及存储在所述存储器上的计算机程序,所述至少一个处理器执行所述计算机程序来实现如权利要求1-10中任一所述的方法。
15.一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-10中任一所述的方法。
16.一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如权利要求1-10中任一所述的方法。
CN202210285711.2A 2022-03-22 2022-03-22 用于生成容器分配方案的方法及装置 Pending CN114637576A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210285711.2A CN114637576A (zh) 2022-03-22 2022-03-22 用于生成容器分配方案的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210285711.2A CN114637576A (zh) 2022-03-22 2022-03-22 用于生成容器分配方案的方法及装置

Publications (1)

Publication Number Publication Date
CN114637576A true CN114637576A (zh) 2022-06-17

Family

ID=81950190

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210285711.2A Pending CN114637576A (zh) 2022-03-22 2022-03-22 用于生成容器分配方案的方法及装置

Country Status (1)

Country Link
CN (1) CN114637576A (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150277993A1 (en) * 2012-12-14 2015-10-01 Huawei Technologies Co., Ltd. Task Processing Method and Virtual Machine
CN107133099A (zh) * 2017-04-25 2017-09-05 深圳大数点科技有限公司 一种云计算方法
CN111124689A (zh) * 2019-12-31 2020-05-08 中国电子科技集团公司信息科学研究院 一种集群中容器资源动态分配方法
US20200153898A1 (en) * 2018-11-13 2020-05-14 International Business Machines Corporation Automated infrastructure updates in a cluster environment that includes containers
CN111367632A (zh) * 2020-02-14 2020-07-03 重庆邮电大学 一种基于周期特征的容器云调度方法
CN111506408A (zh) * 2020-04-15 2020-08-07 辽宁大学 基于关联数据集合的边缘计算任务调度方法
CN111880939A (zh) * 2020-08-07 2020-11-03 曙光信息产业(北京)有限公司 容器动态迁移方法、装置及电子设备
CN112559130A (zh) * 2020-12-16 2021-03-26 恒生电子股份有限公司 容器分配方法、装置、电子设备及存储介质
US20210117220A1 (en) * 2018-11-23 2021-04-22 China Unionpay Co., Ltd. Unified resource scheduling coordinator, method for creating a virtual machine and/or container, and unified resource scheduling system
US20210149743A1 (en) * 2019-07-22 2021-05-20 Tencent Technology (Shenzhen) Company Limited Resource processing method of cloud platform, related device, and storage medium

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150277993A1 (en) * 2012-12-14 2015-10-01 Huawei Technologies Co., Ltd. Task Processing Method and Virtual Machine
CN107133099A (zh) * 2017-04-25 2017-09-05 深圳大数点科技有限公司 一种云计算方法
US20200153898A1 (en) * 2018-11-13 2020-05-14 International Business Machines Corporation Automated infrastructure updates in a cluster environment that includes containers
US20210117220A1 (en) * 2018-11-23 2021-04-22 China Unionpay Co., Ltd. Unified resource scheduling coordinator, method for creating a virtual machine and/or container, and unified resource scheduling system
US20210149743A1 (en) * 2019-07-22 2021-05-20 Tencent Technology (Shenzhen) Company Limited Resource processing method of cloud platform, related device, and storage medium
CN111124689A (zh) * 2019-12-31 2020-05-08 中国电子科技集团公司信息科学研究院 一种集群中容器资源动态分配方法
CN111367632A (zh) * 2020-02-14 2020-07-03 重庆邮电大学 一种基于周期特征的容器云调度方法
CN111506408A (zh) * 2020-04-15 2020-08-07 辽宁大学 基于关联数据集合的边缘计算任务调度方法
CN111880939A (zh) * 2020-08-07 2020-11-03 曙光信息产业(北京)有限公司 容器动态迁移方法、装置及电子设备
CN112559130A (zh) * 2020-12-16 2021-03-26 恒生电子股份有限公司 容器分配方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
Szabo et al. Science in the cloud: Allocation and execution of data-intensive scientific workflows
US10977086B2 (en) Workload placement and balancing within a containerized infrastructure
US11720408B2 (en) Method and system for assigning a virtual machine in virtual GPU enabled systems
WO2020037156A1 (en) Workflow optimization
US11443228B2 (en) Job merging for machine and deep learning hyperparameter tuning
CN109791504A (zh) 针对应用容器的动态资源配置
CN114616540A (zh) 大数据机器学习用例的自主云节点范围界定框架
US20180060324A1 (en) Parallel scoring of an ensemble model
Anastasi et al. Smart cloud federation simulations with cloudsim
CN109710406B (zh) 数据分配及其模型训练方法、装置、及计算集群
CN112559163A (zh) 优化张量计算性能的方法及装置
US10942784B2 (en) Database resource scaling
Ding et al. Kubernetes-oriented microservice placement with dynamic resource allocation
CN112948279A (zh) 管理存储系统中的访问请求的方法、设备和程序产品
Mollajafari et al. TC3PoP: a time-cost compromised workflow scheduling heuristic customized for cloud environments
CN112000460A (zh) 一种基于改进贝叶斯算法的服务扩缩容的方法及相关设备
Ryu et al. Towards topology aware pre-emptive job scheduling with deep reinforcement learning
WO2016118159A1 (en) Heterogeneous platform configurations
CN111459464B (zh) 节点融合方法、代码生成方法、装置
US10387578B1 (en) Utilization limiting for nested object queries
CN114637576A (zh) 用于生成容器分配方案的方法及装置
Hao et al. Measuring performance degradation of virtual machines based on the Bayesian network with hidden variables
Choi et al. Dense or sparse: Elastic spmm implementation for optimal big-data processing
US11507721B2 (en) Scan chain wirelength optimization using Q-learning based reinforcement learning
Zhang et al. Learning driven parallelization for large-scale video workload in hybrid CPU-GPU cluster

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