CN112650552A - 容器资源调度方法和装置 - Google Patents

容器资源调度方法和装置 Download PDF

Info

Publication number
CN112650552A
CN112650552A CN201910951726.6A CN201910951726A CN112650552A CN 112650552 A CN112650552 A CN 112650552A CN 201910951726 A CN201910951726 A CN 201910951726A CN 112650552 A CN112650552 A CN 112650552A
Authority
CN
China
Prior art keywords
container
resource
capacity
determining
capacity expansion
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
CN201910951726.6A
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.)
China Telecom Corp Ltd
Original Assignee
China Telecom Corp 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 China Telecom Corp Ltd filed Critical China Telecom Corp Ltd
Priority to CN201910951726.6A priority Critical patent/CN112650552A/zh
Publication of CN112650552A publication Critical patent/CN112650552A/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/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/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
    • 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/45583Memory management, e.g. access or allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本公开提出一种容器资源调度方法和装置,涉及云计算技术领域。本公开的一种容器资源调度方法,包括:获取容器资源监控数据;在根据容器资源监控数据确定需要扩容的情况下:根据机器的资源状态和应用容器的种类确定扩容方式,其中,扩容方式包括水平扩容和垂直扩容;采用确定的扩容方式扩容,以便满足资源需求。通过这样的方法,能够在确定需要扩容的情况下根据及其的资源状态和应用容器的种类选择水平或垂直扩容方式,从而降低了需要生成的容器的数量,避免频繁生成、回收容器造成资源碎片,从而减少了资源碎片的数量。

Description

