CN113760446A - 资源调度方法、装置、设备及介质 - Google Patents

资源调度方法、装置、设备及介质 Download PDF

Info

Publication number
CN113760446A
CN113760446A CN202110086447.5A CN202110086447A CN113760446A CN 113760446 A CN113760446 A CN 113760446A CN 202110086447 A CN202110086447 A CN 202110086447A CN 113760446 A CN113760446 A CN 113760446A
Authority
CN
China
Prior art keywords
resource
cluster
target
clusters
amount
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
CN202110086447.5A
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.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun 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 Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202110086447.5A priority Critical patent/CN113760446A/zh
Publication of CN113760446A publication Critical patent/CN113760446A/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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • 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
    • 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
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/45562Creating, deleting, cloning virtual machine instances
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开的实施例提供一种资源调度方法、装置、设备及介质。该方法包括:根据用于申请创建一个或多个资源对象的资源申请请求,获取资源对象的参数信息,参数信息包括资源对象的资源规格和资源对象的申请数量;根据资源规格和集群监控数据库,确定第一资源序列,第一资源序列包括至少一个第一集群与资源对象可创建量的对应关系,集群监控数据库用于记录多个集群的宿主机信息和资源对象信息;根据申请数量和第一资源序列,确定目标集群和目标对应的资源对象分配量;根据目标集群的资源对象分配量,向目标集群发送创建资源对象的请求,以在目标集群中的宿主机上创建资源对象。本公开的实施例的方法,提高了多个集群之间的资源调度效果。

Description

