CN113553180A - 一种容器的调度方法、装置及电子设备 - Google Patents

一种容器的调度方法、装置及电子设备 Download PDF

Info

Publication number
CN113553180A
CN113553180A CN202110821043.6A CN202110821043A CN113553180A CN 113553180 A CN113553180 A CN 113553180A CN 202110821043 A CN202110821043 A CN 202110821043A CN 113553180 A CN113553180 A CN 113553180A
Authority
CN
China
Prior art keywords
container
deployed
curve
utilization rate
resource utilization
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202110821043.6A
Other languages
English (en)
Other versions
CN113553180B (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.)
Vipshop Guangzhou Software Co Ltd
Original Assignee
Vipshop Guangzhou Software 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 Vipshop Guangzhou Software Co Ltd filed Critical Vipshop Guangzhou Software Co Ltd
Priority to CN202110821043.6A priority Critical patent/CN113553180B/zh
Publication of CN113553180A publication Critical patent/CN113553180A/zh
Application granted granted Critical
Publication of CN113553180B publication Critical patent/CN113553180B/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/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/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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请公开了一种容器的调度方法,包括根据待部署容器包含的应用的类型,确定待部署容器对应的曲线生成规则;根据对应的曲线生成规则及待部署容器对应的历史数据,生成待部署容器对应的第一资源使用率曲线,第一资源使用率曲线包括待部署容器在每一预设时间点对待部署容器的可用资源的占用率;根据待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定待部署容器与宿主机的匹配程度,第二资源使用率曲线用于描述宿主机内的实时容器在预设时间点对宿主机的可用资源的占用率;将待部署容器部署至与待部署容器的匹配程度满足预设条件的宿主机中,可在部署及调度时将容器部署与该容器处于流量峰值的时间点不同的宿主机上。

Description