容器资源调度方法和装置
技术领域
本公开涉及云计算技术领域,特别是一种容器资源调度方法和装置。
背景技术
容器在向集群申请分配资源时,可以指定需要的CPU(Central Processing Unit,中央处理器)和内存(RAM(Random Access Memory,随机存取存储器))大小,可以称之为容器规格。当为容器指定了资源请求(requests)和限制(limits)后,资源请求是资源下限,有了资源请求值,调度器就能够更好的判断出将容器调度到哪个节点上,保证容器有足够的资源运行;资源限制值是容器资源上限,有了资源限制值,节点上的资源就可以按照指定的方式做竞争,防止某个容器无限制地使用资源,导致其他容器崩溃。资源限制limits=0时表示对容器资源无限制。每个容器都可以指定以下的一个或者多个值:
·spec.containers[].resources.limits.cpu---CPU限制
·spec.containers[].resources.limits.memory---内存限制
·spec.containers[].resources.requests.cpu---CPU资源请求
·spec.containers[].resources.requests.memory---内存资源请求
当申请创建容器时,集群管理器调度程序确保对于每种资源类型,调度的容器的资源请求的总和小于节点的容量。如果没有符合的节点容纳,该请求将被置为不可调度状态,直到找到一个可以被调度到的位置。如果发生资源抢占,也会按照一定的策略将容器迁移。因此资源调度系统需要保证容器正常运行,应该尽量避免资源抢占的情况出现。
发明内容
发明人发现,相关技术中对于应用容器的资源调度多使用水平调度方式,即增加或减少容器实例数以达到应用资源需求,存在的资源需求粗放、灵活性较差、容易出现碎片等问题。
本公开的一个目的在于降低容器资源的碎片化程度。
根据本公开的一些实施例的一个方面,提出一种容器资源调度方法,包括:获取容器资源监控数据;在根据容器资源监控数据确定需要扩容的情况下:根据机器的资源状态和应用容器的种类确定扩容方式,其中,扩容方式包括水平扩容和垂直扩容,应用容器的种类包括有状态容器和无状态容器;采用确定的扩容方式扩容,以便满足资源需求。
在一些实施例中,容器资源监控数据包括单个时间片内应用容器的请求数、资源消耗情况、机器资源情况和当前队列的请求数量。
在一些实施例中,容器资源调度方法还包括:在根据容器资源监控数据确定需要缩容的情况下:根据应用容器的种类确定缩容方式,其中,缩容方式包括水平缩容和垂直缩容。
在一些实施例中,根据机器的资源状态和应用容器的种类确定扩容方式包括:判断剩余资源是否充足;在剩余资源充足的情况下,判断需要扩容的应用容器所在机器的资源是否充足;若应用容器所在机器的资源充足,或应用容器所在机器的资源不充足但应用容器为有状态容器,则确定扩容方式为垂直扩容。
在一些实施例中,采用确定的扩容方式扩容包括:在应用所在机器的资源充足情况下,执行垂直扩容;在应用容器所在机器的资源不充足但应用容器为有状态容器的情况下,按照优先级从低到高的顺序将应用所在机器的一个或多个容器迁移至其他容器,直至应用容器所在机器的资源充足,执行垂直扩容。
在一些实施例中,根据机器的资源状态和应用容器的种类确定扩容方式还包括:若应用容器所在机器的资源不充足且应用容器为无状态容器,则确定扩容方式为水平扩容。
在一些实施例中,采用确定的扩容方式扩容包括:判断剩余资源是否满足应用的原始容器规格的需求;若满足需求,则基于应用的原始容器规格执行水平扩容;若不满足需求,则根据剩余资源量确定扩展容器规格,基于确定的扩展容器规格执行水平扩容。
在一些实施例中,根据应用容器的种类确定缩容方式包括:若应用容器为有状态容器,则确定缩容方式为垂直缩容;若应用容器为无状态容器,则确定缩容方式为水平缩容。
在一些实施例中,根据容器资源监控数据确定需要扩容包括:根据单个时间片内应用容器的请求数和资源消耗情况确定单位时间请求的资源消耗量;根据单位时间请求的资源消耗量和当前队列的请求数量确定预期资源需求;在预期资源需求大于应用容器的资源量的情况下确定需要扩容,并确定需要增加的资源量。
在一些实施例中,根据容器资源监控数据确定需要缩容包括:根据单个时间片内应用容器的请求数和资源消耗情况确定单位时间请求的资源消耗量;根据单位时间请求的资源消耗量和当前队列的请求数量确定预期资源需求;在预期资源需求小于应用容器的资源量的数量大于预定值的情况下确定需要缩容,并确定需要减少的资源量。
通过这样的方法,能够在确定需要扩容的情况下根据及其的资源状态和应用容器的种类选择水平或垂直扩容方式,从而降低了需要生成的容器的数量,避免频繁生成、回收容器造成资源碎片,减少了资源碎片的数量。
根据本公开的一些实施例的一个方面,提出一种容器资源调度装置,包括:监控单元,被配置为获取容器资源监控数据;处理单元,被配置为在根据容器资源监控数据确定是否需要扩容;确定单元,被配置为根据机器的资源状态和应用容器的种类确定扩容方式,其中,扩容方式包括水平扩容和垂直扩容,应用容器的种类包括有状态容器和无状态容器;执行单元,被配置为采用确定的扩容方式扩容,以便满足资源需求。
在一些实施例中,处理单元还被配置为在根据容器资源监控数据确定是否需要缩容;确定单元,被配置为根据应用容器的种类确定缩容方式,其中,缩容方式包括水平缩容和垂直缩容;执行单元,被配置为采用确定的缩容方式缩容。
根据本公开的一些实施例的一个方面,提出一种容器资源调度装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器的指令执行上文中任意一种容器资源调度方法。
这样的容器资源调度装置能够在确定需要扩容的情况下根据及其的资源状态和应用容器的种类选择水平或垂直扩容方式,从而降低了需要生成的容器的数量,避免频繁生成、回收容器造成资源碎片,减少了资源碎片的数量。
根据本公开的一些实施例的一个方面,提出一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上文中任意一种容器资源调度方法的步骤。
通过执行这样的计算机可读存储介质上的指令,能够在确定需要扩容的情况下根据及其的资源状态和应用容器的种类选择水平或垂直扩容方式,从而降低了需要生成的容器的数量,避免频繁生成、回收容器造成资源碎片,减少了资源碎片的数量。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1为本公开的容器资源调度方法的一些实施例的流程图。
图2为本公开的容器资源调度方法中扩容情况下的一些实施例的流程图。
图3为本公开的容器资源调度方法的中缩容情况下的一些实施例的流程图。
图4为本公开的容器资源调度装置的一些实施例的示意图。
图5为本公开的容器资源调度装置的另一些实施例的示意图。
图6为本公开的容器资源调度装置的又一些实施例的示意图。
具体实施方式
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
本公开的容器资源调度方法的一些实施例的流程图如图1所示。
在步骤101中,获取容器资源监控数据。在一些实施例中,容器资源监控数据可以包括单个时间片内应用容器的请求数、资源消耗情况、机器资源情况和当前队列的请求数量。在一些实施例中,时间片的长度可以根据实际经验预设。在一些实施例中,资源可以包括CPU、内存等。在一些实施例中,可以按照预定的时钟频率监控上报容器资源监控数据。
在步骤102中,根据容器资源监控数据确定需要扩容。在一些实施例中,在应用容器的现有资源无法满足预计的资源需求的情况下,确定需要扩容。在一些实施例中,可以根据预计的资源需求量和现有的容器资源量确定需要扩容的资源量。
在步骤103中,根据机器的资源状态和应用容器的种类确定扩容方式,其中,扩容方式包括水平扩容和垂直扩容,水平扩容方式指的是以容器为单位,增加一个或多个容器;垂直扩容指的是在原有机器上扩大容器规格,容器数量不变。在一些实施例中,在应用容器为有状态容器的情况下,选择垂直扩容,从而实现对有状态容器的扩容。
在步骤104中,采用确定的扩容方式扩容,以便满足资源需求。
由于有状态容器存在有依赖和启动先后的关系,需要做数据持久化等缘故,无法随意增减容器实例,因此相关技术中只对有状态容器进行扩容。通过上述实施例中的方法,能够实现对有状态容器的扩容,提高了容器资源调度方法的灵活性,扩展了其适用场景。另外,通过在确定需要扩容的情况下根据及其的资源状态和应用容器的种类选择水平或垂直扩容方式,降低了需要生成的容器的数量,避免频繁生成、回收容器造成资源碎片,减少了资源碎片的数量。
在一些实施例中,根据容器资源监控数据确定是否需要扩容的方式可以如图2中步骤202~205所示。在步骤201中获取容器资源监控数据之后:
在步骤202中,根据单个时间片内应用容器的请求数和资源消耗情况确定单位时间请求的资源消耗量。
在步骤203中,根据单位时间请求的资源消耗量和当前队列的请求数量确定预期资源需求。
在步骤204中,判断预期资源需求大于应用容器的资源量。若预期资源需求大于应用容器的资源量,则当前应用容器无法满足需求,确定需要执行扩容,并执行步骤205。
在步骤205中,确定需要增加的资源量。在一些实施例中,可以将预期资源需求与应用容器的资源量相减,得到需要增加的资源量。在一些实施例中,可以在得到的数值的基础上上浮预定比例,以确保能够满足需求。
由于相关技术中在触发扩容、缩容时条件较为单一,如仅通过实例CPU、内存利用率等指标与预设阈值进行比较作为扩缩容触发条件,例如在2个容器实例情况下,容器CPU实际利用率已达到90%,预设阈值CPU为60%,此时将触发增加1个容器实例请求,即2×90%/(2+x)=60%,得x=1,来达到容器CPU 60%利用率要求。通过上文中实施例的方法,能够克服容器扩容过程中触发条件单一、资源需求粗放的问题,以响应质量(如可承受的并发数和并发的平均响应时间)来评价应用容器的性能,通过监控数据估算出单位时间并发需要的资源量,配合当前的请求队列数预计应用对资源的实际需求量,从而实现按照业务需求精准的实施容器调度,提高容器资源调度的准确度和及时性。
在一些实施例中,如图2所示,本公开的容器资源调度方法中扩容情况下的一些实施例的流程图如图2所示。在一些实施例中,可以通过步骤201~步骤205确定需要执行扩容,且确定扩容量。
在步骤206中,判断剩余资源是否充足。若剩余资源充足,则可以执行扩容操作;若剩余资源不充足,则无法扩容,本次扩容流程结束。
在步骤207中,判断需要扩容的应用所在机器的资源充足。若资源充足,则执行步骤209;若资源不充足,则执行步骤208。
在步骤208中,判断应用容器是否为有状态容器。若应用容器为有状态容器,则执行步骤210;若应用容器为无状态容器,则执行步骤211。
在步骤209中,执行垂直扩容,即在原有机器上增加容器规格,容器数量不变。在一些实施例中,容器规格的增加量可以根据资源需求量与应用容器现有的规格确定。
在步骤210中,按照优先级从低到高的顺序将应用所在机器的一个或多个容器迁移至其他容器,直至应用所在机器的资源充足后,执行步骤209。
在步骤211中,判断剩余资源满足应用的原始容器规格的需求。若满足需求,则以应用容器的原始容器规格执行步骤213;若不满足需求,则执行步骤212。
在步骤212中,根据剩余资源量确定扩展容器规格,使剩余资源能够满足容器规格的要求,进而执行步骤213。
在步骤213中,以确定的容器规格执行水平扩容。
通过这样的方法,能够在本机器资源充足的情况下优先采用垂直扩容,降低资源的碎片化程度;在本机资源不充足,但容器为有状态的情况下,通过迁移容器的方式得到充足资源,从而实现对有状态容器的扩容,扩展了资源调度方法的适用范围;在本机资源不足且容器无状态的情况下,采用水平扩容的方式,并通过容器规格的调整尽可能的提高扩容成功的概率,提高了资源调度的成功率。
本公开的容器资源调度方法的中缩容情况下的一些实施例的流程图如图3所示。
在步骤301中,获取容器资源监控数据。
在步骤302中,根据单个时间片内应用容器的请求数和资源消耗情况确定单位时间请求的资源消耗量。
在步骤303中,根据单位时间请求的资源消耗量和当前队列的请求数量确定预期资源需求。
在步骤304中,判断预期资源需求是否小于应用容器的资源量,且应用容器的资源量与预期资源需求的差值大于预定值。在一些实施例中,对于无状态的应用容器,预定值不小于应用容器的最小容器规格。若应用容器的资源量与预期资源需求的差值大于预定值,则确定需要缩容,执行步骤305。
在步骤305中,确定需要减少的资源量。在一些实施例中,需要减少的资源量可以为应用容器的资源量与预期资源需求的差值,也可以在该差值为基础上下浮动。
在步骤306中,判断应用容器是否为有状态容器。若为有状态容器,则执行步骤307;若为无状态容器,则执行步骤308。
在步骤307中,在应用容器所在的机器上垂直缩容,即降低容器规格(换算可得降低量),此时容器数量不变。
在步骤308中,执行水平扩容,减少机器容器实例数,根据机器资源情况,优先将资源繁忙的机器资源回收,此时容器规格不变。
通过这样的方法,能够避免资源浪费,实现资源的良性循环和提高利用率;能够实现对有状态容器的缩容,扩大容器资源调度方法的应用范围。
本公开的容器资源调度装置的一些实施例的示意图如图4所示。
监控单元41能够获取容器资源监控数据。在一些实施例中,容器资源监控数据可以包括单个时间片内应用容器的请求数、资源消耗情况、机器资源情况和当前队列的请求数量。在一些实施例中,时间片的长度可以根据实际经验预设。在一些实施例中,资源可以包括CPU、内存等。在一些实施例中,可以按照预定的时钟频率监控上报容器资源监控数据。
处理单元42能够根据容器资源监控数据确定是否需要扩容。在一些实施例中,当容器的现有资源无法满足预计的资源需求的情况下,确定需要扩容。在一些实施例中,可以根据预计的资源需求量和现有的容器资源量确定需要扩容的资源量。在一些实施例中,可以采用如图2中步骤202~205所示的方式确定需要扩容。
确定单元43能够根据机器的资源状态和应用容器的种类确定扩容方式,其中,扩容方式包括水平扩容和垂直扩容,水平扩容方式指的是以容器为单位,增加一个或多个容器;垂直扩容指的是在原有机器上扩大容器规格,容器数量不变。在一些实施例中,在应用容器为有状态容器的情况下,选择垂直扩容,从而实现对有状态容器的扩容。
执行单元44能够采用确定的扩容方式扩容,以便满足资源需求。
这样的装置能够实现对有状态容器的扩容,提高了容器资源调度方法的灵活性,扩展了其适用场景。另外,通过在确定需要扩容的情况下根据及其的资源状态和应用容器的种类选择水平或垂直扩容方式,从而降低了需要生成的容器的数量,避免频繁生成、回收容器造成资源碎片,减少了资源碎片的数量。
在一些实施例中,处理单元42还能够根据容器资源监控数据确定是否需要缩容。在资源需求量小的情况下,可以对应用容器进行缩容。在一些实施例中,可以采用如图3中步骤302~305所示的方式确定需要缩容,从而避免资源浪费,实现资源的良性循环和提高利用率。
在一些实施例中,确定单元43和执行单元44可以采用如图2中步骤206~213的方式执行扩容,从而在本机器资源充足的情况下优先采用垂直扩容,降低资源的碎片化程度;在本机资源不充足,但容器为有状态的情况下,通过迁移容器的方式得到充足资源,从而实现对有状态容器的扩容,扩展了资源调度方法的适用范围;在本机资源不足且容器无状态的情况下,采用水平扩容的方式,并通过容器规格的调整尽可能的提高扩容成功的概率,提高了资源调度的成功率。
在一些实施例中,确定单元43和执行单元44可以采用如图3中步骤306~308的方式实现缩容,实现对有状态容器的缩容,扩大容器资源调度方法的应用范围。
本公开容器资源调度装置的一个实施例的结构示意图如图5所示。容器资源调度装置包括存储器501和处理器502。其中:存储器501可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储上文中容器资源调度方法的对应实施例中的指令。处理器502耦接至存储器501,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器502用于执行存储器中存储的指令,能够降低需要生成的容器的数量,避免频繁生成、回收容器造成资源碎片,减少了资源碎片的数量。
在一个实施例中,还可以如图6所示,容器资源调度装置600包括存储器601和处理器602。处理器602通过BUS总线603耦合至存储器601。该容器资源调度装置600还可以通过存储接口604连接至外部存储装置605以便调用外部数据,还可以通过网络接口606连接至网络或者另外一台计算机系统(未标出)。此处不再进行详细介绍。
在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,能够降低需要生成的容器的数量,避免频繁生成、回收容器造成资源碎片,减少了资源碎片的数量。
在另一个实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现容器资源调度方法对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
可能以许多方式来实现本公开的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
最后应当说明的是:以上实施例仅用以说明本公开的技术方案而非对其限制;尽管参照较佳实施例对本公开进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本公开的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本公开技术方案的精神,其均应涵盖在本公开请求保护的技术方案范围当中。