资源调度方法、装置、设备及介质
技术领域
本公开的实施例涉及计算机技术领域中的云计算领域,尤其涉及一种资源调度方法、装置、设备及介质。
背景技术
在云计算领域中,通常采用容器技术在宿主机进行应用程序部署。其中,容器是多个进程的集合,不同容器之间的进程相互隔离,能够避免不同容器中的进程之间的资源竞争,而且能够在不同云、不同宿主机上快速部署。
随着容器技术的发展,出现了多种容器编排技术,也即运行和协同多个宿主机上的容器化应用程序的技术。其中,Kubernetes(简称K8s)技术作为在一组宿主机上运行和协同容器化应用程序运行的技术,由于其技术先进性和落地方案越来越成熟,在多种容器编排技术中脱颖而出。Kubernetes集群联邦为分布式的容器调度系统,在Kubernetes集群联邦(Kubernetes Cluster Federation)中有多个集群(Cluster),一个集群管理多个宿主机,每个宿主机上可能部署有一个或多个容器,每个容器在部署之前,都需要申请相应的资源。
因此,随着集群数量的增加,如何提高多个集群之间资源调度的效果是亟需解决的问题。
发明内容
本公开的实施例提供一种资源调度方法、装置、设备及介质,用以解决多个集群之间的资源调度效果不佳的问题。
第一方面,本公开的实施例提供一种资源调度方法,包括:
接收终端设备的资源申请请求,所述资源申请请求用于申请创建一个或多个资源对象;
根据所述资源申请请求,获取所述资源对象的参数信息,所述参数信息包括所述资源对象的资源规格和所述资源对象的申请数量;
根据所述资源规格和集群监控数据库,确定第一资源序列,所述第一资源序列包括至少一个第一集群与资源对象可创建量的对应关系,所述集群监控数据库用于记录多个集群的宿主机信息和资源对象信息;
根据所述申请数量和所述第一资源序列,确定目标集群和所述目标集群对应的资源对象分配量;
根据所述目标集群的资源对象分配量,向所述目标集群发送创建所述资源对象的请求,以在所述目标集群中的宿主机上创建所述资源对象。
在一种可能的实施方式中,所述向所述目标集群发送创建所述资源对象的请求,所述方法还包括:
在监控到所述目标集群上所述资源对象创建成功的情况下,根据所述目标集群对应的资源对象分配量,更新所述集群监控数据库。
在一种可能的实施方式中,所述集群的宿主机信息包括所述集群的剩余硬件资源量,所述根据所述资源规格和集群监控数据库,确定第一资源序列,包括:
根据所述资源规格和所述集群监控数据库中多个集群的硬件资源剩余量,确定所述第一资源序列。
在一种可能的实施方式中,所述参数信息还包括所述资源对象所属的目标区域位置,所述集群监控数据库还用于记录所有集群所在的区域位置,所述根据所述资源规格和集群监控数据库,确定第一资源序列之前,所述方法还包括:
根据所述目标区域位置和所述集群监控数据库中所有集群所在的区域位置,对所述集群监控数据库中所有集群进行筛选;
所述根据所述资源规格和集群监控数据库,确定第一资源序列,包括:
根据所述资源规格和所述集群监控数据库中筛选后的集群的硬件资源剩余量,确定所述第一资源序列。
在一种可能的实施方式中,所述根据所述资源规格和集群监控数据库,确定第一资源序列,包括:
在所述集群监控数据库中,将硬件资源剩余量大于等于所述资源规格的至少一个集群,确定为所述第一集群;
根据所述资源规格和所述第一集群的硬件资源剩余量,确定所述第一集群对应的资源对象可创建量;
根据各所述第一集群对应的资源对象可创建量,确定所述第一资源序列。
在一种可能的实施方式中,所述根据所述申请数量和所述第一资源序列,确定目标集群和所述目标集群对应的资源对象分配量,包括:
根据所述第一资源序列,获得所有所述第一集群的资源对象可创建总量;
如果所述资源对象可创建总量大于等于所述申请数量,则在所述第一集群中确定所述目标集群,并根据所述第一集群的资源对象可创建量和所述申请数量,确定所述目标集群对应的资源对象分配量。
在一种可能的实施方式中,所述根据所述申请数量和所述第一资源序列,确定目标集群和所述目标集群对应的资源对象分配量,还包括:
如果所述资源对象可创建总量大于等于所述申请数量,则按照资源对象可创建量,对所述第一资源序列进行降序排序;
在排序后的所述第一资源序列中,依次将所述第一集群确定为所述目标集群,并根据所述第一集群的资源对象可创建量确定所述目标集群对应的资源对象分配量,直至各所述目标集群的资源对象分配量之和大于等于所述申请数量。
在一种可能的实施方式中,所述根据所述申请数量和所述第一资源序列,确定目标集群和所述目标集群对应的资源对象分配量,还包括:
如果所述资源对象可创建总量大于等于所述申请数量,则根据所述第一集群的资源对象信息,对所述第一集群中是否存在至少一个已创建所述资源对象的第二集群进行查询;
如果存在已创建所述资源对象的第二集群,则确定第二资源序列,所述第二资源序列包括所述第二集群与资源对象已创建量的对应关系;
根据所述申请数量、所述第一资源序列和所述第二资源序列,确定所述目标集群和所述目标集群对应的资源对象分配量。
在一种可能的实施方式中,所述根据所述申请数量、所述第一资源序列和所述第二资源序列,确定所述目标集群和所述目标集群对应的资源对象分配量,包括:
根据所述第一资源序列和所述第二资源序列,得到所有所述第二集群的资源对象总量,所有所述第二集群的资源对象总量为所有所述第二集群的资源对象可创建量和资源对象已创建量之和;
如果所有所述第二集群的资源对象总量大于等于所述申请数量,则依次将所述第二集群确定为所述目标集群,并根据所述第二集群的资源对象可创建量确定所述目标集群对应的资源对象分配量,直至所有所述目标集群的资源对象分配量和资源对象已创建量之和大于等于所述申请数量。
在一种可能的实施方式中,所述根据所述申请数量、所述第一资源序列和所述第二资源序列,确定所述目标集群和所述目标集群对应的资源对象分配量,还包括:
如果所有所述第二集群的资源对象总量小于所述申请数量,则将所有所述第二集群确定为所述目标集群,并根据所述第二集群的资源对象可创建量确定所述目标集群的资源对象分配量;
在所述第一资源序列中,依次将所述第一集群中除所述第二集群以外的第三集群确定为所述目标集群,并根据所述第三集群的资源对象可创建量确定所述目标集群的资源对象分配量,直至所有所述目标集群的资源对象分配量和资源对象已创建量之和大于等于所述申请数量。
在一种可能的实施方式中,所述集群为Kubernetes集群。
另一方面,本公开的实施例提供一种资源调度装置,包括:
接收模块,用于接收终端设备的资源申请请求,所述资源申请请求用于申请创建一个或多个资源对象;
获取模块,用于根据所述资源申请请求,获取所述资源对象的参数信息,所述参数信息包括所述资源对象的资源规格和所述资源对象的申请数量;
调度模块,用于根据所述资源规格和集群监控数据库,确定第一资源序列,所述第一资源序列包括至少一个第一集群与资源对象可创建量的对应关系,所述集群监控数据库用于记录多个集群的宿主机信息和资源对象信息,根据所述申请数量和所述第一资源序列,确定目标集群和所述目标集群对应的资源对象分配量;
发送模块,用于根据所述目标集群的资源对象分配量,向所述目标集群发送创建所述资源对象的请求,以在所述目标集群中的宿主机上创建所述资源对象。
在一种可能的实现方式中,所述装置还包括:
更新模块,用于在监控到所述目标集群上所述资源对象创建成功的情况下,根据所述目标集群对应的资源对象分配量,更新所述集群监控数据库。
在一种可能的实现方式中,所述集群的宿主机信息包括所述集群的剩余硬件资源量,所述调度模块,具体用于:
根据所述资源规格和所述集群监控数据库中多个集群的硬件资源剩余量,确定所述第一资源序列。
在一种可能的实现方式中,所述参数信息还包括所述资源对象所属的目标区域位置,所述集群监控数据库还用于记录所有集群所在的区域位置,所述装置还包括:
筛选模块,用于根据所述目标区域位置和所述集群监控数据库中所有集群所在的区域位置,对所述集群监控数据库中所有集群进行筛选;
所述调度模块,具体用于:
根据所述资源规格和所述集群监控数据库中筛选后的集群的硬件资源剩余量,确定所述第一资源序列。
在一种可能的实现方式中,所述调度模块,具体用于:
在所述集群监控数据库中,将硬件资源剩余量大于等于所述资源规格的至少一个集群,确定为所述第一集群;
根据所述资源规格和所述第一集群的硬件资源剩余量,确定所述第一集群对应的资源对象可创建量;
根据各所述第一集群对应的资源对象可创建量,确定所述第一资源序列。
在一种可能的实现方式中,所述调度模块,具体用于:
根据所述第一资源序列,获得所有所述第一集群的资源对象可创建总量;
如果所述资源对象可创建总量大于等于所述申请数量,则在所述第一集群中确定所述目标集群,并根据所述第一集群的资源对象可创建量和所述申请数量,确定所述目标集群对应的资源对象分配量。
在一种可能的实现方式中,所述调度模块,具体用于:
如果所述资源对象可创建总量大于等于所述申请数量,则按照资源对象可创建量,对所述第一资源序列进行降序排序;
在排序后的所述第一资源序列中,依次将所述第一集群确定为所述目标集群,并根据所述第一集群的资源对象可创建量确定所述目标集群对应的资源对象分配量,直至各所述目标集群的资源对象分配量之和大于等于所述申请数量。
在一种可能的实现方式中,所述调度模块,具体用于:
如果所述资源对象可创建总量大于等于所述申请数量,则根据所述第一集群的资源对象信息,对所述第一集群中是否存在至少一个已创建所述资源对象的第二集群进行查询;
如果存在已创建所述资源对象的第二集群,则确定第二资源序列,所述第二资源序列包括所述第二集群与资源对象已创建量的对应关系;
根据所述申请数量、所述第一资源序列和所述第二资源序列,确定所述目标集群和所述目标集群对应的资源对象分配量。
在一种可能的实现方式中,所述调度模块,具体用于:
根据所述第一资源序列和所述第二资源序列,得到所有所述第二集群的资源对象总量,所有所述第二集群的资源对象总量为所有所述第二集群的资源对象可创建量和资源对象已创建量之和;
如果所有所述第二集群的资源对象总量大于等于所述申请数量,则依次将所述第二集群确定为所述目标集群,并根据所述第二集群的资源对象可创建量确定所述目标集群对应的资源对象分配量,直至所有所述目标集群的资源对象分配量和资源对象已创建量之和大于等于所述申请数量。
在一种可能的实现方式中,所述调度模块,具体用于:
如果所有所述第二集群的资源对象总量小于所述申请数量,则将所有所述第二集群确定为所述目标集群,并根据所述第二集群的资源对象可创建量确定所述目标集群的资源对象分配量;
在所述第一资源序列中,依次将所述第一集群中除所述第二集群以外的第三集群确定为所述目标集群,并根据所述第三集群的资源对象可创建量确定所述目标集群的资源对象分配量,直至所有所述目标集群的资源对象分配量和资源对象已创建量之和大于等于所述申请数量。
在一种可能的实现方式中,所述集群为Kubernetes集群。
第三方面,本公开实施例提供一种资源调度设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一方面以及第一方面各种可能的实施方式所述的资源调度方法。
第四方面,本公开实施例提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一方面以及第一方面各种可能的实施方式所述的资源调度方法。
本公开的实施例提供的资源调度方法、装置、设备及存储介质,在接收到申请创建一个或多个资源对象的资源申请请求时,获取资源对象的参数信息,参数信息中包括资源对象的资源规格和资源数量。根据用于记录多个集群的宿主机信息和资源对象信息的集群监控数据、以及资源对象的资源规格,确定第一资源序列。根据资源对象的申请数量和第一资源序列,确定目标集群和目标集群对应的资源分配量。基于目标集群的资源对象分配量向目标集群发送创建资源对象的请求。
因此,本公开的实施例综合考虑资源对象的资源规格、资源数量以及各个集群的宿主机信息和资源对象信息,合理地确定目标集群和目标集群对应的资源分配量,有效地提高在多个集群中进行资源调度的效果。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。
图1为本公开一实施例提供资源调度方法适用的架构示例图;
图2为本公开一实施例提供资源调度方法适用的应用场景示例图;
图3为本公开一实施例提供资源调度方法的流程示意图;
图4为本公开另一实施例提供资源调度方法的流程示意图;
图5为本公开一实施例提供资源调度方法的流程示例图;
图6为本公开另一实施例提供资源调度方法的流程示例图;
图7为本公开一实施例提供资源调度装置的结构示意图;
图8为本公开另一实施例提供资源调度装置的流程示意图;
图9为本公开一实施例提供资源调度设备的结构示意图。
通过上述附图,已示出本公开明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本公开的概念。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本公开一部分实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本公开保护的范围。
首先对本公开的实施例所涉及的名词进行解释:
1、容器:
在操作系统中有各式各样的进程,这些进程可以是操作系统自带的服务的进程也可以是应用程序的进程。为了减少进程之间的相互影响,目前可以采用虚拟机技术或者容器技术为进程提供相对独立的运行环境。
在容器技术中,容器是一组具有隔离特性的进程集合。容器具有独立的文件系统,换句话说,不同容器中的进程运行在各自独立的文件系统上。而且,不同容器所使用的内存、处理器等硬件资源相互隔离。相较于虚拟机,容器能够快速、灵活部署,因此,容器适用于部署在云环境中。
在容器部署过程中,应用程序或者服务可以被构建成一个容器的镜像,镜像是指容器运行所需要的所有文件集合。通过运行镜像,可以部署相应的容器。因此,一个镜像相当于是一个模板,一个容器相当于是一个具体的运行实例,镜像具有一次构建、到处运行的特点,部署灵活且迁移能力强。其中,按照容器方式进行部署的应用程序又被称为容器化应用程序。
2、集群:
在云环境(例如公有云环境或者私有云环境)中,一个集群管理多个节点(Node),每个节点是集群中单个机器的抽象含义,节点既可以是单个物理机器,例如服务器、计算机,也可以是虚拟机。在集群中,每个节点可以看作是硬件资源。在集群上部署容器时,集群可以将容器的部署任务分配一个或多个节点。因此,节点也可以被称为宿主机。
3、资源对象:
在容器部署之前,需要先申请容器运行所需的硬件资源。资源对象是用户可以申请的基础单元,一个资源对象中可以部署一个或多个容器。
4、Kubernetes集群联邦
Kubernetes脱胎于Borg系统,是指在一组宿主机上运行和协同容器化应用程序运行的技术,提供应用部署、规划、更新维护的机制,换句话说,Kubernetes是容器管理技术。
Kubernetes系统中管理多个宿主机的集群又被称为Kubernetes集群,在Kubernetes集群中通过Kubernetes应用程序编程接口(Application ProgrammingInterface,API)来操作Kubernetes中的多个对象,例如资源对象、服务对象、容器等。其中,在Kubernetes集群中,资源对象简写为pod。Kubernetes集群联邦用于实现多个Kubernetes集群的统一管理。多个Kubernetes集群可以是跨地域、跨云服务厂商的集群。
在相关技术中,除多个Kubernetes集群之外,Kubernetes集群联邦需要额外部署一个Kubernetes集群联邦的应用程序编程接口服务(Federation ApplicationProgramming Interface Server,联邦API服务)和一个etcd集群。其中,etcd是分布式键值数据库。联邦API服务用于管理多个Kubernetes集群中的kubernetes API,etcd集群将Kubernetes集群联邦跨集群创建的资源都会记录在etcd集群中。当集群数量过多时,联邦API服务会出现性能瓶颈,当资源创建量过大时,etcd集群的输入输出性能(I/O)性能也会出现瓶颈。
另外,在资源创建时依次去询问各个集群是否能够创建资源对象,当集群数量过多时,这种资源调度方式的效果不佳。
因此,随着集群的数量增多、集群的规模增大(例如一个Kubernetes集群可管理5000多个宿主机),多个集群之间的资源调度问题将会是一个比较难以管控的问题。
为提高多个集群之间的资源调度效果,本公开的实施例提供了一种资源调度方法,在该方法中,在接收到申请创建一个或多个资源对象的资源申请请求的情况下,根据资源对象的参数信息中资源对象的资源规格和集群监控数据库,确定第一资源序列,第一资源序列包至少一个第一集群与资源对象可创建量的对应关系,根据资源对象的申请数量和第一资源序列,确定目标集群和目标集群对应的资源对象分配量。
因此,本公开的实施例提供的资源调度方法在充分考虑集群的资源对象可创建量和资源对象的申请数量的前提下进行多个集群之间的资源调度,有效地提高多个集群之间的资源调度效果,而且无需对集群联邦的架构进行改造,可以兼容不同版本的集群联邦(例如Kubernetes集群联邦)。
其中,本公开的实施例提供的资源调度方法可以通过一个或多个应用程序或者服务实现,该一个或多个应用程序或者服务可以部署在多个集群以外的电子设备上,也可以部署在多个集群的宿主机上。如果集群数量增多或者资源对象的数量增多,该一个或多个应用程序或者服务可以横向扩容,换句话说,利用云服务下容器化应用易迁移、易部署的特性,该应用程序或者服务部署在多个集群以外的多个电子设备上或者部署在多个集群的多个宿主机上,以提高本公开的实施例提供的资源调度方法的资源调度能力和资源调度效果。
作为示例的,如图1所示,本公开的实施例提供的资源调度方法可以通过资源管理服务和集群管理服务实现,集群管理服务负责接收资源申请请求并与多个集群(集群1、集群2、集群3、集群4、集群5、……集群N)进行信息交互,资源管理服务负责监控各个集群的宿主机和容器。其中,集群管理服务和资源管理服务可以部署在多个集群以外的一个或多个电子设备上,或者可以部署在相同或不同的一个或多个集群上。
图2为本公开的实施例提供的资源调度方法适用的应用场景示例图。该应用场景为云服务场景,包括云平台和多个用户终端(例如用户终端1、用户终端2等),在云平台上包括多个集群(例如集群1、集群2等)和用于管理多个集群的集群联邦服务器,不同的集群可以部署在同一地理区域也可以部署在不同的地理区域,每个集群中包括多个宿主机和用于管理多个宿主机的集群服务器,宿主机上可以运行一个或多个容器。
其中,该云平台可以为公有云也可以为私有云。例如,该云平台为私有云时,可以为互联网公司内部的开发人员进行零售业务的开发提供充足的计算资源(比如开发人员为电脑上的网购商城或者移动终端上的网购应用程序提供零售业务,而在该云平台进行资源申请、编译构建、业务研发),还能够延伸至互联网公司的线下门店,为线下门店的零售业务提供计算资源和数据服务,以提高线下门店的零售业务。
下面以具体地实施例对本公开的实施例的技术方案以及本公开的技术方案如何解决上述技术问题进行详细说明。下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本公开的实施例进行描述。
图3为本公开一实施例提供的资源调度方法的流程示意图,本实施例的执行主体以电子设备为例,电子设备可以为一个或多个客户终端或者一个或多个服务器。如图3所示,该方法包括:
S301、接收终端设备的资源申请请求。
其中,终端设备可以为计算机、平板电脑、手机等设备。
其中,资源申请请求用于申请在云服务上创建一个或多个资源对象,一个资源对象可以为一个或多个容器的部署和运行提供硬件资源。
具体的,在容器部署之前,用户可在终端设备上输入相应的资源申请指令,以在容器部署之前为容器准备相应的硬件资源。例如,Kubernetes集群联邦中用户可以在终端设备上输入相应的kubectl命令行来申请创建资源对象。终端设备在检测到用户输入的资源申请指令后,可生成资源申请请求并发送给当前的电子设备。
S302、根据资源申请请求,获取资源对象的参数信息,参数信息包括资源对象的资源规格和资源对象的申请数量。
其中,资源对象的资源规格是指资源对象所包含的硬件资源大小,例如,资源对象的资源规格为2核中央处理器(central processing unit,CPU)、2GB内存空间以及10GB的磁盘空间。资源对象的申请数量即资源申请请求所申请创建的资源对象的数量。
具体的,资源申请请求中可以携带资源对象的参数信息,也可以不携带资源对象的参数信息。如果资源申请请求携带有资源对象的参数信息,则可直接从资源申请请求中,获取资源对象的参数信息,否则,可接收终端设备另行发送的资源对象的参数信息。
S303、根据资源规格和集群监控数据库,确定第一资源序列。
其中,集群监控数据库用于记录多个集群的宿主机信息和资源对象信息,多个集群位于同一集群联邦。
可选的,集群的宿主机信息包括集群的剩余硬件资源量。
在得到资源申请请求所申请创建的资源对象的参数信息后,可在集群监控数据库中获取各集群的剩余硬件资源量。将各集群的剩余硬件资源量与资源对象的资源规格进行比较,如果不存在剩余硬件资源量大于等于资源对象的资源规格的集群,则说明各集群的剩余硬件资源都不足以创建一个资源对象,向终端设备返回资源申请失败的消息。如果存在剩余硬件资源大于等于资源对象的资源规格的集群,则将剩余硬件资源大于等于资源对象的资源规格的集群确定为第一集群。其中,第一集群的数量为一个或多个。
根据第一集群的剩余硬件资源量和资源对象的资源规格,确定各第一集群分别能够创建资源对象的数量,为了简洁描述,将第一集群能够创建资源对象的数量称为第一集群的资源对象可创建量。由一个或多个第一集群和各第一集群的资源对象可创建量构成第一资源序列,因此,第一资源序列包括一个或多个第一集群与资源对象可创建量的对应关系。
作为示例的,第一集群的剩余硬件资源量为4核CPU、16GB内存空间以及20GB的磁盘空间,资源对象的资源规格为2核中央处理器(central processing unit,CPU)、2GB内存空间以及10GB的磁盘空间,则第一集群的资源对象可创建量为2。
可选的,集群的宿主机信息包括集群的总硬件资源量,集群的资源对象信息包括集群中各已创建资源对象的资源规格和各已创建资源对象的创建数量。因此,在得到资源申请请求所申请创建的资源对象的参数信息后,也可从集群监控数据库中获取各集群的总硬件资源量、各已创建资源对象的资源规格和各已创建资源对象的资源数量。针对各集群,根据集群中各已创建资源对象的资源规格和资源数量,可得到集群的已用硬件资源量,根据集群的总硬件资源量和集群的已用硬件资源量,得到集群的剩余硬件资源量。
可选的,集群的宿主机信息还可以包括集群中宿主机的数量和集群中各宿主机的总硬件资源量、剩余硬件资源量、已用硬件资源量等。依据集群中各宿主机的总硬件资源量、剩余硬件资源量、已用硬件资源量,也可确定集群的剩余硬件资源量。
可选的,集群监控数据库中建有分别用于存储宿主机信息的第一数据表和用于存储资源对象信息的第二数据表。将所有集群的宿主机信息记录在第一数据表,将所有集群的资源对象信息记录在第二数据表中。
进一步的,集群监控数据库为关系型数据库,例如MySQL数据库。
S304、根据申请数量和第一资源序列,确定目标集群和目标集群对应的资源对象分配量。
其中,目标集群的数量为一个或多个。
具体的,在得到第一资源序列后,可根据申请数量和第一资源序列中一个或多个第一集群的资源对象可创建量,在一个或多个第一集群中,确定一个或多个目标集群和各目标集群对应的资源对象分配量。目标集群对应的资源对象分配量为需要在目标集群上申请的资源对象的数量,目标集群对应的资源对象分配量小于等于该目标集群的资源对象可创建量。
S305、根据目标集群的资源对象分配量,向目标集群发送创建资源对象的请求,以在目标集群中的宿主机上创建资源对象。
具体的,在确定一个或多个目标集群的资源对象分配量后,可向各目标集群发送创建资源对象的请求,向目标集群发送的创建资源对象的请求包括资源对象的资源规格和该目标集群对应的资源对象分配量,以便目标集群根据资源对象的资源规格和该目标集群对应的资源对象分配量,在该目标集群中的宿主机上申请创建资源对象。
可选的,对目标集群上资源对象是否创建成功进行监控,如果监控打目标集群上资源对象创建成功,则根据目标集群对应的资源对象分配量,更新集群监控数据库,以提高集群监控数据库中数据的准确性。在根据目标集群对应的资源对象分配量,更新集群监控数据库,可更新集群监控数据库中目标集群的宿主机信息,例如目标集群的剩余硬件资源量,还可更新集群监控数据库中目标集群的资源对象信息,例如目标集群上资源对象的规格和数量。
作为示例的,以Kubernetes系统为例,可通过开启Kubernetes系统中list功能和watch功能,实现对各个集群的宿主机信息和资源对象信息的获取和对目标集群上资源对象是否创建成功的监控。具体的,通过list功能获取各集群的宿主机信息,并将宿主机信息记录到集群监控数据库的nodeinfo表中,通过list功能获取各集群的资源对象信息,并将资源对象信息记录到集群监控数据库的podinfo表中,还可以根据获取的资源对象信息,更新nodeinfo表中各集群的剩余硬件资源量。在资源对象的申请创建过程中,可以通过watch功能监控资源对象的创建和删除。
本公开实施例中,根据集群监控数据库和资源申请请求所申请创建资源的资源规格、资源数量,确定目标集群和目标集群对应的资源对象分配量,因此充分考虑各个集群的资源情况,依据各个集群的资源对象创建能力,在多个集群中进行资源对象的分配,有效地提高了多个集群中资源调度效果,且无需对多个集群所在的集群联邦的架构进行改造,适用于不同的集群联邦。
图4为本公开另一实施例提供的资源调度方法的流程示意图,本实施例的执行主体以电子设备为例,电子设备可以为一个或多个客户终端或者一个或多个服务器。如图4所示,该方法包括:
S401、接收终端设备的资源申请请求。
其中,S401的实现原理和技术效果可参照前述实施例,不再赘述。
S402、根据资源申请请求,获取资源对象的参数信息,参数信息包括资源对象的资源规格、资源对象的申请数量和目标区域位置。
其中,集群联邦可以跨区域布置,其中,不同区域可以为不同的地理区域,也可以为不同的机房。例如,集群联邦包括位于地理区域A的集群1、地理区域B的集群2、地理区域C的集群3等。又如,集群联邦包括位于机房a的集群4、位于机房b的集群5等。一个地理区域可以分布一个或多个集群,一个机房可以分布一个或多个集群,或者一个集群可以包括多个机房。资源对象的参数信息中的目标区域位置是指资源对象需要布置在位于目标区域位置的集群上,是用户可以根据自身需求在终端设备上选择一个或多个目标区域位置,例如在浏览器上从地理区域A、地理区域B、地理区域C中选择地理区域A作为目标区域位置。
其中,资源对象的资源规格和资源对象的申请数量可以参照步骤S302的描述,在此不再赘述。
具体的,资源申请请求中可以携带资源对象的参数信息,也可以不携带资源对象的参数信息。如果资源申请请求携带有资源对象的参数信息,则可直接从资源申请请求中,获取资源对象的参数信息,否则,可接收终端设备另行发送的资源对象的参数信息。
S403、根据目标区域位置和集群监控数据库中所有集群所在的区域位置,对集群监控数据库中所有集群进行筛选。
其中,集群监控数据库除了用于记录多个集群的宿主机信息和资源对象信息之外,还记录了各个集群所在的区域位置。除了从集群监控数据库中获取各个集群的区域位置外,也可以通过直接与各个集群进行通信来确定各个集群的区域位置。
具体的,根据集群监控数据库中各集群所在的区域位置和目标区域位置,对集群监控数据库中的所有集群进行筛选,确定位于目标区域位置的一个或多个集群。
S404、根据资源规格和集群监控数据库中筛选后的集群的硬件资源剩余量,确定第一资源序列。
具体的,在对集群监控数据库中的所有集群进行筛选,确定位于目标区域位置的一个或多个集群之后,可根据集群监控数据库,获得位于目标区域位置的各集群的剩余硬件资源量。将位于目标区域位置的各集群的剩余硬件资源量与资源对象的资源规格进行比较,如果在位于目标区域位置的各集群中不存在剩余硬件资源大于等于资源对象的资源规格的集群。则向终端设备返回资源申请失败的消息。如果在位于目标区域位置的各集群中存在剩余硬件资源大于等于资源对象的资源规格的集群,则将剩余硬件资源大于等于资源对象的资源规格的集群确定为第一集群。
根据第一集群的剩余硬件资源和资源对象的资源规格,确定第一集群的资源对象可创建量。由一个或多个第一集群和各第一集群的资源对象可创建量构成第一资源序列。
S405、根据申请数量和第一资源序列,确定目标集群和目标集群对应的资源对象分配量。
S406、根据目标集群的资源对象分配量,向目标集群发送创建资源对象的请求,以在目标集群中的宿主机上创建资源对象。
其中,S405、S406的实现原理和技术效果可参照前述实施例,不再赘述。
本公开实施例中,根据集群监控数据库和资源申请请求所申请创建资源的资源规格、资源数量、目标区域位置,确定目标集群和目标集群对应的资源对象分配量,因此充分考虑各个集群的资源情况,依据各个集群的资源对象创建能力,在多个集群中进行资源对象的分配,有效地提高了多个集群中资源调度效果,且无需对多个集群所在的集群联邦的架构进行改造,适用于不同的集群联邦。
在一些实施例中,S304或S405的一种可能的实现方式为:根据第一资源序列,获取所有第一集群的资源对象可创建总量;如果资源对象可创建总量大于等于申请数量,则在第一集群中确定目标集群,并根据第一集群的资源对象可创建量和申请数量,确定目标集群对应的资源对象分配量。
具体的,可在第一资源序列中获取各个第一集群的资源对象可创建量,将各个第一集群的资源对象可创建量相加,得到所有第一集群的资源对象可创建总量。将所有第一集群的资源对象可创建总量与资源申请请求所申请的资源对象的申请数量进行比较,如果第一集群的资源对象可创建总量大于等于申请数量,说明能够在各个第一集群中能够完成申请数量个资源对象的创建,因此,可在第一集群中确定一个或多个目标集群,并根据第一集群的资源对象可创建量和申请数量,确定各个目标集群对应的资源对象分配量。其中,各个目标集群对应的资源对象分配量之和大于等于申请数量。
如果第一集群的资源对象可创建总量小于申请数量,则说明在各个第一集群中无法完成申请数量个资源对象的创建,因此,可向终端设备返回申请失败的消息,还可提醒用户减少资源对象的申请数量。
在一些实施例中,S304或S405的另一种可能的实现方式为:根据第一资源序列,获取所有第一集群的资源对象可创建总量;如果资源对象可创建总量大于等于申请数量,则按照资源对象可创建量,对第一资源序列进行降序排序;在排序后的第一资源序列中,依次将第一集群确定为目标集群,并根据第一集群的资源对象可创建量确定目标集群对应的资源对象分配量,直至各个目标集群的资源对象分配量之和大于等于申请数量。
具体的,可在第一资源序列中获取各个第一集群的资源对象可创建量,将各个第一集群的资源对象可创建量相加,得到所有第一集群的资源对象可创建总量。将所有第一集群的资源对象可创建总量与资源申请请求所申请的资源对象的申请数量进行比较,如果第一集群的资源对象可创建总量大于等于申请数量,说明能够在各个第一集群中能够完成申请数量个资源对象的创建,此时可按照资源对象可创建量,对第一资源序列进行降序排序,也即,在第一资源序列中各第一集群按照资源对象可创建量从多到少的顺序排序。
具体的,在对第一资源序列进行降序排序后,先将第一资源序列中的首个第一集群确定为目标集群,如果该目标集群的资源对象可创建量大于等于申请数量,则将申请数量确定为该目标集群的资源对象分配量,并且结束资源对象的分配。如果该目标集群的资源对象可创建量小于申请数量,则将该目标集群的资源对象可创建量确定为该目标集群的资源对象分配量。接着,将第一资源序列中下一个第一集群确定为目标集群,如果该目标集群的资源对象可创建量加上已确定的目标集群的资源对象分配量大于等于申请数量,则将申请数量与该目标集群的资源对象可创建量之差确定为该目标集群的资源对象分配量,结束资源对象的分配。否则,将该目标集群的资源对象可创建量确定为该目标集群的资源对象分配量,再将下一个第一集群确定为目标集群。如此依次将一个或多个第一集群确定为目标集群,直至目标集群的资源对象分配量大于等于申请数量。
因此,本实施例中充分考虑各个第一集群的资源对象可创建量并有序地根据第一集群确定目标集群和目标集群的资源对象分配量,有效地提高了多个集群中资源调度的合理性和效率,进而提高了资源调度效果。
在一些实施例中,在当前用户为某一应用程序或者服务的容器化运行申请创建资源对象时,可能已有其他用户为该应用程序或服务申请有同样的资源对象,又未及时更新到资源管理数据库中。因此,为尽量提高集群联邦中该资源对象的数量尽量接近申请数量,S404或S405的另一种可能的实现方式为:根据第一资源序列,获取所有第一集群的资源对象可创建总量;如果资源对象可创建总量大于等于申请数量,根据第一集群的资源对象信息,对第一集群中是否存在至少一个已创建所申请资源对象的第二集群进行查询;如果存在已创建所申请资源对象的第二集群,则确定第二资源序列,第二资源序列包括第二集群和资源对象已创建量的对应关系;根据申请数量、第一资源序列和第二资源序列,确定目标集群和目标集群对应的资源对象分配量。
具体的,如果资源对象可创建总量大于等于申请数量,则针对第一资源序列中的各个第一集群,向各个第一集群发送资源对象创建查询信息,已查询所有第一集群是否已创建有该次资源申请请求所申请的资源对象,若存在至少一个第一集群上已创建有该次资源申请请求所申请的资源对象,则确定第一集群中存在至少一个已创建所申请资源对象的第二集群,否则确定第一集群中不存在已创建所申请资源对象的第二集群。
如果第一集群中存在至少一个已创建所申请资源对象的第二集群,则获取各个第二集群上已创建的该资源对象的数量,为了简洁描述,将第二集群上已创建的该资源对象的数量称为第二集群的资源对象已创建量。根据第二集群的资源对象已创建量,建立第二资源序列,第二资源序列包括第二集群和资源对象已创建量的对应关系。依据申请数量、第一资源序列和第二资源序列,确定目标集群和目标集群对应的资源对象分配量,使得目标集群对应的资源对象分配量和资源对象已创建量之和大于等于申请数量。因此,在充分考虑集群的资源对象可创建量和资源对象已创建量的前提下,在多个集群中进行资源对象创建任务的分配,有效提高资源调度效果。
如果第一集群中不存在已创建所申请资源对象的第二集群,则依据申请数量和第一资源序列,确定目标集群和目标集群对应的资源对象分配量,具体的实现原理和技术效果可参照前述实施例,不再赘述。
可选的,在依据申请数量、第一资源序列和第二资源序列,确定目标集群和目标集群对应的资源对象分配量的过程中,根据第一资源序列和第二资源序列,得到所有第二集群的资源对象总量,所有第二集群的资源对象总量为所有第二集群的资源对象可创建量和资源对象已创建量之和;如果所有第二集群的资源对象总量大于等于申请数量,则依次将第二集群确定为目标集群,并根据第二集群的资源对象可创建量确定目标集群对应的资源对象分配量,直至所有目标集群的资源对象分配量和资源对象已创建量之和大于等于申请数量,结束资源对象创建任务的分配。
在第一资源序列中,获取各第二集群的资源对象可创建量,在第二资源序列中,获取各第二集群的资源对象已创建量。将所有第二集群的资源对象可创建量和资源对象已创建量相加,得到所有第二集群的资源对象总量。将所有第二集群的资源对象总量与申请数量进行比较,如果所有第二集群的资源对象总量大于等于申请数量,则说明所有第二集群的硬件资源足以创建申请数量个资源对象,因此可依次将第二集群确定为目标集群,并根据第二集群的资源对象可创建量确定目标集群对应的资源对象分配量,直至所有目标集群的资源对象分配量和资源对象已创建量之和大于等于申请数量,结束资源对象创建任务的分配。因此,尽量将资源对象布置在已创建有该资源对象的第二集群上,提高多个集群中资源调度的合理性。
在依次将第二集群确定为目标集群,并根据第二集群的资源对象可创建量确定目标集群对应的资源对象分配量的过程中,也可以按照各个第二集群的资源对象可创建量对第二资源序列进行排序,在排序后的第二资源序列中,按照排序顺序,将首个第二集群确定为目标集群,确定该目标集群的资源对象可分配量加上该目标集群的资源对象已创建量是否大于等于申请数量,若是,则将申请数量与该目标集群的资源对象已创建量的差值,确定为该目标集群的资源对象分配量,完成资源对象创建任务的分配。若否,则将该目标集群的资源对象可创建量确定为该目标集群的资源对象分配量,并继续对下一个第二集群进行上述过程,直至所有目标集群的资源对象分配量与所有目标集群的资源对象已创建量之和大于等于申请数量。
如果所有第二集群的资源对象总量小于申请数量,则说明所有第二集群的硬件资源不足以创建申请数量个资源对象,还需要在第一集群中除第二集群以外的集群上申请创建资源对象,为了便于区分,将第一集群中除第二集群以外的集群称为第三集群。因此,如果所有第二集群的资源对象总量小于申请数量,则将所有第二集群确定为目标集群,并根据第二集群的资源对象可创建量确定为目标集群的资源对象分配量。接着,在第一资源序列中,依次将第三集群确定为目标集群,并根据第三集群的资源对象可创建量确定目标集群的资源对象分配量,直至所有目标集群的资源对象分配量和资源对象已创建量之和大于等于申请数量。
在将第三集群确定为目标集群,并根据第三集群的资源对象可创建量确定目标集群的资源对象分配量的过程中,可从第一资源序列中,将首个第三集群确定为目标集群,如果该目标集群的资源对象可创建量、所有已确定的目标集群的资源对象分配量和所有已确定的目标集群的资源对象已创建量之和大于等于申请数量,则将申请数量与所有已确定的目标集群的资源对象分配量和所有已确定的目标集群的资源对象已创建量之和的差,确定为依据首个第三集群确定的目标集群的资源对象分配量。如果该目标集群的资源对象可创建量、所有已确定的目标集群的资源对象分配量和所有已确定的目标集群的资源对象已创建量之和小于申请数量,则将依据首个第三集群确定的目标集群的资源对象可创建量,确定为该目标集群的资源对象分配量。如此依次将第三集群确定为目标集群,直至所有目标集群的资源对象分配量和资源对象已创建量之和大于等于申请数量。
可选的,前述实施例中的集群联邦为Kubernetes集群联邦,前述实施例中的集群为Kubernetes集群,从而有效地提高Kubernetes集群联邦中多个Kubernetes集群之间的资源调度效果。
作为示例的,以本公开的实施例提供的资源调度方法通过资源管理服务和集群管理服务实现为例,如图5所示,本公开的实施例提供的资源调度方法包括:(1)集群管理服务接收终端设备的资源申请请求,根据资源申请请求,获取资源对象的参数信息;(2)集群管理服务将资源对象的参数信息中参数对象的资源规格发送资源管理服务;(3)资源管理服务根据资源规格和集群监控数据库,确定第一资源序列,第一资源序列包括至少一个第一集群与资源对象可创建量的对应关系;(4)资源管理服务将第一资源序列发送给集群管理服务;(5)集群管理服务根据申请数量和第一资源序列,确定目标集群与目标集群对应的资源对象分配量;(6)集群管理服务根据目标集群的资源对象分配量,向目标集群发送创建资源对象的请求。
进一步的,以集群联邦为Kubernetes集群联邦、集群为Kubernetes集群、资源对象的参数信息还包括目标机房为例,如图6所示,本公开的实施例提供的资源调度方法包括:(1)集群管理服务接收终端设备的资源申请请求,根据资源申请请求,获取资源对象的资源规格、申请数量和目标机房;(2)集群管理服务根据目标机房,筛选出位于目标机房的Kubernetes集群的集群名称;(3)集群管理服务将位于目标机房的Kubernetes集群的集群名称和资源对象的资源规格发送给资源管理服务;(4)资源管理服务根据位于目标机房的Kubernetes集群的集群名称和资源对象的资源规格,在位于目标机房的Kubernetes集群中,过滤掉剩余硬件资源量不满足资源规格的Kubernetes集群;(5)资源管理服务计算过滤剩下的Kubernetes集群的资源对象可创建量,以集群名称+资源对象可创建量的方式得到第一资源序列;(6)资源管理服务向集群管理服务返回第一资源序列;(7)针对第一资源序列中的各Kubernetes集群,集群管理服务判断Kubernetes集群的资源对象可创建总量是否大于等于申请量,若否,则直接结束资源调度,若是,则继续以及第一资源序列确定目标集群和各目标集群的资源对象分配量;(8)根据各目标集群的资源对象分配量向各目标集群申请创建资源对象。
图7为本公开一实施例提供的资源调度装置的结构示意图。如图7所示,该资源调度装置700包括:接收模块701、获取模块702、调度模块703、发送模块704。
接收模块701,用于接收终端设备的资源申请请求,资源申请请求用于申请创建一个或多个资源对象;
获取模块702,用于根据资源申请请求,获取资源对象的参数信息,参数信息包括资源对象的资源规格和资源对象的申请数量;
调度模块703,用于根据资源规格和集群监控数据库,确定第一资源序列,第一资源序列包括至少一个第一集群与资源对象可创建量的对应关系,集群监控数据库用于记录多个集群的宿主机信息和资源对象信息,根据申请数量和第一资源序列,确定目标集群和目标集群对应的资源对象分配量;
发送模块704,用于根据目标集群的资源对象分配量,向目标集群发送创建资源对象的请求,以在目标集群中的宿主机上创建资源对象。
本公开实施例中,根据集群监控数据库和资源申请请求所申请创建资源的资源规格、资源数量,确定目标集群和目标集群对应的资源对象分配量,因此充分考虑各个集群的资源情况,依据各个集群的资源对象创建能力,在多个集群中进行资源对象的分配,有效地提高了多个集群中资源调度效果,且无需对多个集群所在的集群联邦的架构进行改造,适用于不同的集群联邦。
在一种可能的实现方式中,如图8所示,资源调度装置700还包括:
更新模块705,用于在监控到目标集群上资源对象创建成功的情况下,根据目标集群对应的资源对象分配量,更新集群监控数据库。
在一种可能的实现方式中,集群的宿主机信息包括集群的剩余硬件资源量,调度模块703,具体用于:
根据资源规格和集群监控数据库中多个集群的硬件资源剩余量,确定第一资源序列。
在一种可能的实现方式中,参数信息还包括资源对象所属的目标区域位置,集群监控数据库还用于记录所有集群所在的区域位置,资源调度装置700还包括:
筛选模块,用于根据目标区域位置和集群监控数据库中所有集群所在的区域位置,对集群监控数据库中所有集群进行筛选;
调度模块703,具体用于:
根据资源规格和集群监控数据库中筛选后的集群的硬件资源剩余量,确定第一资源序列。
在一种可能的实现方式中,调度模块703,具体用于:
在集群监控数据库中,将硬件资源剩余量大于等于资源规格的至少一个集群,确定为第一集群;
根据资源规格和第一集群的硬件资源剩余量,确定第一集群对应的资源对象可创建量;
根据各第一集群对应的资源对象可创建量,确定第一资源序列。
在一种可能的实现方式中,调度模块703,具体用于:
根据第一资源序列,获得所有第一集群的资源对象可创建总量;
如果资源对象可创建总量大于等于申请数量,则在第一集群中确定目标集群,并根据第一集群的资源对象可创建量和申请数量,确定目标集群对应的资源对象分配量。
在一种可能的实现方式中,调度模块703,具体用于:
如果资源对象可创建总量大于等于申请数量,则按照资源对象可创建量,对第一资源序列进行降序排序;
在排序后的第一资源序列中,依次将第一集群确定为目标集群,并根据第一集群的资源对象可创建量确定目标集群对应的资源对象分配量,直至各目标集群的资源对象分配量之和大于等于申请数量。
在一种可能的实现方式中,调度模块703,具体用于:
如果资源对象可创建总量大于等于申请数量,则根据第一集群的资源对象信息,对第一集群中是否存在至少一个已创建资源对象的第二集群进行查询;
如果存在已创建资源对象的第二集群,则确定第二资源序列,第二资源序列包括第二集群与资源对象已创建量的对应关系;
根据申请数量、第一资源序列和第二资源序列,确定目标集群和目标集群对应的资源对象分配量。
在一种可能的实现方式中,调度模块703,具体用于:
根据第一资源序列和第二资源序列,得到所有第二集群的资源对象总量,所有第二集群的资源对象总量为所有第二集群的资源对象可创建量和资源对象已创建量之和;
如果所有第二集群的资源对象总量大于等于申请数量,则依次将第二集群确定为目标集群,并根据第二集群的资源对象可创建量确定目标集群对应的资源对象分配量,直至所有目标集群的资源对象分配量和资源对象已创建量之和大于等于申请数量。
在一种可能的实现方式中,调度模块703,具体用于:
如果所有第二集群的资源对象总量小于申请数量,则将所有第二集群确定为目标集群,并根据第二集群的资源对象可创建量确定目标集群的资源对象分配量;
在第一资源序列中,依次将第一集群中除第二集群以外的第三集群确定为目标集群,并根据第三集群的资源对象可创建量确定目标集群的资源对象分配量,直至所有目标集群的资源对象分配量和资源对象已创建量之和大于等于申请数量。
在一种可能的实现方式中,集群为Kubernetes集群。
本公开实施例提供的集群调度装置,可用于执行上述的方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
图9为本公开一实施例提供的资源调度设备的结构示意图。如图9所示,本实施例提供的资源调度设备900包括:至少一个处理器901和存储器902。该资源调度设备900还包括通信部件903。其中,处理器901、存储器902以及通信部件903通过总线904连接。
在具体实现过程中,至少一个处理器901执行存储器902存储的计算机执行指令,使得至少一个处理器901执行如上的资源调度方法。
处理器901的具体实现过程可参见上述方法实施例,其实现原理和技术效果类似,本实施例此处不再赘述。
在上述的图9所示的实施例中,应理解,处理器可以是中央处理单元(英文:Central Processing Unit,简称:CPU),还可以是其他通用处理器、数字信号处理器(英文:Digital Signal Processor,简称:DSP)、专用集成电路(英文:Application SpecificIntegrated Circuit,简称:ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合发明所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
存储器可能包含高速RAM存储器,也可能还包括非易失性存储NVM,例如至少一个磁盘存储器。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component Interconnect,PCI)总线或扩展工业标准体系结构(Extended Industry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本公开附图中的总线并不限定仅有一根总线或一种类型的总线。
本公开还提供一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上的建表语句生成方法。
上述的计算机可读存储介质,上述可读存储介质可以是由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。可读存储介质可以是通用或专用计算机能够存取的任何可用介质。
一种示例性的可读存储介质耦合至处理器,从而使处理器能够从该可读存储介质读取信息,且可向该可读存储介质写入信息。当然,可读存储介质也可以是处理器的组成部分。处理器和可读存储介质可以位于专用集成电路(Application Specific IntegratedCircuits,简称:ASIC)中。当然,处理器和可读存储介质也可以作为分立组件存在于设备中。
最后应说明的是:以上各实施例仅用以说明本公开的技术方案,而非对其限制;尽管参照前述各实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本公开各实施例技术方案的范围。

Claims (14)

1.一种资源调度方法,其特征在于,所述方法包括:
接收终端设备的资源申请请求,所述资源申请请求用于申请创建一个或多个资源对象;
根据所述资源申请请求,获取所述资源对象的参数信息,所述参数信息包括所述资源对象的资源规格和所述资源对象的申请数量;
根据所述资源规格和集群监控数据库,确定第一资源序列,所述第一资源序列包括至少一个第一集群与资源对象可创建量的对应关系,所述集群监控数据库用于记录多个集群的宿主机信息和资源对象信息;
根据所述申请数量和所述第一资源序列,确定目标集群和所述目标集群对应的资源对象分配量;
根据所述目标集群的资源对象分配量,向所述目标集群发送创建所述资源对象的请求,以在所述目标集群中的宿主机上创建所述资源对象。
2.根据权利要求1所述的方法,其特征在于,所述向所述目标集群发送创建所述资源对象的请求,所述方法还包括:
在监控到所述目标集群上所述资源对象创建成功的情况下,根据所述目标集群对应的资源对象分配量,更新所述集群监控数据库。
3.根据权利要求1所述的方法,其特征在于,所述集群的宿主机信息包括所述集群的剩余硬件资源量,所述根据所述资源规格和集群监控数据库,确定第一资源序列,包括:
根据所述资源规格和所述集群监控数据库中多个集群的硬件资源剩余量,确定所述第一资源序列。
4.根据权利要求3所述的方法,其特征在于,所述参数信息还包括所述资源对象所属的目标区域位置,所述集群监控数据库还用于记录所有集群所在的区域位置,所述根据所述资源规格和集群监控数据库,确定第一资源序列之前,所述方法还包括:
根据所述目标区域位置和所述集群监控数据库中所有集群所在的区域位置,对所述集群监控数据库中所有集群进行筛选;
所述根据所述资源规格和集群监控数据库,确定第一资源序列,包括:
根据所述资源规格和所述集群监控数据库中筛选后的集群的硬件资源剩余量,确定所述第一资源序列。
5.根据权利要求4所述的方法,其特征在于,所述根据所述资源规格和集群监控数据库,确定第一资源序列,包括:
在所述集群监控数据库中,将硬件资源剩余量大于等于所述资源规格的至少一个集群,确定为所述第一集群;
根据所述资源规格和所述第一集群的硬件资源剩余量,确定所述第一集群对应的资源对象可创建量;
根据各所述第一集群对应的资源对象可创建量,确定所述第一资源序列。
6.根据权利要求4所述的方法,其特征在于,所述根据所述申请数量和所述第一资源序列,确定目标集群和所述目标集群对应的资源对象分配量,包括:
根据所述第一资源序列,获得所有所述第一集群的资源对象可创建总量;
如果所述资源对象可创建总量大于等于所述申请数量,则在所述第一集群中确定所述目标集群,并根据所述第一集群的资源对象可创建量和所述申请数量,确定所述目标集群对应的资源对象分配量。
7.根据权利要求6所述的方法,其特征在于,所述根据所述申请数量和所述第一资源序列,确定目标集群和所述目标集群对应的资源对象分配量,还包括:
如果所述资源对象可创建总量大于等于所述申请数量,则按照资源对象可创建量,对所述第一资源序列进行降序排序;
在排序后的所述第一资源序列中,依次将所述第一集群确定为所述目标集群,并根据所述第一集群的资源对象可创建量确定所述目标集群对应的资源对象分配量,直至各所述目标集群的资源对象分配量之和大于等于所述申请数量。
8.根据权利要求6所述的方法,其特征在于,所述根据所述申请数量和所述第一资源序列,确定目标集群和所述目标集群对应的资源对象分配量,还包括:
如果所述资源对象可创建总量大于等于所述申请数量,则根据所述第一集群的资源对象信息,对所述第一集群中是否存在至少一个已创建所述资源对象的第二集群进行查询;
如果存在已创建所述资源对象的第二集群,则确定第二资源序列,所述第二资源序列包括所述第二集群与资源对象已创建量的对应关系;
根据所述申请数量、所述第一资源序列和所述第二资源序列,确定所述目标集群和所述目标集群对应的资源对象分配量。
9.根据权利要求8所述的方法,其特征在于,所述根据所述申请数量、所述第一资源序列和所述第二资源序列,确定所述目标集群和所述目标集群对应的资源对象分配量,包括:
根据所述第一资源序列和所述第二资源序列,得到所有所述第二集群的资源对象总量,所有所述第二集群的资源对象总量为所有所述第二集群的资源对象可创建量和资源对象已创建量之和;
如果所有所述第二集群的资源对象总量大于等于所述申请数量,则依次将所述第二集群确定为所述目标集群,并根据所述第二集群的资源对象可创建量确定所述目标集群对应的资源对象分配量,直至所有所述目标集群的资源对象分配量和资源对象已创建量之和大于等于所述申请数量。
10.根据权利要求9所述的方法,其特征在于,所述根据所述申请数量、所述第一资源序列和所述第二资源序列,确定所述目标集群和所述目标集群对应的资源对象分配量,还包括:
如果所有所述第二集群的资源对象总量小于所述申请数量,则将所有所述第二集群确定为所述目标集群,并根据所述第二集群的资源对象可创建量确定所述目标集群的资源对象分配量;
在所述第一资源序列中,依次将所述第一集群中除所述第二集群以外的第三集群确定为所述目标集群,并根据所述第三集群的资源对象可创建量确定所述目标集群的资源对象分配量,直至所有所述目标集群的资源对象分配量和资源对象已创建量之和大于等于所述申请数量。
11.根据权利要求1-10任一项所述的方法,其特征在于,所述集群为Kubernetes集群。
12.一种资源调度装置,其特征在于,所述装置包括:
接收模块,用于接收终端设备的资源申请请求,所述资源申请请求用于申请创建一个或多个资源对象;
获取模块,用于根据所述资源申请请求,获取所述资源对象的参数信息,所述参数信息包括所述资源对象的资源规格和所述资源对象的申请数量;
调度模块,用于根据所述资源规格和集群监控数据库,确定第一资源序列,所述第一资源序列包括至少一个第一集群与资源对象可创建量的对应关系,所述集群监控数据库用于记录多个集群的宿主机信息和资源对象信息,根据所述申请数量和所述第一资源序列,确定目标集群和所述目标集群对应的资源对象分配量;
发送模块,用于根据所述目标集群的资源对象分配量,向所述目标集群发送创建所述资源对象的请求,以在所述目标集群中的宿主机上创建所述资源对象。
13.一种资源调度设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器用于存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1-11任一项所述的方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1-11任一项所述的方法。
CN202110086447.5A 2021-01-22 2021-01-22 资源调度方法、装置、设备及介质 Pending CN113760446A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110086447.5A CN113760446A (zh) 2021-01-22 2021-01-22 资源调度方法、装置、设备及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110086447.5A CN113760446A (zh) 2021-01-22 2021-01-22 资源调度方法、装置、设备及介质

Publications (1)

Publication Number Publication Date
CN113760446A true CN113760446A (zh) 2021-12-07

Family

ID=78786375

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110086447.5A Pending CN113760446A (zh) 2021-01-22 2021-01-22 资源调度方法、装置、设备及介质

Country Status (1)

Country Link
CN (1) CN113760446A (zh)

Similar Documents

Publication Publication Date Title
US11704144B2 (en) Creating virtual machine groups based on request
WO2020253347A1 (zh) 一种容器集群管理方法、装置及系统
US11960915B2 (en) Method and apparatus for creating virtual machine based on parameter information of a virtual network interface card
US20210406079A1 (en) Persistent Non-Homogeneous Worker Pools
US11586673B2 (en) Data writing and reading method and apparatus, and cloud storage system
US8104038B1 (en) Matching descriptions of resources with workload requirements
CN113296792B (zh) 存储方法、装置、设备、存储介质和系统
JP5352890B2 (ja) 計算機システムの運用管理方法、計算機システム及びプログラムを記憶する計算機読み取り可能な媒体
CN114244717B (zh) 虚拟网卡资源的配置方法、装置、计算机设备及介质
CN111897558A (zh) 容器集群管理系统Kubernetes升级方法和装置
US11528186B2 (en) Automated initialization of bare metal servers
CN110520844A (zh) 云管理平台、虚拟机管理方法及其系统
US20230342183A1 (en) Management method and apparatus for container cluster
US11108638B1 (en) Health monitoring of automatically deployed and managed network pipelines
CN112003754A (zh) 一种OpenStack集群的可视化节点注册方法
CN113986539A (zh) 实现pod固定IP的方法、装置、电子设备和可读存储介质
CN109905258B (zh) PaaS的管理方法、装置及存储介质
US11750451B2 (en) Batch manager for complex workflows
CN114827177B (zh) 一种分布式文件系统的部署方法、装置及电子设备
CN114070889B (zh) 配置方法、流量转发方法、设备、存储介质及程序产品
US11977559B2 (en) Providing instant and distributed access to a source blob via copy-on-read blobs and link blobs
CN113760446A (zh) 资源调度方法、装置、设备及介质
CN115150268A (zh) Kubernetes集群的网络配置方法、装置、及电子设备
US20210373868A1 (en) Automated Deployment And Management Of Network Intensive Applications
CN112889247B (zh) Vnf服务实例化方法及装置

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