一种容器的调度方法、装置及电子设备
技术领域
本发明涉及资源调度领域,尤其涉及一种容器的调度方法、装置及电子设备。
背景技术
随着各个企业的业务规模逐渐扩大,很多企业涉及的业务应用越来越多。为了将这些业务应用部署在服务器中,需要将业务应用首先部署在容器中,然后将容器部署到实体服务器中。
当企业面临大促等流量峰值时,为了承载流量峰值企业需要预先准备大量的服务器。在容器集群管理系统Kubernetes中,假设每个容器申请4-8核CPU资源,则一个24核的服务器即宿主机通常只能部署3-4个容器。由于该系统本身提供的调度算法通常仅仅只能依据容器申请的CPU资源大小和同应用反亲和来进行容器的调度,这就导致如果仅仅依赖Kubernetes本身的调度算法对服务器上部署的容器进行调度,就会容易导致在同一时间处于流量峰值的容器被部署到同一个服务器上,使得多个相同峰值时间点的容器互相争抢CPU资源、造成应用服务超时。即使减少每台服务器部署的容器的数量,给每个服务器留下大量的空余弹性空间,当大促流量峰值到来时依然会出现大量的CPU热点机器及大量的空闲机器,导致每台服务器的CPU资源使用非常不平均。
发明内容
为了解决现有技术的不足,本发明的主要目的在于提供一种容器的调度方法、装置及电子设备,以解决现有技术的上述技术问题。
为了达到上述目的,第一方面本发明提供了一种容器的调度方法,所述方法包括:
根据待部署容器包含的应用的类型,确定所述待部署容器对应的曲线生成规则;
根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线,所述第一资源使用率曲线包括所述待部署容器在每一预设时间点对所述待部署容器的可用资源的占用率;
根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度,所述第二资源使用率曲线用于描述所述宿主机内的实时容器在每一预设时间点对所述宿主机的可用资源的占用率;
将所述待部署容器部署至与所述待部署容器的匹配程度满足预设条件的所述宿主机中。
在一些实施例中,所述历史数据包括历史流量数据,所述根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线包括:
在所述待部署容器包含的应用为流量型时,获取所述待部署容器包含的应用在第一预设时间段内的所述历史流量数据;
根据所述历史流量数据,生成所述待部署容器对应的流量曲线;
根据所述对应的流量曲线及所述待部署容器对应的斜率,生成所述待部署容器对应的第一资源使用率曲线,所述斜率用于描述所述待部署容器的流量与对所述可用资源的占用率的对应关系。
在一些实施例中,所述流量曲线包括所述待部署容器在所述第一预设时间段内的每一预设时间点的历史流量值,
根据所述对应的流量曲线及所述待部署容器对应的斜率,生成所述待部署容器对应的第一资源使用率曲线前,所述方法还包括:
确定所述流量曲线包括的所述历史流量值中的最大值对应的预设时间点为目标时间点;
获取所述应用的历史容器在所述目标时间点的平均流量值及平均可用资源占用率;
根据所述平均流量值及所述平均可用资源占用率,确定所述待部署容器对应的斜率。
在一些实施例中,所述历史数据包括历史资源使用率曲线,所述根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线包括:
在所述待部署容器包含的应用为非流量型时,获取所述待部署容器在预设时间范围内的第一历史资源使用率曲线及目标日期的第二历史资源使用率曲线;
确定所述第一历史资源使用率曲线及所述第二历史资源使用率曲线中对每一预设时间点分别对应的所述可用资源的占用率中的最大值为所述预设时间点对应的所述可用资源的占用率;
根据每一所述预设时间点对应的所述可用资源的占用率,生成所述待部署容器对应的第一资源使用率曲线。
在一些实施例中,根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度前,所述方法还包括:
获取预设数据库中存储的所述宿主机对应的历史资源使用率曲线,所述宿主机对应的历史资源使用率曲线包括根据对应的历史容器生成的第一校验码;
根据获取的所述宿主机内的实时容器生成第二校验码;
确定包括的所述第一校验码与所述第二校验码匹配的所述历史资源使用率曲线为第二资源使用率曲线。
在一些实施例中,所述将所述待部署容器部署至与所述待部署容器的匹配程度满足预设条件的所述宿主机中包括:
确定与所述待部署容器的匹配程度满足预设条件的所述宿主机为目标宿主机;
根据所述第一资源使用率曲线及所述目标宿主机对应的第二资源使用率曲线,生成目标资源使用率曲线;
将所述目标资源使用率曲线存储至所述预设数据库中。
在一些实施例中,根据待部署容器包含的应用的类型,确定所述待部署容器对应的曲线生成规则前,所述方法包括:
实时监听资源发布事件,在监听到所述资源发布事件时确定所述资源发布事件对应的容器为待部署容器。
在一些实施例中,所述根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度包括:
根据所述第一资源使用率曲线及所述第二资源使用率曲线,确定所述待部署应与所述宿主机在每一所述预设时间点对应的可用资源匹配程度;
利用预设的应用反亲和算法,确定所述待部署容器与所述宿主机对应的反亲和匹配程度;
根据所述可用资源匹配程度及所述反亲和匹配程度,确定所述待部署容器与每一所述宿主机的匹配程度。
第二方面,本申请提供了一种容器的调度装置,所述装置包括:
判断模块,用于根据待部署容器包含的应用的类型,确定所述待部署容器对应的曲线生成规则;
生成模块,用于根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线,所述第一资源使用率曲线包括所述待部署容器在每一预设时间点对所述待部署容器的可用资源的占用率;
匹配模块,用于根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度,所述第二资源使用率曲线用于描述所述宿主机内的实时容器在每一预设时间点对所述宿主机的可用资源的占用率;
部署模块,用于将所述待部署容器部署至与所述待部署容器的匹配程度满足预设条件的所述宿主机中。
第三方面,本申请提供了一种电子设备,所述电子设备包括:
一个或多个处理器;
以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
根据待部署容器包含的应用的类型,确定所述待部署容器对应的曲线生成规则;
根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线,所述第一资源使用率曲线包括所述待部署容器在每一预设时间点对所述待部署容器的可用资源的占用率;
根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度,所述第二资源使用率曲线用于描述所述宿主机内的实时容器在每一预设时间点对所述宿主机的可用资源的占用率;
将所述待部署容器部署至与所述待部署容器的匹配程度满足预设条件的所述宿主机中。
本发明实现的有益效果为:
本申请提供了一种容器的调度方法,包括根据待部署容器包含的应用的类型,确定所述待部署容器对应的曲线生成规则;根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线,所述第一资源使用率曲线包括所述待部署容器在每一预设时间点对所述待部署容器的可用资源的占用率;根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度,所述第二资源使用率曲线用于描述所述宿主机内的实时容器在每一预设时间点对所述宿主机的可用资源的占用率;将所述待部署容器部署至与所述待部署容器的匹配程度满足预设条件的所述宿主机中,本申请通过将待部署容器与所有宿主机的资源使用率曲线进行匹配,可根据待部署容器及宿主机在每个预设时间点的资源占用率情况匹配确定待部署容器是否可以部署到宿主机上,可在部署及调度时将容器部署与该容器处于流量峰值的时间点不同的宿主机上,避免了同一宿主机上的应用争抢CPU资源、造成应用服务超时的问题。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的容器调度架构图;
图2是本申请实施例提供的QPS曲线示意图;
图3是本申请实施例提供的宿主机的资源使用率曲线图;
图4是本申请实施例提供的待部署应用的资源使用率曲线图;
图5是本申请实施例提供的宿主机及待部署应用的资源使用曲线叠加图;
图6是本申请实施例提供的方法流程图;
图7是本申请实施例提供的装置结构图;
图8是本申请实施例提供的电子设备结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如背景技术所述,现有技术中Kubernetes提供的调度算法通常仅仅只能依据容器申请的CPU资源大小和同应用反亲和来进行容器的调度,提供的调度算法通常仅仅只能依据容器申请的CPU资源大小和同应用反亲和来进行容器的调度,容易导致在同一时间处于流量峰值的容器被部署到同一个服务器上,使得多个相同峰值时间点的容器互相争抢CPU资源、造成应用服务超时。
为解决上述技术问题,本申请提供了一种容器的调度方法,可在部署及调度时将在同一时间点处于流量峰值的容器部署在不同的宿主机上,避免了同一宿主机上的应用争抢CPU资源、造成应用服务超时的问题。
实施例一
图1示出了本申请实施例公开的容器调度架构,包括Kubernetes的部署架构master、多个工作节点Worker node、人机交互UI及客户端CLI。其中工作节点即宿主机服务器上部署了多个Pod即容器,容器内则可部署应用。集群控制节点可用于控制容器调度。Kubernetes Master可对外提供API,内部有Scheduler的调度组件,可容器在部署的过程中通过Scheduler调度组件的预选和优选两个算法对已有的宿主机进行筛选和评分。
为了实现本申请公开的容器调度方法,需要预先确定每一已有的宿主机对应的资源使用率曲线。由于每天集群内可能会发布多个容器,集群内宿主机的容器分布将会经常发生改变。为了避免每次部署应用时都需要重新计算宿主机的资源使用率曲线,可定时在集群内任务量较小时生成每一宿主机对应的资源使用率曲线。
示例性地,以资源使用率曲线包括的可用资源为宿主机的CPU的核心为例,已有宿主机对应的资源使用率曲线的生成过程包括:
S1、生成宿主机内已部署的容器的使用核数曲线;
例如,宿主机01内部署了应用A、应用B和应用C三个应用容器。根据三个应用容器分别对应的类型,可以确定相应的曲线生成规则,然后根据相应的曲线生成规则及历史数据可生成相应的使用核数曲线。
根据容器的资源使用率曲线,可以生成每一容器的使用核数曲线。使用核数曲线可以表示为:
使用核数曲线=(资源使用率曲线/100)*容器核数。
表1示出了一种示例性的资源使用情况,其中以宿主机具有24核CPU为例,容器A所占用的核数为8核、容器B为4核、容器C为12核,示出了每一容器根据对应的资源使用率曲线确定的该容器在一天内每分钟的资源使用情况。具体的,容器占用的核数是指分配给该容器的宿主机的核数。在一些实施例中,容器可以使用宿主机不超过该占用的核数的数量的CPU核心。在另一些实施例中,本申请实施例公开的容器调度方法也可适用于有CPU超卖的情况,例如,容器申请了8核,但最高时使用到12核,也就是CPU使用率为150%的情况下。
表1
Figure BDA0003171984850000081
S2、根据宿主机内已部署的所有容器的使用核数曲线,生成宿主机的使用核数曲线。
可将宿主机上所有容器的使用核数曲线进行叠加,生成宿主机的使用核数曲线。即宿主机的使用核数曲线可以表示为:
宿主机使用核数曲线=应用(A)使用核数曲线+应用(B)使用核数曲线+应用(C)使用核数曲线+……
表2示出了根据宿主机01内已部署的所有容器的使用核数曲线生成的宿主机的使用核数曲线。
表2
Figure BDA0003171984850000091
S3、根据宿主机的使用核数曲线,生成宿主机的资源使用率曲线;
表3示例性地示出了宿主机01的资源使用率曲线,宿主机的资源使用率曲线可以表示为:
宿主机的资源使用率曲线=(宿主机的使用核数曲线/宿主机的CPU核数)*100%
表3
Figure BDA0003171984850000092
在生成了容器的资源使用率曲线后,可以保存至预设的数据库中以便需要时查询。每一生成的资源使用率曲线还具有对应的校验码,该校验码根据生成时宿主机内包含的容器内的应用的ID生成。
由于使用核数包括小数、而资源使用率是整数值,而保存整数值相对保存小数可以更节省存储空间,本申请通过保存资源使用率曲线而不是使用核数曲线,可以降低对存储空间的占用,提高读写效率。
可以以字符串的方式保存每一资源使用率曲线,每一资源使用率的值间可以以逗号分割,则一个CPU曲线字段的最大长度为:1440*4=5760字节。优选的,为了进一步降低对存储空间的占用,可采用ASCII码的方式保存CPU曲线,每一字符对应资源使用率曲线包括的在对应的预设时间点的资源占用率的值。由于ASCII码的整数范围是[0-255],例如大写字母A的ASCII是65,因此可以使用大写字母A来代表资源使用率曲线为65%。本申请通过以ASCII码存储资源占用率包含的资源占用率值的字段,每一字段的长度可减少到1440字节,进一步节省了对存储空间的占用。
根据得到的每一容器的资源使用率曲线,应用本申请实施例公开的容器的调度方法对待部署容器进行容器调度的过程包括:
步骤一、根据待部署容器包含的应用的类型,确定所述待部署容器对应的曲线生成规则;
在容器发布时,可自动生成资源发布事件。通过实时监听发布的资源发布事件,可以确定资源发布事件对应的容器为待部署容器。
应用的类型可以包括流量型及非流量型,可以根据待部署容器中包含的应用确曲线生成规则。流量型应用是指每秒查询率QPS与资源使用率存在正相关的应用,非流量型应用是指每秒查询率QPS与资源使用率不存在正相关的应用。
步骤二、根据待部署容器对应的曲线生成规则及历史数据,生成待部署容器对应的第一资源使用率曲线;
在待部署容器包含的应用是非流量型时,生成待部署容器对应的第一资源使用率曲线包括:
获取该待部署容器在最近20天内的第一历史资源使用率曲线及在目标日期的第二历史资源使用率曲线;
根据第一历史资源使用率曲线及第二历史资源使用率曲线分别包括的每一分钟对应的第一资源使用率及第二资源使用率,确定每一分钟对应的第一资源使用率及第二资源使用率中的较大值为该分钟对应的资源使用率;
根据每一分钟对应的资源使用率,生成待部署应用对应的第一资源使用率曲线。
在待部署容器包含的应用是新应用,不确定是流量型还是非流量型时,可以根据待部署容器在最近20天内的历史CPU使用数据,根据历史CPU使用数据及预设的宿主机的可用核数生成相应的历史资源使用率曲线并确定为待部署容器对应的第一资源使用率曲线。
在该新应用经历过大促等流量峰值的日期后,可以根据该新应用的QPS和资源使用率的皮尔逊相关系数判断新应用是流量域还是非流量域。但如果应用在流量峰值的日期中总QPS的峰值低于100,则采用非流量型的方法生成相应的资源使用率曲线。这是因为QPS太低会导致样本数太少,使用流量域的方式计算的偏差会比较大。
在待部署容器为流量型时,生成待部署容器对应的第一资源使用率曲线包括:
A10、获取待部署容器包含的应用在目标日期内的历史流量数据;
该目标日期可以是流量峰值日期,如大促日等。历史流量数据包括待部署容器在目标日期内每分钟的每秒查询率QPS。
图2示出了某一容器内的应用在最近7天内的QPS曲线,可以看出在相邻几天内,应用的流量波形和资源使用率是相似的。如果将曲线长度设置以小于一天为单位,这样不足以反映全天的流量和资源使用率的变化趋势;且由于每天的流量波形和资源使用率是相似的,如果将曲线长度设置为以周或月为单位除了增加运算量以外没有任何益处。因此,本申请将曲线设置为以天为单位,每一曲线代表待部署容器的应用在一天内的流量情况和待部署容器对可用资源的占用率。
同时,本申请将曲线的粒度设置为分钟,即将全天24小时共1440分钟中的每分钟的CPU使用率或每秒查询率QPS作为一个点,根据全天的1440个点生成全天的资源使用率曲线或流量曲线。本申请将曲线的粒度设置为分钟可更好地体现容器的流量和资源占用量的变化特点。如果按小时为粒度,会导致粒度太粗,无法体现出容器及应用的流量和资源占用量随着时间的变化;而如果按秒为粒度则太细,会受CPU毛刺的影响,影响匹配的准确性。
A20、根据历史流量数据生成待部署容器对应的流量曲线;
其中,流量曲线包括该待部署容器在目标日期内每分钟的每秒查询率QPS。在待部署容器包含的应用具有多个容器实例时,待部署容器对应的流量曲线可以根据历史流量数据/应用对应的容器实例数量得到。即:
容器每分钟QPS值=应用每分钟QPS/应用的总容器实例数
根据容器每分钟QPS值,可以生成待部署容器对应的流量曲线。
对于生成的流量曲线,可以通过二进制的方式保存,并使用ZigZag压缩算法对QPS整数数组进行压缩,然后保存到数据库中,以降低占用的存储空间。
由于应用会随着业务需求的改变经常做变更升级,容器实例数也会经常变化,导致相应的使用率曲线也会随之改变。可以设置后台定时任务,每天晚上从监控系统拉取所有应用的最新数据,重新计算所有应用的两个曲线,以保证准确性和及时性。
A30、根据流量曲线及斜率,生成待部署容器对应的第一资源使用率曲线;
具体的,可以根据预估的流量变化情况,确定待部署容器在未来一段时间内相对上次大促的流量峰值的变化倍数。该变化倍数可以是2倍、1倍、0.5倍等任意预估值。
其中,斜率可以表示容器的每QPS占用的CPU核数。在生成第一资源使用率曲线时,可以根据应用对应的流量曲线及预估倍数,生成预估流量曲线。然后根据斜率及预估流量曲线,生成预估的待部署容器在每分钟占用的CPU核数。根据预估的待部署容器在每分钟占用的CPU核数及容器占用宿主机的CPU核数,可以生成容器在每分钟的CPU使用率即待部署容器对应的第一资源使用率曲线。
具体的,待部署容器在每分钟占用的CPU核数和容器在每分钟的CPU使用率可以表示为:
容器CPU使用核数=容器当前分钟的QPS值*(斜率/1000)
容器在每分钟CPU使用率=(容器在每分钟使用的CPU核数/容器CPU核数)*100%
其中,斜率的计算过程包括:
A31、根据流量曲线,确定待部署容器在目标日期内流量最高的点对应的预设时间点为目标时间点;
其中,流量最高的点即为对应的每秒查询率最高的点。
A32、获取在目标时间点该应用的所有容器实例的历史流量,生成所有容器的平均流量值;
其中,历史流量包括容器的每秒查询率QPS。在生成所有容器的平均流量值前,可以先通过2-sigma算法过滤所有容器的历史流量中的异常值,并根据过滤后的容器的历史流量生成平均流量值。
A33、获取在目标时间点所有容器的历史资源使用率,生成平均资源使用率;
在资源使用率曲线应用描述的可用资源是CPU核数时,历史资源使用率表示容器在对应的时间点对容器占用的宿主机的CPU核数的占用率。本领域技术人员可以想到的是,资源使用率曲线描述的可用资源也可以是其他任意宿主机可提供的资源,如显卡的计算资源等。
可先通过2-sigma算法过滤所有容器的历史资源使用率中的异常值,然后根据过滤后的历史资源使用率生成平均资源使用率。
A34、根据平均资源使用率及平均流量值,生成待部署容器的斜率;
其中,斜率可以表示为:
斜率=容器占用的CPU核数*1000*(平均资源使用率%/100))/平均流量值
具体的,本申请还可根据斜率,估算某一应用对应的所有资源使用率的期望利用率在50%或任意期望值时的期望容器实例数,具体计算过程包括:
B1、根据该应用的当前容器占用的宿主机的总CPU核数,确定资源利用率为期望值时容器实际利用的核数;
即容器实际利用的核数=容器占用的宿主机的总CPU核数*期望值;
B2、根据斜率,确定资源利用率为期望值时容器可支撑的容器最高流量值;
具体的,容器最高流量值可以是最高每秒查询率QPS。
即容器最高流量值=容器实际利用的核数/(斜率/1000);
B3、根据该应用的预估最高流量值,确定需要部署的期望容器实例数;
即期望容器实例数=预估最高流量值/容器最高流量值。
步骤三、根据待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度;
由于业务应用会经常更新发布、集群的容器分布会经常改变,而调度时每次重新计算每台宿主机CPU曲线的成本会很高。通过修改Kubernetes扩展调度器接口的代码,在待部署容器发布后Kubernetes调度器可获取集群所有宿主机当前最新的容器分布发送过来,并从预设的数据库中查询得到所有宿主机的历史资源使用率曲线。在从数据库中查询得到宿主机的历史资源使用率曲线后,可以根据数据库中同时存储的对应的校验码及宿主机内实时部署的容器内应用的ID,校验实时部署的容器是否对应从数据库中查询得到的历史资源使用率曲线,并在校验失败时可重新生成相应的第二资源使用率曲线;在校验成功时可以确定历史资源使用率曲线为对应的第二资源使用率曲线,避免了每次重新计算每台宿主机CPU曲线的高昂计算成本和时间成本。
可以根据第一资源使用率曲线、待部署容器占用的宿主机的CPU核数及每一宿主机的总核数,确定待部署容器相对每一宿主机的资源使用率。然后根据第一资源使用率曲线及宿主机分别的第二资源使用率曲线,对待部署容器和宿主机在每一预设时间点的匹配程度进行评分。具体的,可以给以一个初始分数。若待部署容器和宿主机在某一预设时间点的对可用资源的占用量都很高时,对该初始分数进行扣分;在另一预设时间点对可用资源的占用量一高一低时加分、在又一预设时间点对可用资源的占用量均低时不加分不扣分等。也可根据其他的评分规则对其进行评分,本申请对此不加限定。
例如,集群中有三台宿主机及一个待部署的容器,宿主机的资源使用率曲线分别如图3所示,待部署的容器的资源使用率曲线如图4所示。可将待部署的容器的资源使用率曲线叠加到每台宿主机上,得到的结果如图5所示。叠加待部署的容器的资源使用率曲线后,宿主机01的待部署的资源使用率曲线最大值为48%,宿主机02的资源使用率最大值为35%,宿主机03的资源使用率最大值为63%,资源使用率曲线最大值越高,给以的分数就越低,显然上图的评分结果是:宿主机02>宿主机01>宿主机03,调度会选取评分最高的宿主机部署该应用容器。在这个例子中,待部署的容器会部署到宿主机02上。
可以根据评分结果确定待部署容器与每一宿主机在资源使用率方面的匹配程度。具体的,可以将本申请实施例提供的容器的调度方法按Kubernetes扩展调度器接口规范封装为web接口并提供给Kubernetes调度器优选评分时调用,并加大该评分的权重。
Kubernetes调度器可以根据资源使用率方面的匹配程度及根据同应用反亲和、同类型(等级)应用反亲和、代理热点应用反亲和等应用反亲和算法得到的匹配程度等评分规则对其进行多维度的评分,确定与待部署容器匹配程度最高的宿主机并将待部署容器部署到该宿主机上,实现了基于资源使用率的匹配程度对容器进行部署,避免了导致每台宿主机服务器的CPU资源使用非常不平均的问题,防止了待部署容器被部署到资源使用的峰值时间点相同的宿主机上,实现了对待部署容器的错峰调度。
将待部署容器部署至宿主机后,可根据该宿主机上实时部署的容器及容器内的应用的ID,重新生成该宿主机对应的资源使用曲线及校验码并存储至预设数据库中,以便需要时查询并获取。
本申请通过对资源使用率曲线和流量曲线的数据结构进行优化,使得相应的存储表的体积得到进一步压缩,即使频繁查询也不会对性能造成很大影响。基于上述优化方案,本申请实施例公开的调度方案对包括在1000台以上的宿主机的集群完成一次容器调度可以把时间控制在200毫秒左右。
实施例二
对应上述实施例,如图6所示,本申请提供了一种容器的调度方法,所述方法包括:
6100、根据待部署容器包含的应用的类型,确定所述待部署容器对应的曲线生成规则;
优选的,根据待部署容器包含的应用的类型,确定所述待部署容器对应的曲线生成规则前,所述方法包括:
6111、实时监听资源发布事件,在监听到所述资源发布事件时确定所述资源发布事件对应的容器为待部署容器。
6200、根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线,所述第一资源使用率曲线包括所述待部署容器在每一预设时间点对所述待部署容器的可用资源的占用率;
优选的,所述历史数据包括历史流量数据,所述根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线包括:
6211、在所述待部署容器包含的应用为流量型时,获取所述待部署容器包含的应用在第一预设时间段内的所述历史流量数据;
6212、根据所述历史流量数据,生成所述待部署容器对应的流量曲线;
6213、根据所述对应的流量曲线及所述待部署容器对应的斜率,生成所述待部署容器对应的第一资源使用率曲线,所述斜率用于描述所述待部署容器的流量与对所述可用资源的占用率的对应关系。
优选的,所述流量曲线包括所述待部署容器在所述第一预设时间段内的每一预设时间点的历史流量值,根据所述对应的流量曲线及所述待部署容器对应的斜率,生成所述待部署容器对应的第一资源使用率曲线前,所述方法还包括:
6214、确定所述流量曲线包括的所述历史流量值中的最大值对应的预设时间点为目标时间点;
6215、获取所述应用的历史容器在所述目标时间点的平均流量值及平均可用资源占用率;
6216、根据所述平均流量值及所述平均可用资源占用率,确定所述待部署容器对应的斜率。
优选的,所述历史数据包括历史资源使用率曲线,所述根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线包括:
6221、在所述待部署容器包含的应用为非流量型时,获取所述待部署容器在预设时间范围内的第一历史资源使用率曲线及目标日期的第二历史资源使用率曲线;
6222、确定所述第一历史资源使用率曲线及所述第二历史资源使用率曲线中对每一预设时间点分别对应的所述可用资源的占用率中的最大值为所述预设时间点对应的所述可用资源的占用率;
6223、根据每一所述预设时间点对应的所述可用资源的占用率,生成所述待部署容器对应的第一资源使用率曲线。
6300、根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度,所述第二资源使用率曲线用于描述所述宿主机内的实时容器在每一预设时间点对所述宿主机的可用资源的占用率;
优选的,根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度前,所述方法还包括:
6311、获取预设数据库中存储的所述宿主机对应的历史资源使用率曲线,所述宿主机对应的历史资源使用率曲线包括根据对应的历史容器生成的第一校验码;
6312、根据获取的所述宿主机内的实时容器生成第二校验码;
6313、确定包括的所述第一校验码与所述第二校验码匹配的所述历史资源使用率曲线为第二资源使用率曲线。
优选的,所述将所述待部署容器部署至与所述待部署容器的匹配程度满足预设条件的所述宿主机中包括:
6314、确定与所述待部署容器的匹配程度满足预设条件的所述宿主机为目标宿主机;
6315、根据所述第一资源使用率曲线及所述目标宿主机对应的第二资源使用率曲线,生成目标资源使用率曲线;
6316、将所述目标资源使用率曲线存储至所述预设数据库中。
6400、将所述待部署容器部署至与所述待部署容器的匹配程度满足预设条件的所述宿主机中。
优选的,所述根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度包括:
6411、根据所述第一资源使用率曲线及所述第二资源使用率曲线,确定所述待部署应与所述宿主机在每一所述预设时间点对应的可用资源匹配程度;
6412、利用预设的应用反亲和算法,确定所述待部署容器与所述宿主机对应的反亲和匹配程度;
6413、根据所述可用资源匹配程度及所述反亲和匹配程度,确定所述待部署容器与每一所述宿主机的匹配程度。
实施例三
对应实施例一及实施例二,本申请提供了一种容器的调度装置,如图7所示,所述装置包括:
判断模块710,用于根据待部署容器包含的应用的类型,确定所述待部署容器对应的曲线生成规则;
生成模块720,用于根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线,所述第一资源使用率曲线包括所述待部署容器在每一预设时间点对所述待部署容器的可用资源的占用率;
匹配模块730,用于根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度,所述第二资源使用率曲线用于描述所述宿主机内的实时容器在每一预设时间点对所述宿主机的可用资源的占用率;
部署模块740,用于将所述待部署容器部署至与所述待部署容器的匹配程度满足预设条件的所述宿主机中。
优选的,所述历史数据包括历史流量数据,所述生成模块720还可用于在所述待部署容器包含的应用为流量型时,获取所述待部署容器包含的应用在第一预设时间段内的所述历史流量数据;根据所述历史流量数据,生成所述待部署容器对应的流量曲线;根据所述对应的流量曲线及所述待部署容器对应的斜率,生成所述待部署容器对应的第一资源使用率曲线,所述斜率用于描述所述待部署容器的流量与对所述可用资源的占用率的对应关系。
优选的,所述流量曲线包括所述待部署容器在所述第一预设时间段内的每一预设时间点的历史流量值,所述生成模块720还可用于确定所述流量曲线包括的所述历史流量值中的最大值对应的预设时间点为目标时间点;获取所述应用的历史容器在所述目标时间点的平均流量值及平均可用资源占用率;根据所述平均流量值及所述平均可用资源占用率,确定所述待部署容器对应的斜率。
优选的,所述历史数据包括历史资源使用率曲线,所述生成模块720在所述待部署容器包含的应用为非流量型时,获取所述待部署容器在预设时间范围内的第一历史资源使用率曲线及目标日期的第二历史资源使用率曲线;确定所述第一历史资源使用率曲线及所述第二历史资源使用率曲线中对每一预设时间点分别对应的所述可用资源的占用率中的最大值为所述预设时间点对应的所述可用资源的占用率;根据每一所述预设时间点对应的所述可用资源的占用率,生成所述待部署容器对应的第一资源使用率曲线。
优选的,所述匹配模块730还可用于获取预设数据库中存储的所述宿主机对应的历史资源使用率曲线,所述宿主机对应的历史资源使用率曲线包括根据对应的历史容器生成的第一校验码;根据获取的所述宿主机内的实时容器生成第二校验码;确定包括的所述第一校验码与所述第二校验码匹配的所述历史资源使用率曲线为第二资源使用率曲线。
优选的,所述部署模块740还可用于获取预设数据库中存储的所述宿主机对应的历史资源使用率曲线,所述宿主机对应的历史资源使用率曲线包括根据对应的历史容器生成的第一校验码;根据获取的所述宿主机内的实时容器生成第二校验码;确定包括的所述第一校验码与所述第二校验码匹配的所述历史资源使用率曲线为第二资源使用率曲线。
优选的,所述判断模块710还可用于实时监听资源发布事件,在监听到所述资源发布事件时确定所述资源发布事件对应的容器为待部署容器。
优选的,所述匹配模块730还可用于根据所述第一资源使用率曲线及所述第二资源使用率曲线,确定所述待部署应与所述宿主机在每一所述预设时间点对应的可用资源匹配程度;利用预设的应用反亲和算法,确定所述待部署容器与所述宿主机对应的反亲和匹配程度;根据所述可用资源匹配程度及所述反亲和匹配程度,确定所述待部署容器与每一所述宿主机的匹配程度。
实施例四
对应上述方法、设备及系统,本申请实施例提供一种电子设备,包括:一个或多个处理器;以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
根据待部署容器包含的应用的类型,确定所述待部署容器对应的曲线生成规则;
根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线,所述第一资源使用率曲线包括所述待部署容器在每一预设时间点对所述待部署容器的可用资源的占用率;
根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度,所述第二资源使用率曲线用于描述所述宿主机内的实时容器在每一预设时间点对所述宿主机的可用资源的占用率;
将所述待部署容器部署至与所述待部署容器的匹配程度满足预设条件的所述宿主机中。
其中,图8示例性的展示出了电子设备的架构,具体可以包括处理器1510,视频显示适配器1511,磁盘驱动器1512,输入/输出接口1513,网络接口1514,以及存储器1520。上述处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口1514,与存储器1520之间可以通过通信总线1530进行通信连接。
其中,处理器1510可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本申请所提供的技术方案。
存储器1520可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1520可以存储用于控制电子设备1500运行的操作系统1521,用于控制电子设备1500的低级别操作的基本输入输出系统(BIOS)1522。另外,还可以存储网页浏览器1523,数据存储管理1524,以及图标字体处理系统1525等等。上述图标字体处理系统1525就可以是本申请实施例中具体实现前述各步骤操作的应用程序。总之,在通过软件或者固件来实现本申请所提供的技术方案时,相关的程序代码保存在存储器1520中,并由处理器1510来调用执行。输入/输出接口1513用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
网络接口1514用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1530包括一通路,在设备的各个组件(例如处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口1514,与存储器1520)之间传输信息。
另外,该电子设备1500还可以从虚拟资源对象领取条件信息数据库1541中获得具体领取条件的信息,以用于进行条件判断,等等。
需要说明的是,尽管上述设备仅示出了处理器1510、视频显示适配器1511、磁盘驱动器1512、输入/输出接口1513、网络接口1514,存储器1520,总线1530等,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本申请方案所必需的组件,而不必包含图中所示的全部组件。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本申请可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,云服务器,或者网络设备等)执行本申请各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种容器的调度方法,其特征在于,所述方法包括:
根据待部署容器包含的应用的类型,确定所述待部署容器对应的曲线生成规则;
根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线,所述第一资源使用率曲线包括所述待部署容器在每一预设时间点对所述待部署容器的可用资源的占用率;
根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度,所述第二资源使用率曲线用于描述所述宿主机内的实时容器在每一预设时间点对所述宿主机的可用资源的占用率;
将所述待部署容器部署至与所述待部署容器的匹配程度满足预设条件的所述宿主机中。
2.根据权利要求1所述的容器的调度方法,其特征在于,所述历史数据包括历史流量数据,所述根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线包括:
在所述待部署容器包含的应用为流量型时,获取所述待部署容器包含的应用在第一预设时间段内的所述历史流量数据;
根据所述历史流量数据,生成所述待部署容器对应的流量曲线;
根据所述对应的流量曲线及所述待部署容器对应的斜率,生成所述待部署容器对应的第一资源使用率曲线,所述斜率用于描述所述待部署容器的流量与对所述可用资源的占用率的对应关系。
3.根据权利要求2所述的容器的调度方法,其特征在于,所述流量曲线包括所述待部署容器在所述第一预设时间段内的每一预设时间点的历史流量值,
根据所述对应的流量曲线及所述待部署容器对应的斜率,生成所述待部署容器对应的第一资源使用率曲线前,所述方法还包括:
确定所述流量曲线包括的所述历史流量值中的最大值对应的预设时间点为目标时间点;
获取所述应用的历史容器在所述目标时间点的平均流量值及平均可用资源占用率;
根据所述平均流量值及所述平均可用资源占用率,确定所述待部署容器对应的斜率。
4.根据权利要求1所述的容器的调度方法,其特征在于,所述历史数据包括历史资源使用率曲线,所述根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线包括:
在所述待部署容器包含的应用为非流量型时,获取所述待部署容器在预设时间范围内的第一历史资源使用率曲线及目标日期的第二历史资源使用率曲线;
确定所述第一历史资源使用率曲线及所述第二历史资源使用率曲线中对每一预设时间点分别对应的所述可用资源的占用率中的最大值为所述预设时间点对应的所述可用资源的占用率;
根据每一所述预设时间点对应的所述可用资源的占用率,生成所述待部署容器对应的第一资源使用率曲线。
5.根据权利要求1-4任一所述的容器的调度方法,其特征在于,
根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度前,所述方法还包括:
获取预设数据库中存储的所述宿主机对应的历史资源使用率曲线,所述宿主机对应的历史资源使用率曲线包括根据对应的历史容器生成的第一校验码;
根据获取的所述宿主机内的实时容器生成第二校验码;
确定包括的所述第一校验码与所述第二校验码匹配的所述历史资源使用率曲线为第二资源使用率曲线。
6.根据权利要求5所述的容器的调度方法,其特征在于,所述将所述待部署容器部署至与所述待部署容器的匹配程度满足预设条件的所述宿主机中包括:
确定与所述待部署容器的匹配程度满足预设条件的所述宿主机为目标宿主机;
根据所述第一资源使用率曲线及所述目标宿主机对应的第二资源使用率曲线,生成目标资源使用率曲线;
将所述目标资源使用率曲线存储至所述预设数据库中。
7.根据权利要求1-4所述的容器的调度方法,其特征在于,根据待部署容器包含的应用的类型,确定所述待部署容器对应的曲线生成规则前,所述方法包括:
实时监听资源发布事件,在监听到所述资源发布事件时确定所述资源发布事件对应的容器为待部署容器。
8.根据权利要求1-4任一所述的容器的调度方法,其特征在于,所述根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度包括:
根据所述第一资源使用率曲线及所述第二资源使用率曲线,确定所述待部署应与所述宿主机在每一所述预设时间点对应的可用资源匹配程度;
利用预设的应用反亲和算法,确定所述待部署容器与所述宿主机对应的反亲和匹配程度;
根据所述可用资源匹配程度及所述反亲和匹配程度,确定所述待部署容器与每一所述宿主机的匹配程度。
9.一种容器的调度装置,其特征在于,所述装置包括:
判断模块,用于根据待部署容器包含的应用的类型,确定所述待部署容器对应的曲线生成规则;
生成模块,用于根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线,所述第一资源使用率曲线包括所述待部署容器在每一预设时间点对所述待部署容器的可用资源的占用率;
匹配模块,用于根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度,所述第二资源使用率曲线用于描述所述宿主机内的实时容器在每一预设时间点对所述宿主机的可用资源的占用率;
部署模块,用于将所述待部署容器部署至与所述待部署容器的匹配程度满足预设条件的所述宿主机中。
10.一种电子设备,其特征在于,所述电子设备包括:
一个或多个处理器;
以及与所述一个或多个处理器关联的存储器,所述存储器用于存储程序指令,所述程序指令在被所述一个或多个处理器读取执行时,执行如下操作:
根据待部署容器包含的应用的类型,确定所述待部署容器对应的曲线生成规则;
根据所述对应的曲线生成规则及所述待部署容器对应的历史数据,生成所述待部署容器对应的第一资源使用率曲线,所述第一资源使用率曲线包括所述待部署容器在每一预设时间点对所述待部署容器的可用资源的占用率;
根据所述待部署容器对应的第一资源使用率曲线及宿主机的第二资源使用率曲线,确定所述待部署容器与每一所述宿主机的匹配程度,所述第二资源使用率曲线用于描述所述宿主机内的实时容器在每一预设时间点对所述宿主机的可用资源的占用率;
将所述待部署容器部署至与所述待部署容器的匹配程度满足预设条件的所述宿主机中。
CN202110821043.6A 2021-07-20 2021-07-20 一种容器的调度方法、装置及电子设备 Active CN113553180B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110821043.6A CN113553180B (zh) 2021-07-20 2021-07-20 一种容器的调度方法、装置及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110821043.6A CN113553180B (zh) 2021-07-20 2021-07-20 一种容器的调度方法、装置及电子设备

