CN113961314B - 一种容器应用调度方法、装置、电子设备及存储介质 - Google Patents

一种容器应用调度方法、装置、电子设备及存储介质 Download PDF

Info

Publication number
CN113961314B
CN113961314B CN202111536894.2A CN202111536894A CN113961314B CN 113961314 B CN113961314 B CN 113961314B CN 202111536894 A CN202111536894 A CN 202111536894A CN 113961314 B CN113961314 B CN 113961314B
Authority
CN
China
Prior art keywords
computing node
container
local storage
cached
mirror image
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.)
Active
Application number
CN202111536894.2A
Other languages
English (en)
Other versions
CN113961314A (zh
Inventor
郭春庭
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202111536894.2A priority Critical patent/CN113961314B/zh
Publication of CN113961314A publication Critical patent/CN113961314A/zh
Application granted granted Critical
Publication of CN113961314B publication Critical patent/CN113961314B/zh
Priority to US18/571,641 priority patent/US20240192989A1/en
Priority to PCT/CN2022/095378 priority patent/WO2023109015A1/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • 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/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

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

Abstract

本申请提供一种容器应用调度方法、装置、电子设备及存储介质,该方法包括:获取待调度的容器应用的镜像文件信息和所有计算节点的镜像文件缓存信息;其中,镜像文件缓存信息包括计算节点的本地存储剩余资源和已缓存的容器镜像层文件信息;根据镜像文件信息和各计算节点已缓存的容器镜像层文件信息,确定容器应用对各计算节点的本地存储资源需求;根据本地存储资源需求和各计算节点的本地存储剩余资源,确定用于进行容器应用调度的目标计算节点。上述方案提供的方法,通过根据不同计算节点的本地存储资源使用情况,确定目标计算计算节点,以确保该目标计算节点能够缓存待调度的容器应用的整体镜像,提高了容器应用调度的成功率。

Description

一种容器应用调度方法、装置、电子设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及一种容器应用调度方法、装置、电子设备及存储介质。
背景技术
云原生是基于分布部署和统一运管的分布式云,以容器、微服务和DevOps等技术为基础建立的一套云技术产品体系。目前,以容器为代表的云原生技术使用率越来越多,给各类应用带来灵活和弹性等便利,在容器云平台的构建方面,如何自动化部署容器应用成为了重点研究内容。
在现有技术中,通常根据各个计算节点的运行内存,从这些计算节点中选取运行内存足以满足容器调度需求的目标计算节点,以基于该目标计算节点进行后续的容器调度操作。
但是,计算节点在调度容器时,需要缓存容器镜像,以便能够在该计算节点启动容器进行计算,若该节点的本地存储耗尽,该计算节点即使在运行内存充足的情况下,也无法继续承载容器应用调度,无法保证容器应用调度的成功率。
发明内容
本申请提供一种容器应用调度方法、装置、电子设备及存储介质,以解决现有技术无法保证容器应用调度的成功率等缺陷。
本申请第一个方面提供一种容器应用调度方法,包括:
获取待调度的容器应用的镜像文件信息和所有计算节点的镜像文件缓存信息;其中,所述镜像文件缓存信息包括所述计算节点的本地存储剩余资源和已缓存的容器镜像层文件信息;
根据所述镜像文件信息和各所述计算节点已缓存的容器镜像层文件信息,确定所述容器应用对各所述计算节点的本地存储资源需求;
根据所述本地存储资源需求和各所述计算节点的本地存储剩余资源,确定用于进行容器应用调度的目标计算节点。
可选的,所述根据所述镜像文件信息和各所述计算节点已缓存的容器镜像层文件信息,确定所述容器应用对各所述计算节点的本地存储资源需求,包括:
根据所述镜像文件信息和各所述计算节点已缓存的容器镜像层文件信息,确定各所述计算节点待缓存的容器镜像层文件信息;
根据所述待缓存的容器镜像层文件信息,确定所述容器应用对各所述计算节点的本地存储资源需求。
可选的,所述根据所述本地存储资源需求和各所述计算节点的本地存储剩余资源,确定用于进行容器应用调度的目标计算节点,包括:
判断各所述计算节点的本地存储剩余资源是否足以满足对应的本地存储资源需求;
将所述本地存储剩余资源足以满足对应的本地存储资源需求的计算节点,确定为候选计算节点;
根据各所述候选计算节点对应的本地存储资源需求的大小,确定各所述候选计算节点的优先级;
将所述优先级最高的候选计算节点,确定为所述目标计算节点。
可选的,所述本地存储资源需求表征该计算节点待缓存的容器镜像层文件的总大小,所述根据各所述候选计算节点对应的本地存储资源需求的大小,确定各所述候选计算节点的优先级,包括:
针对各所述候选计算节点待缓存的每个容器镜像层文件,将所述待缓存的容器镜像层文件已缓存命中的计算节点个数与计算节点总数之间的比值,确定为所述待缓存的容器镜像层文件的加权系数;
根据各所述候选计算节点待缓存的每个容器镜像层文件的大小和各所述待缓存的容器镜像层文件对应的加权系数,确定各所述候选计算节点的优先级。
可选的,还包括:
获取所述待调度的容器应用的资源请求和各所述计算节点的内存资源信息;
根据所述待调度的容器应用的资源请求和各所述计算节点的内存资源信息,确定待过滤的计算节点。
可选的,还包括:
获取所述目标计算节点的定位信息;
将所述定位信息发送至容器应用管理中心,以使所述容器应用管理中心能够基于所述定位信息向所述目标计算节点下发容器应用调度任务。
可选的,还包括:
判断所述待调度的容器应用的容器调度方式是否为多副本Pod调度;
若是,则基于预设的计算节点强制反亲和性策略,为每个Pod确定对应的所述目标计算节点。
本申请第二个方面提供一种容器应用调度装置,包括:
获取模块,用于获取待调度的容器应用的镜像文件信息和所有计算节点的镜像文件缓存信息;其中,所述镜像文件缓存信息包括所述计算节点的本地存储剩余资源和已缓存的容器镜像层文件信息;
确定模块,用于根据所述镜像文件信息和各所述计算节点已缓存的容器镜像层文件信息,确定所述容器应用对各所述计算节点的本地存储资源需求;
调度模块,用于根据所述本地存储资源需求和各所述计算节点的本地存储剩余资源,确定用于进行容器应用调度的目标计算节点。
可选的,所述确定模块,具体用于:
根据所述镜像文件信息和各所述计算节点已缓存的容器镜像层文件信息,确定各所述计算节点待缓存的容器镜像层文件信息;
根据所述待缓存的容器镜像层文件信息,确定所述容器应用对各所述计算节点的本地存储资源需求。
可选的,所述调度模块,具体用于:
判断各所述计算节点的本地存储剩余资源是否足以满足对应的本地存储资源需求;
将所述本地存储剩余资源足以满足对应的本地存储资源需求的计算节点,确定为候选计算节点;
根据各所述候选计算节点对应的本地存储资源需求的大小,确定各所述候选计算节点的优先级;
将所述优先级最高的候选计算节点,确定为所述目标计算节点。
可选的,所述调度模块,具体用于:
针对各所述候选计算节点待缓存的每个容器镜像层文件,将所述待缓存的容器镜像层文件已缓存命中的计算节点个数与计算节点总数之间的比值,确定为所述待缓存的容器镜像层文件的加权系数;
根据各所述候选计算节点待缓存的每个容器镜像层文件的大小和各所述待缓存的容器镜像层文件对应的加权系数,确定各所述候选计算节点的优先级。
可选的,所述装置还包括:
过滤模块,用于获取所述待调度的容器应用的资源请求和各所述计算节点的内存资源信息;根据所述待调度的容器应用的资源请求和各所述计算节点的内存资源信息,确定待过滤的计算节点。
可选的,所述调度模块,还用于:
获取所述目标计算节点的定位信息;
将所述定位信息发送至容器应用管理中心,以使所述容器应用管理中心能够基于所述定位信息向所述目标计算节点下发容器应用调度任务。
可选的,所述调度模块,还用于:
判断所述待调度的容器应用的容器调度方式是否为多副本Pod调度;
若是,则基于预设的计算节点强制反亲和性策略,为每个Pod确定对应的所述目标计算节点。
本申请第三个方面提供一种电子设备,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如上第一个方面以及第一个方面各种可能的设计所述的方法。
本申请第四个方面提供一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如上第一个方面以及第一个方面各种可能的设计所述的方法。
本申请技术方案,具有如下优点:
本申请提供的容器应用调度方法、装置、电子设备及存储介质,通过获取待调度的容器应用的镜像文件信息和所有计算节点的镜像文件缓存信息;其中,镜像文件缓存信息包括计算节点的本地存储剩余资源和已缓存的容器镜像层文件信息;根据镜像文件信息和各计算节点已缓存的容器镜像层文件信息,确定容器应用对各计算节点的本地存储资源需求;根据本地存储资源需求和各计算节点的本地存储剩余资源,确定用于进行容器应用调度的目标计算节点。上述方案提供的方法,通过根据不同计算节点的本地存储资源使用情况,确定目标计算计算节点,以确保该目标计算节点能够缓存待调度的容器应用的整体镜像,提高了容器应用调度的成功率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,还可以根据这些附图获得其他的附图。
图1为本申请实施例基于的容器应用调度系统的结构示意图;
图2为本申请实施例提供的容器应用调度方法的流程示意图;
图3为本申请实施例提供的示例性的容器应用调度系统的结构示意图;
图4为本申请实施例提供的容器应用调度装置的结构示意图;
图5为本申请实施例提供的电子设备的结构示意图。
通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本公开构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
此外,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。在以下各实施例的描述中,“多个”的含义是两个以上,除非另有明确具体的限定。
在容器云平台中,计算资源主要由计算节点的CPU内存组成,在资源调度的时候对计算节点的本地存储并未进行有效考虑。本地存储承载操作系统本身、系统日志和应用日志等之外,还需要缓存容器镜像,以便能够在该节点启动容器进行计算。如果本地存储耗尽,即使在节点CPU内存充足的情况下,节点无法继续承载容器调度,甚至会导致整个磁盘空间耗尽,节点瘫痪。当前的调度器都是在假设本地存储资源充足的情况下进行CPU内存的调度,没有考虑本地磁盘情况。所以在容器调度时,容易出现因为本地存储不够调度失败的情况,尤其是存在本地磁盘规格较小的计算节点时。Kubernetes自带的调度策略,可以根据整体镜像是否存在进行判断,如果节点缓存镜像,则优先级高,缓存不中优先级低。这样判断的问题有两个,一是没有考虑本地磁盘空间不足的情况,二是,以镜像为粒度的判断比较粗,容器镜像是分层存储的,即使镜像不存在,可能镜像的部分层文件也会存在,因为不同的镜像可以共享底层的只读层文件。
针对上述问题,本申请实施例提供的容器应用调度方法、装置、电子设备及存储介质,通过获取待调度的容器应用的镜像文件信息和所有计算节点的镜像文件缓存信息;其中,镜像文件缓存信息包括计算节点的本地存储剩余资源和已缓存的容器镜像层文件信息;根据镜像文件信息和各计算节点已缓存的容器镜像层文件信息,确定容器应用对各计算节点的本地存储资源需求;根据本地存储资源需求和各计算节点的本地存储剩余资源,确定用于进行容器应用调度的目标计算节点。上述方案提供的方法,通过根据不同计算节点的本地存储资源使用情况,确定目标计算计算节点,以确保该目标计算节点能够缓存待调度的容器应用的整体镜像,提高了容器应用调度的成功率。
下面这几个具体的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。下面将结合附图,对本发明实施例进行描述。
首先,对本申请所基于的容器应用调度系统的结构进行说明:
本申请实施例提供的容器应用调度方法、装置、电子设备及存储介质,适用于为分布式系统调度容器应用,以实现应用功能的灵活部署。如图1所示,为本申请实施例基于的容器应用调度系统的结构示意图,主要包括多个计算节点和用于进行容器应用调度的容器应用调度装置。具体地,由容器应用调度装置获取当前待调度的容器应用的镜像文件信息和所有计算节点的镜像文件缓存信息,然后根据这些信息,确定最终可以进行容器应用调度的目标计算节点。
本申请实施例提供了一种容器应用调度方法,用于为分布式系统调度容器应用。本申请实施例的执行主体为电子设备,比如服务器、台式电脑、笔记本电脑、平板电脑及其他可用于进行容器应用调度的电子设备。
如图2所示,为本申请实施例提供的容器应用调度方法的流程示意图,该方法包括:
步骤201,获取待调度的容器应用的镜像文件信息和所有计算节点的镜像文件缓存信息。
其中,镜像文件缓存信息包括计算节点的本地存储剩余资源(本地磁盘剩余的空间)和已缓存的容器镜像层文件信息。
需要说明的是,镜像文件信息至少包括待调度的容器应用的镜像文件的ID标识及包括的每个层文件的ID标识及大小。其中,镜像文件的ID标识和层文件的ID标识均可以通过预设的哈希算法进行摘要计算得到,可以表征文件的说明内容。
具体地,本申请实施例提供的容器应用调度方法可以基于Kubernetes容器编排引擎的框架实现,所以可以基于计算节点本地docker进程相应的命令获取计算节点的镜像文件缓存信息。其中,命令:docker manifest inspect name:tag。
步骤202,根据镜像文件信息和各计算节点已缓存的容器镜像层文件信息,确定容器应用对各计算节点的本地存储资源需求。
具体地,可以根据各个计算节点已缓存的容器镜像层文件信息,确定每个计算节点已缓存的容器镜像层文件的ID标识,然后根据每个计算节点已缓存的容器镜像层文件的ID标识及待调度的容器应用对应的各个层文件的ID标识,确定各计算节点待缓存的容器镜像层文件,进而确定容器应用对各计算节点的本地存储资源需求。
具体地,在一实施例中,可以根据镜像文件信息和各计算节点已缓存的容器镜像层文件信息,确定各计算节点待缓存的容器镜像层文件信息;根据待缓存的容器镜像层文件信息,确定容器应用对各计算节点的本地存储资源需求。
其中,待缓存的容器镜像层文件信息可以是待缓存的容器镜像层文件的ID标识,然后根据待缓存的容器镜像层文件的ID标识和镜像文件信息中记载的每个层文件(容器镜像层文件)的ID标识及大小,为每个计算节点计算所有待缓存的容器镜像层文件总大小。其中,容器应用对计算节点的本地存储资源需求等于该计算节点所有待缓存的容器镜像层文件总大小。
示例性的,可以根据如下公式确定计算节点所有待缓存的容器镜像层文件总大小:
Total_size=image1_layerX_size+image1_layerY_size+…+imageN_layerX_size+imageN_layerY_size
其中,Total_size表示所有待缓存的容器镜像层文件总大小,image1_layerX_size、image1_layerY_size表示容器镜像image1在计算节点未缓存的层文件(待缓存的容器镜像层文件)大小,同理,imageN_layerX_size、imageN_layerY_size是imageN在计算节点未缓存的层文件大小。
步骤203,根据本地存储资源需求和各计算节点的本地存储剩余资源,确定用于进行容器应用调度的目标计算节点。
具体地,可以通过比较本地存储资源需求和各计算节点的本地存储剩余资源之间的大小关系,判断各计算节点是否能够缓存待调度的容器应用的整体镜像,进而确定可用于进行容器应用调度的目标计算节点。
在上述实施例的基础上,由于计算节点一般数量较多,一般能够缓存待调度的容器应用的整体镜像的计算节点也不唯一,为了提高容器应用的调度效率,作为一种可实施的方式,在一实施例中,根据本地存储资源需求和各计算节点的本地存储剩余资源,确定用于进行容器应用调度的目标计算节点,包括:
步骤2031,判断各计算节点的本地存储剩余资源是否足以满足对应的本地存储资源需求;
步骤2032,将本地存储剩余资源足以满足对应的本地存储资源需求的计算节点,确定为候选计算节点;
步骤2033,根据各候选计算节点对应的本地存储资源需求的大小,确定各候选计算节点的优先级;
步骤2034,将优先级最高的候选计算节点,确定为目标计算节点。
具体地,可以向将能够缓存待调度的容器应用的整体镜像的计算节点确定为候选计算节点,然后根据每个候选节点待缓存的容器镜像层文件的总大小(本地存储资源需求),确定每个候选计算节点的优先级。其中,本地存储资源需求越小其对应的优先级越高,即可以将本地存储资源需求最小(优先级最高)的候选计算节点,确定为目标计算节点。
其中,目标计算节点需要拉取的容器镜像层文件越少,拉取效率也就越高,因此该目标计算节点有利于提高容器应用的调度效率。
具体地,在一实施例中,为了避免出现热点计算节点,也是为了保证计算节点负载均衡,针对各候选计算节点待缓存的每个容器镜像层文件,可以将待缓存的容器镜像层文件已缓存命中的计算节点个数与计算节点总数之间的比值,确定为待缓存的容器镜像层文件的加权系数;根据各候选计算节点待缓存的每个容器镜像层文件的大小和各待缓存的容器镜像层文件对应的加权系数,确定各候选计算节点的优先级。
其中,已缓存命中的计算节点具体指其已缓存的容器镜像层文件包括另一计算节点待缓存的容器镜像层文件的计算节点。
具体地,可以根据如下公式计算每个候选计算节点的优先级指标:
score=image1_layerX_size*nodeNum/totalNodeNum+…+imageN_layerY_size*nodeNum/totalNodeNum
其中,score表示优先级指标,image1_layerX_size表示该候选计算节点的一个待缓存的容器镜像层文件的大小,nodeNum表示容器镜像层文件(如image1_layerX)已缓存命中的计算节点个数,totalNodeNum表示计算节点总数。
具体地,优先级指标score越大,对应的优先级越高,即可以将优先级指标score最大的候选计算节点,确定为目标计算节点。其中,加权系数(将待缓存的容器镜像层文件已缓存命中的计算节点个数与计算节点总数之间的比值)越高对应的热度越低,得到的优先级指标score越大,从而达到避免出现热点计算节点的效果。
在上述实施例的基础上,为了进一步确保容器应用调度的成功率,作为一种可实施的方式,在一实施例中,该方法还包括:
步骤301,获取待调度的容器应用的资源请求和各计算节点的内存资源信息;
步骤302,根据待调度的容器应用的资源请求和各计算节点的内存资源信息,确定待过滤的计算节点。
具体地,可以先采用Kubernetes已有的过滤器过滤算法,根据用户下发的资源请求(待调度的容器应用的资源请求),将不满足内存资源及设备特性的计算节点(待过滤的计算节点)过滤掉。
示例性的,如图3所示,为本申请实施例提供的示例性的容器应用调度系统的结构示意图,本申请实施例所应用的分布式系统包括控制节点和计算节点,控制节点用于控制系统中的计算节点,计算节点用于承载计算任务。其中,每个计算节点包括采集模块,用于采集对应的计算节点的内存资源信息和镜像文件缓存信息,并将采集到的这些信息发送到调度模块,该调度模块可以根据接收到的信息,从这些计算节点中选择用于进行容器应用调度的目标计算节点。控制节点包括用于调度容器应用的调度模块,调度模块包括过滤器和优选器,过滤器用于过滤掉内存资源和本地存储资源不能满足容器应用调度需求的计算节点,优选器用于在经过过滤后的计算节点(候选计算节点)中选取目标计算节点。
具体地,在一实施例中,在确定目标计算节点后,可以获取目标计算节点的定位信息;将定位信息发送至容器应用管理中心,以使容器应用管理中心能够基于定位信息向目标计算节点下发容器应用调度任务。
其中,目标计算节点的定位信息可以包括目标计算节点的名称和IP地址等。
具体地,可以将目标计算节点的定位信息存储至Kubernetes的数据库,以使容器应用管理中心能够根据该定位信息定位目标计算节点,以供后续其他模块进行后续调度流程。
具体地,在一实施例中,还可以判断待调度的容器应用的容器调度方式是否为多副本Pod调度;若是,则基于预设的计算节点强制反亲和性策略,为每个Pod确定对应的目标计算节点。
其中,在Kubernetes中,是以Pod为单位进行启动的,Pod是容器集合,所以一次调度会包括多个容器镜像。
具体地,对于容器调度方式为多副本Pod调度的容器应用,为了保障高可用性,要避开相同计算节点调度,所以可以配合使用计算节点强制反亲和性策略。其中,各个Pod的目标计算节点的确定流程可以参考上述实施例。
相反地,在一实施例中,若待调度的容器应用的容器调度方式为单副本Pod调度,则可以直接基于上述实施例确定一个目标计算节点进行后续的容器应用调度流程。
本申请实施例提供的容器应用调度方法,通过获取待调度的容器应用的镜像文件信息和所有计算节点的镜像文件缓存信息;其中,镜像文件缓存信息包括计算节点的本地存储剩余资源和已缓存的容器镜像层文件信息;根据镜像文件信息和各计算节点已缓存的容器镜像层文件信息,确定容器应用对各计算节点的本地存储资源需求;根据本地存储资源需求和各计算节点的本地存储剩余资源,确定用于进行容器应用调度的目标计算节点。上述方案提供的方法,通过根据不同计算节点的本地存储资源使用情况,确定目标计算计算节点,以确保该目标计算节点能够缓存待调度的容器应用的整体镜像,提高了容器应用调度的成功率。并且,计算节点缓存命中的文件基于容器镜像层文件进行,而非整个容器镜像,可以更加精确的计算缓存命中率。并且,可以节约本地存储资源,减少拉取镜像的网络开销,提升容器调度效率,提高资源利用率。
本申请实施例提供了一种容器应用调度装置,用于执行上述实施例提供的容器应用调度方法。
如图4所示,为本申请实施例提供的容器应用调度装置的结构示意图。该容器应用调度装置40包括:获取模块401、确定模块402和调度模块403。
其中,获取模块,用于获取待调度的容器应用的镜像文件信息和所有计算节点的镜像文件缓存信息;其中,镜像文件缓存信息包括计算节点的本地存储剩余资源和已缓存的容器镜像层文件信息;确定模块,用于根据镜像文件信息和各计算节点已缓存的容器镜像层文件信息,确定容器应用对各计算节点的本地存储资源需求;调度模块,用于根据本地存储资源需求和各计算节点的本地存储剩余资源,确定用于进行容器应用调度的目标计算节点。
具体地,在一实施例中,确定模块,具体用于:
根据镜像文件信息和各计算节点已缓存的容器镜像层文件信息,确定各计算节点待缓存的容器镜像层文件信息;
根据待缓存的容器镜像层文件信息,确定容器应用对各计算节点的本地存储资源需求。
具体地,在一实施例中,调度模块,具体用于:
判断各计算节点的本地存储剩余资源是否足以满足对应的本地存储资源需求;
将本地存储剩余资源足以满足对应的本地存储资源需求的计算节点,确定为候选计算节点;
根据各候选计算节点对应的本地存储资源需求的大小,确定各候选计算节点的优先级;
将优先级最高的候选计算节点,确定为目标计算节点。
具体地,在一实施例中,调度模块,具体用于:
针对各候选计算节点待缓存的每个容器镜像层文件,将待缓存的容器镜像层文件已缓存命中的计算节点个数与计算节点总数之间的比值,确定为待缓存的容器镜像层文件的加权系数;
根据各候选计算节点待缓存的每个容器镜像层文件的大小和各待缓存的容器镜像层文件对应的加权系数,确定各候选计算节点的优先级。
具体地,在一实施例中,该装置还包括:
过滤模块,用于获取待调度的容器应用的资源请求和各计算节点的内存资源信息;根据待调度的容器应用的资源请求和各计算节点的内存资源信息,确定待过滤的计算节点。
具体地,在一实施例中,调度模块,还用于:
获取目标计算节点的定位信息;
将定位信息发送至容器应用管理中心,以使容器应用管理中心能够基于定位信息向目标计算节点下发容器应用调度任务。
具体地,在一实施例中,调度模块,还用于:
判断待调度的容器应用的容器调度方式是否为多副本Pod调度;
若是,则基于预设的计算节点强制反亲和性策略,为每个Pod确定对应的目标计算节点。
关于本实施例中的容器应用调度装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
本申请实施例提供的容器应用调度装置,用于执行上述实施例提供的容器应用调度方法,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种电子设备,用于执行上述实施例提供的容器应用调度方法。
如图5所示,为本申请实施例提供的电子设备的结构示意图。该电子设备50包括:至少一个处理器51和存储器52;
存储器存储计算机执行指令;至少一个处理器执行存储器存储的计算机执行指令,使得至少一个处理器执行如上实施例提供的容器应用调度方法。
本申请实施例提供的一种电子设备,用于执行上述实施例提供的容器应用调度方法,其实现方式与原理相同,不再赘述。
本申请实施例提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机执行指令,当处理器执行计算机执行指令时,实现如上任一实施例提供的容器应用调度方法。
本申请实施例的包含计算机可执行指令的存储介质,可用于存储前述实施例中提供的容器应用调度方法的计算机执行指令,其实现方式与原理相同,不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本领域技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (8)

1.一种容器应用调度方法,其特征在于,包括:
获取待调度的容器应用的镜像文件信息和所有计算节点的镜像文件缓存信息;其中,所述镜像文件缓存信息包括所述计算节点的本地存储剩余资源和已缓存的容器镜像层文件信息;
根据所述镜像文件信息和各所述计算节点已缓存的容器镜像层文件信息,确定所述容器应用对各所述计算节点的本地存储资源需求;
根据所述本地存储资源需求和各所述计算节点的本地存储剩余资源,确定用于进行容器应用调度的目标计算节点;
其中,所述根据所述本地存储资源需求和各所述计算节点的本地存储剩余资源,确定用于进行容器应用调度的目标计算节点,包括:
判断各所述计算节点的本地存储剩余资源是否足以满足对应的本地存储资源需求;
将所述本地存储剩余资源足以满足对应的本地存储资源需求的计算节点,确定为候选计算节点;
根据各所述候选计算节点对应的本地存储资源需求的大小,确定各所述候选计算节点的优先级;
将所述优先级最高的候选计算节点,确定为所述目标计算节点;
所述本地存储资源需求表征该计算节点待缓存的容器镜像层文件的总大小,所述根据各所述候选计算节点对应的本地存储资源需求的大小,确定各所述候选计算节点的优先级,包括:
针对各所述候选计算节点待缓存的每个容器镜像层文件,将所述待缓存的容器镜像层文件已缓存命中的计算节点个数与计算节点总数之间的比值,确定为所述待缓存的容器镜像层文件的加权系数;
根据各所述候选计算节点待缓存的每个容器镜像层文件的大小和各所述待缓存的容器镜像层文件对应的加权系数,确定各所述候选计算节点的优先级。
2.根据权利要求1所述的方法,其特征在于,所述根据所述镜像文件信息和各所述计算节点已缓存的容器镜像层文件信息,确定所述容器应用对各所述计算节点的本地存储资源需求,包括:
根据所述镜像文件信息和各所述计算节点已缓存的容器镜像层文件信息,确定各所述计算节点待缓存的容器镜像层文件信息;
根据所述待缓存的容器镜像层文件信息,确定所述容器应用对各所述计算节点的本地存储资源需求。
3.根据权利要求1所述的方法,其特征在于,还包括:
获取所述待调度的容器应用的资源请求和各所述计算节点的内存资源信息;
根据所述待调度的容器应用的资源请求和各所述计算节点的内存资源信息,确定待过滤的计算节点。
4.根据权利要求1所述的方法,其特征在于,还包括:
获取所述目标计算节点的定位信息;
将所述定位信息发送至容器应用管理中心,以使所述容器应用管理中心能够基于所述定位信息向所述目标计算节点下发容器应用调度任务。
5.根据权利要求1所述的方法,其特征在于,还包括:
判断所述待调度的容器应用的容器调度方式是否为多副本Pod调度;
若是,则基于预设的计算节点强制反亲和性策略,为每个Pod确定对应的所述目标计算节点。
6.一种容器应用调度装置,其特征在于,包括:
获取模块,用于获取待调度的容器应用的镜像文件信息和所有计算节点的镜像文件缓存信息;其中,所述镜像文件缓存信息包括所述计算节点的本地存储剩余资源和已缓存的容器镜像层文件信息;
确定模块,用于根据所述镜像文件信息和各所述计算节点已缓存的容器镜像层文件信息,确定所述容器应用对各所述计算节点的本地存储资源需求;
调度模块,用于根据所述本地存储资源需求和各所述计算节点的本地存储剩余资源,确定用于进行容器应用调度的目标计算节点;
其中,所述调度模块,具体用于:
判断各所述计算节点的本地存储剩余资源是否足以满足对应的本地存储资源需求;
将所述本地存储剩余资源足以满足对应的本地存储资源需求的计算节点,确定为候选计算节点;
根据各所述候选计算节点对应的本地存储资源需求的大小,确定各所述候选计算节点的优先级;
将所述优先级最高的候选计算节点,确定为所述目标计算节点;
所述调度模块,具体用于:
针对各所述候选计算节点待缓存的每个容器镜像层文件,将所述待缓存的容器镜像层文件已缓存命中的计算节点个数与计算节点总数之间的比值,确定为所述待缓存的容器镜像层文件的加权系数;
根据各所述候选计算节点待缓存的每个容器镜像层文件的大小和各所述待缓存的容器镜像层文件对应的加权系数,确定各所述候选计算节点的优先级。
7.一种电子设备,其特征在于,包括:至少一个处理器和存储器;
所述存储器存储计算机执行指令;
所述至少一个处理器执行所述存储器存储的计算机执行指令,使得所述至少一个处理器执行如权利要求1至5任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机执行指令,当处理器执行所述计算机执行指令时,实现如权利要求1至5任一项所述的方法。
CN202111536894.2A 2021-12-16 2021-12-16 一种容器应用调度方法、装置、电子设备及存储介质 Active CN113961314B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN202111536894.2A CN113961314B (zh) 2021-12-16 2021-12-16 一种容器应用调度方法、装置、电子设备及存储介质
US18/571,641 US20240192989A1 (en) 2021-12-16 2022-05-26 Container application scheduling method and apparatus, electronic device and storage medium
PCT/CN2022/095378 WO2023109015A1 (zh) 2021-12-16 2022-05-26 一种容器应用调度方法、装置、电子设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111536894.2A CN113961314B (zh) 2021-12-16 2021-12-16 一种容器应用调度方法、装置、电子设备及存储介质

Publications (2)

Publication Number Publication Date
CN113961314A CN113961314A (zh) 2022-01-21
CN113961314B true CN113961314B (zh) 2022-03-04

Family

ID=79473307

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111536894.2A Active CN113961314B (zh) 2021-12-16 2021-12-16 一种容器应用调度方法、装置、电子设备及存储介质

Country Status (3)

Country Link
US (1) US20240192989A1 (zh)
CN (1) CN113961314B (zh)
WO (1) WO2023109015A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113961314B (zh) * 2021-12-16 2022-03-04 苏州浪潮智能科技有限公司 一种容器应用调度方法、装置、电子设备及存储介质
CN114390106B (zh) * 2022-03-24 2022-07-05 广州医科大学附属第五医院 基于Kubernetes容器资源的调度方法、调度器及调度系统
CN116594784B (zh) * 2023-07-17 2023-10-20 中移(苏州)软件技术有限公司 一种边边调度方法、装置、系统和可读存储介质
CN117033325B (zh) * 2023-10-08 2023-12-26 恒生电子股份有限公司 镜像文件的预热拉取方法及装置
CN117369952B (zh) * 2023-12-08 2024-03-15 中电云计算技术有限公司 集群的处理方法、装置、设备及存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112269694A (zh) * 2020-10-23 2021-01-26 北京浪潮数据技术有限公司 一种管理节点确定方法、装置、电子设备及可读存储介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108205481B (zh) * 2016-12-19 2022-03-08 华为技术有限公司 应用的容器实例创建方法和装置
CN109582433B (zh) * 2017-09-29 2022-02-01 腾讯科技(深圳)有限公司 一种资源调度方法、装置、云计算系统及存储介质
CN111198745A (zh) * 2018-11-16 2020-05-26 北京京东尚科信息技术有限公司 容器创建的调度方法、装置、介质及电子设备
CN114600082A (zh) * 2019-05-23 2022-06-07 微软技术许可有限责任公司 具有联合文件系统层装载的容器实例化
CN111209082B (zh) * 2020-01-06 2023-04-07 暨南大学 一种基于关联度的Docker容器注册表预取方法
CN113391875A (zh) * 2020-03-13 2021-09-14 华为技术有限公司 容器部署方法与装置
CN111857949B (zh) * 2020-06-30 2023-01-10 苏州浪潮智能科技有限公司 模型发布方法、装置、设备及存储介质
CN112558997A (zh) * 2020-12-28 2021-03-26 航天信息股份有限公司 一种部署应用的方法及装置
CN113010265A (zh) * 2021-03-16 2021-06-22 建信金融科技有限责任公司 Pod的调度方法、调度器、存储插件及系统
CN113608838A (zh) * 2021-08-09 2021-11-05 吉首大学 应用镜像文件的部署方法、装置、计算机设备和存储介质
CN113961314B (zh) * 2021-12-16 2022-03-04 苏州浪潮智能科技有限公司 一种容器应用调度方法、装置、电子设备及存储介质

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112269694A (zh) * 2020-10-23 2021-01-26 北京浪潮数据技术有限公司 一种管理节点确定方法、装置、电子设备及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
嫌疑人X的解忧杂货店.docker manifest 使用实战.《https://blog.csdn.net/sullivan_jia/article/details/117520304》.2021, *
徐波.面向数据中心的Docker容器在线迁移系统.《中国优秀博硕士学位论文全文数据库(硕士) 信息科技辑》.2020, *

Also Published As

Publication number Publication date
WO2023109015A1 (zh) 2023-06-22
CN113961314A (zh) 2022-01-21
US20240192989A1 (en) 2024-06-13

Similar Documents

Publication Publication Date Title
CN113961314B (zh) 一种容器应用调度方法、装置、电子设备及存储介质
CN109960585B (zh) 一种基于kubernetes的资源调度方法
CN102185928B (zh) 一种在云计算系统创建虚拟机的方法及云计算系统
EP2437168B1 (en) Method and device for balancing load of multiprocessor system
US9430388B2 (en) Scheduler, multi-core processor system, and scheduling method
US10154089B2 (en) Distributed system and data operation method thereof
Solaiman et al. WLEC: A not so cold architecture to mitigate cold start problem in serverless computing
US20150074672A1 (en) Asynchronous scheduling informed by job characteristics and anticipatory provisioning of data for real-time, parallel processing
US10289446B1 (en) Preserving web browser child processes by substituting a parent process with a stub process
US11080207B2 (en) Caching framework for big-data engines in the cloud
US20160156715A1 (en) Optimal allocation of dynamically instantiated services among computation resources
CN111381928B (zh) 一种虚拟机迁移方法、云计算管理平台和存储介质
US10387309B2 (en) High-performance distributed caching
US8751446B2 (en) Transference control method, transference control apparatus and recording medium of transference control program
US20160335199A1 (en) Extending a cache of a storage system
CN110162396A (zh) 内存回收方法、装置、系统和存储介质
US9021208B2 (en) Information processing device, memory management method, and computer-readable recording medium
US8793527B1 (en) Apparatus and method for handling partially inconsistent states among members of a cluster in an erratic storage network
US10248321B1 (en) Simulating multiple lower importance levels by actively feeding processes to a low-memory manager
CN111831221B (zh) 一种基于云存储的分布式存储方法及系统
CN107870877B (zh) 用于在存储系统中管理数据访问的方法和系统
CN112395257A (zh) 一种cad模型轻量化服务方法和系统
CN112905325A (zh) 一种分布式数据缓存加速训练的方法、系统及介质
CN113127179A (zh) 资源调度方法、装置、电子设备及计算机可读介质
CN116204309A (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