Claims (14)

1.一种容器资源调度方法,包括:
获取容器资源监控数据;
在根据所述容器资源监控数据确定需要扩容的情况下:
根据机器的资源状态和应用容器的种类确定扩容方式,其中,所述扩容方式包括水平扩容和垂直扩容,所述应用容器的种类包括有状态容器和无状态容器;
采用确定的所述扩容方式扩容,以便满足资源需求。
2.根据权利要求1所述的方法,其中,所述容器资源监控数据包括单个时间片内应用容器的请求数、资源消耗情况、机器资源情况和当前队列的请求数量。
3.根据权利要求1或2所述的方法,还包括:
在根据容器资源监控数据确定需要缩容的情况下:根据应用容器的种类确定缩容方式,其中,所述缩容方式包括水平缩容和垂直缩容。
4.根据权利要求1所述的方法,其中,所述根据机器的资源状态和应用容器的种类确定扩容方式包括:
判断剩余资源是否充足;
在剩余资源充足的情况下,判断需要扩容的应用容器所在机器的资源是否充足;
若应用容器所在机器的资源充足,或应用容器所在机器的资源不充足但应用容器为有状态容器,则确定扩容方式为垂直扩容。
5.根据权利要求4所述的方法,其中,所述采用确定的所述扩容方式扩容包括:
在应用容器所在机器的资源充足情况下,执行垂直扩容;
在应用容器所在机器的资源不充足但应用容器为有状态容器的情况下,按照优先级从低到高的顺序将应用所在机器的一个或多个容器迁移至其他容器,直至应用所在机器的资源充足,执行垂直扩容。
6.根据权利要求4所述的方法,所述根据机器的资源状态和应用容器的种类确定扩容方式还包括:
若应用容器所在机器的资源不充足且应用容器为无状态容器,则确定扩容方式为水平扩容。
7.根据权利要求6所述的方法,其中,所述采用确定的所述扩容方式扩容包括:
判断剩余资源是否满足所述应用的原始容器规格的需求;
若满足需求,则基于所述应用的原始容器规格执行水平扩容;
若不满足需求,则根据剩余资源量确定扩展容器规格,基于确定的扩展容器规格执行水平扩容。
8.根据权利要求3所述的方法,其中,所述根据应用容器的种类确定缩容方式包括:
若应用容器为有状态容器,则确定缩容方式为垂直缩容;
若应用容器为无状态容器,则确定缩容方式为水平缩容。
9.根据权利要求1所述的方法,其中,所述根据所述容器资源监控数据确定需要扩容包括:
根据单个时间片内应用容器的请求数和资源消耗情况确定单位时间请求的资源消耗量;
根据所述单位时间请求的资源消耗量和所述当前队列的请求数量确定预期资源需求;
在所述预期资源需求大于应用容器的资源量的情况下确定需要扩容,并确定需要增加的资源量。
10.根据权利要求2所述的方法,其中,所述根据所述容器资源监控数据确定需要缩容包括:
根据单个时间片内应用容器的请求数和资源消耗情况确定单位时间请求的资源消耗量;
根据所述单位时间请求的资源消耗量和所述当前队列的请求数量确定预期资源需求;
在所述预期资源需求小于应用容器的资源量的数量大于预定值的情况下确定需要缩容,并确定需要减少的资源量。
11.一种容器资源调度装置,包括:
监控单元,被配置为获取容器资源监控数据;
处理单元,被配置为在根据所述容器资源监控数据确定是否需要扩容;
确定单元,被配置为根据机器的资源状态和应用容器的种类确定扩容方式,其中,所述扩容方式包括水平扩容和垂直扩容,所述应用容器的种类包括有状态容器和无状态容器;
执行单元,被配置为采用确定的所述扩容方式扩容,以便满足资源需求。
12.根据权利要求11所述的装置,其中,
所述处理单元还被配置为在根据容器资源监控数据确定是否需要缩容;
所述确定单元还被配置为根据应用容器的种类确定缩容方式,其中,缩容方式包括水平缩容和垂直缩容;
所述执行单元还被配置为采用确定的缩容方式缩容。
13.一种容器资源调度装置,包括:
存储器;以及
耦接至所述存储器的处理器,所述处理器被配置为基于存储在所述存储器的指令执行如权利要求1至10任一项所述的方法。
14.一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现权利要求1至10任意一项所述的方法的步骤。
CN201910951726.6A 2019-10-09 2019-10-09 容器资源调度方法和装置 Pending CN112650552A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910951726.6A CN112650552A (zh) 2019-10-09 2019-10-09 容器资源调度方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910951726.6A CN112650552A (zh) 2019-10-09 2019-10-09 容器资源调度方法和装置