Publications (2)

Publication Number Publication Date
CN113553180A true CN113553180A (zh) 2021-10-26
CN113553180B CN113553180B (zh) 2023-10-13

Family

ID=78103579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110821043.6A Active CN113553180B (zh) 2021-07-20 2021-07-20 一种容器的调度方法、装置及电子设备

Country Status (1)

Country Link
CN (1) CN113553180B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666215A (zh) * 2022-03-15 2022-06-24 上海道客网络科技有限公司 一种应用跨集群弹性伸缩的方法、系统、介质和电子设备

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281496A (zh) * 2014-10-27 2015-01-14 深圳中兴网信科技有限公司 虚拟资源的分配方法及分配装置
CN105893113A (zh) * 2016-03-29 2016-08-24 上海携程商务有限公司 虚拟机的管理系统及管理方法
CN106961351A (zh) * 2017-03-03 2017-07-18 南京邮电大学 基于Docker容器集群的智能弹性伸缩方法
CN108965485A (zh) * 2018-09-30 2018-12-07 北京金山云网络技术有限公司 容器资源的管理方法、装置和云平台
CN111026550A (zh) * 2019-11-29 2020-04-17 中国科学院深圳先进技术研究院 容器云环境下的任务调度方法、装置、服务器及存储装置
US20200174839A1 (en) * 2018-11-29 2020-06-04 Microsoft Technology Licensing, Llc Forecasting container-based resource usage
CN111666158A (zh) * 2020-06-23 2020-09-15 中信银行股份有限公司 一种基于Kubernetes的容器调度方法、装置、存储介质及电子设备
US10791168B1 (en) * 2018-05-21 2020-09-29 Rafay Systems, Inc. Traffic aware network workload management system
CN112286644A (zh) * 2020-12-25 2021-01-29 同盾控股有限公司 Gpu虚拟化算力的弹性调度方法、系统、设备和存储介质
CN112363813A (zh) * 2020-11-20 2021-02-12 上海连尚网络科技有限公司 资源调度方法、装置、电子设备和计算机可读介质
US20210192586A1 (en) * 2019-12-20 2021-06-24 Cintra Holding US Corp. Systems and Methods for Detecting and Responding to Anomalous Traffic Conditions

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104281496A (zh) * 2014-10-27 2015-01-14 深圳中兴网信科技有限公司 虚拟资源的分配方法及分配装置
CN105893113A (zh) * 2016-03-29 2016-08-24 上海携程商务有限公司 虚拟机的管理系统及管理方法
CN106961351A (zh) * 2017-03-03 2017-07-18 南京邮电大学 基于Docker容器集群的智能弹性伸缩方法
US10791168B1 (en) * 2018-05-21 2020-09-29 Rafay Systems, Inc. Traffic aware network workload management system
CN108965485A (zh) * 2018-09-30 2018-12-07 北京金山云网络技术有限公司 容器资源的管理方法、装置和云平台
US20200174839A1 (en) * 2018-11-29 2020-06-04 Microsoft Technology Licensing, Llc Forecasting container-based resource usage
CN111026550A (zh) * 2019-11-29 2020-04-17 中国科学院深圳先进技术研究院 容器云环境下的任务调度方法、装置、服务器及存储装置
US20210192586A1 (en) * 2019-12-20 2021-06-24 Cintra Holding US Corp. Systems and Methods for Detecting and Responding to Anomalous Traffic Conditions
CN111666158A (zh) * 2020-06-23 2020-09-15 中信银行股份有限公司 一种基于Kubernetes的容器调度方法、装置、存储介质及电子设备
CN112363813A (zh) * 2020-11-20 2021-02-12 上海连尚网络科技有限公司 资源调度方法、装置、电子设备和计算机可读介质
CN112286644A (zh) * 2020-12-25 2021-01-29 同盾控股有限公司 Gpu虚拟化算力的弹性调度方法、系统、设备和存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
魏饴: ""基于Kubernetes的监控和调度技术研究"", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114666215A (zh) * 2022-03-15 2022-06-24 上海道客网络科技有限公司 一种应用跨集群弹性伸缩的方法、系统、介质和电子设备
CN114666215B (zh) * 2022-03-15 2023-09-08 上海道客网络科技有限公司 一种应用跨集群弹性伸缩的方法、系统、介质和电子设备

Also Published As

Publication number Publication date
CN113553180B (zh) 2023-10-13

Similar Documents

Publication Publication Date Title
US10783002B1 (en) Cost determination of a service call
CN109614227B (zh) 任务资源调配方法、装置、电子设备及计算机可读介质
US20140026144A1 (en) Systems And Methods For Load Balancing Of Time-Based Tasks In A Distributed Computing System
CN111240836A (zh) 算力资源管理方法、装置、电子设备及存储介质
CN110928655A (zh) 一种任务处理方法及装置
CN113342498A (zh) 并发请求处理方法、装置、服务器及存储介质
US7925755B2 (en) Peer to peer resource negotiation and coordination to satisfy a service level objective
CN111125057B (zh) 一种业务请求的处理方法、装置及计算机系统
US11068317B2 (en) Information processing system and resource allocation method
CN108243254B (zh) 电子装置、应用升级版本发布的方法及存储介质
CN109828990A (zh) 一种交易流水号生成方法、服务器、设备及介质
CN112565391A (zh) 调整工业互联网平台中实例的方法、装置、设备和介质
CN114625533A (zh) 分布式任务调度方法、装置、电子设备及存储介质
CN111752822A (zh) 一种容器化压测调度方法、计算机设备及可读存储介质
CN113553180A (zh) 一种容器的调度方法、装置及电子设备
CN113312359B (zh) 一种分布式作业进度计算方法、装置和存储介质
CN109102200A (zh) 一种定时任务处理方法及装置
CN107193749B (zh) 测试方法、装置及设备
CN115756740A (zh) 容器虚拟机资源管理方法、装置和电子设备
CN115617451A (zh) 一种数据处理方法和数据处理装置
CN111722914B (zh) 一种定时任务分发方法、系统、计算机设备及存储介质
CN115827179A (zh) 一种物理机设备的算力调度方法、装置、设备及存储介质
US20210110005A1 (en) License management apparatus, license management method, and recording medium storing license management program
JP6669908B1 (ja) 情報処理システム、情報処理方法及び情報処理プログラム
JP6927553B2 (ja) 情報処理装置、制御方法、及びプログラム

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