Publications (1)

Publication Number Publication Date
CN112650552A true CN112650552A (zh) 2021-04-13

Family

ID=75342294

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910951726.6A Pending CN112650552A (zh) 2019-10-09 2019-10-09 容器资源调度方法和装置

Country Status (1)

Country Link
CN (1) CN112650552A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113568706A (zh) * 2021-07-27 2021-10-29 北京百度网讯科技有限公司 针对业务的容器调整方法、装置、电子设备和存储介质
CN115373825A (zh) * 2022-10-25 2022-11-22 中国铁塔股份有限公司 一种资源调度方法、装置、设备及可读存储介质

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113568706A (zh) * 2021-07-27 2021-10-29 北京百度网讯科技有限公司 针对业务的容器调整方法、装置、电子设备和存储介质
CN113568706B (zh) * 2021-07-27 2024-01-19 北京百度网讯科技有限公司 针对业务的容器调整方法、装置、电子设备和存储介质
CN115373825A (zh) * 2022-10-25 2022-11-22 中国铁塔股份有限公司 一种资源调度方法、装置、设备及可读存储介质
CN115373825B (zh) * 2022-10-25 2022-12-20 中国铁塔股份有限公司 一种资源调度方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
CN110413391B (zh) 基于容器集群的深度学习任务服务质量保证方法和系统
CN110413412B (zh) 一种基于gpu集群资源分配的方法和装置
JP5423635B2 (ja) スケジューリング方法,スケジューリングプログラム,スケジューリング装置
CN113687941A (zh) 一种基于优先级的资源分配方法、装置和设备
WO2016115000A1 (en) Hybrid scheduler and power manager
CN107818012B (zh) 一种数据处理方法、装置及电子设备
CN112650552A (zh) 容器资源调度方法和装置
CN111258746B (zh) 资源分配方法和服务设备
CN110362391B (zh) 资源调度方法、装置、电子设备及存储介质
US20140259025A1 (en) Method and apparatus for parallel computing
US20190286582A1 (en) Method for processing client requests in a cluster system, a method and an apparatus for processing i/o according to the client requests
CN114385353A (zh) 资源调度方法及装置、电子设备、存储介质
CN105677744A (zh) 一种文件系统中提高服务质量的方法和装置
CN104252386A (zh) 数据更新的加锁方法和设备
WO2012006920A1 (zh) 一种自适应回收垃圾对象的系统及方法
CN111858200A (zh) 系统测试中的吞吐量控制方法、装置及电子设备
CN109992415B (zh) 一种容器调度方法及调度系统
CN113254223B (zh) 一种系统重启后的资源分配方法、系统及相关组件
US9740530B2 (en) Decreasing the priority of a user based on an allocation ratio
CN110888739B (zh) 延迟任务的分布式处理方法与装置
CN113032119A (zh) 一种任务调度方法、装置、存储介质及电子设备
CN116627660A (zh) 一种基于云数据中心的微服务资源配置方法
CN109358961B (zh) 一种资源调度方法及其装置和具有存储功能的装置
CN113127179A (zh) 资源调度方法、装置、电子设备及计算机可读介质
CN112162864B (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