CN115328608A - 一种Kubernetes容器垂直伸缩调节方法和装置 - Google Patents
一种Kubernetes容器垂直伸缩调节方法和装置 Download PDFInfo
- Publication number
- CN115328608A CN115328608A CN202210799129.8A CN202210799129A CN115328608A CN 115328608 A CN115328608 A CN 115328608A CN 202210799129 A CN202210799129 A CN 202210799129A CN 115328608 A CN115328608 A CN 115328608A
- Authority
- CN
- China
- Prior art keywords
- container
- node
- node resource
- idle
- resources
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本说明书实施例公开了一种Kubernetes容器垂直伸缩调节方法和装置,其中所述方法,部署预测器和节点资源控制器,包括:预测器获取第一容器的节点资源占用指标,计算获得第一容器的节点资源占用指标的周期性变化规律,以及根据周期性变化规律计算获得第一容器的节点资源占用指标预测值;节点资源控制器根据第一容器的节点资源占用指标预测值,计算获得节点资源空闲指标并将节点资源空闲指标对应的空闲资源记录于所述节点;当第二容器请求使用空闲资源时,依据第二容器优先级通过调用Kubernetes内置的修改类准入控制器将空闲资源分配给第二容器使用。本发明通过预测和扩展资源来解决垂直伸缩调节引起Pod重建及计算资源锁定造成的资源浪费问题,提升了垂直伸缩调节应用效果。
Description
技术领域
本说明书涉及计算机软件技术领域,尤其涉及一种Kubernetes容器垂直伸缩调节方法、装置、电子设备和存储介质。
背景技术
Kubernetes中容器垂直伸缩VPA根据容器资源使用率自动设置CPU和内存的request,从而允许在节点上进行适当的调度,以便为每个Pod提供适当的资源,它既可以缩小过度请求资源的容器,也可以根据其使用情况随时提升资源不足的容量。但是容器垂直伸缩VPA成熟度还不足,更新正在运行Pod的资源配置会导致Pod的重建和重启,而且会导致Pod被重新调度到其他的工作节点上;目前VPA只支持CPU和内存的资源度量。VPA中资源是不可变属性,即使Pod本身没有使用这么多资源,空闲的资源也无法被使用,造成大量的资源浪费。因此,如何提升VPA伸缩调节能力是需要解决的技术问题。
发明内容
本说明书实施例的目的是针对上述问题,提供一种Kubernetes容器垂直伸缩调节方法、装置、电子设备和存储介质。
为解决上述技术问题,本说明书实施例是这样实现的:
第一方面,提出了一种Kubernetes容器垂直伸缩调节方法,部署预测器和节点资源控制器,包括:
所述预测器获取第一容器的节点资源占用指标,计算获得所述第一容器的所述节点资源占用指标的周期性变化规律,以及根据所述周期性变化规律计算获得所述第一容器的所述节点资源占用指标预测值;
所述节点资源控制器根据所述第一容器的所述节点资源占用指标预测值,计算获得节点资源空闲指标并将所述节点资源空闲指标对应的空闲资源记录于所述节点;
当第二容器请求使用所述空闲资源时,依据所述第二容器优先级通过调用Kubernetes内置的修改类准入控制器将所述空闲资源分配给所述第二容器使用。
第二方面,提出了一种Kubernetes容器垂直伸缩调节装置,包括:
第一模块,用于管理和部署预测器和节点资源控制器;
第二模块,用于所述预测器获取第一容器的节点资源占用指标,计算获得所述第一容器的所述节点资源占用指标的周期性变化规律,以及根据所述周期性变化规律计算获得所述第一容器的所述节点资源占用指标预测值;
第三模块,用于所述节点资源控制器根据所述第一容器的所述节点资源占用指标预测值,计算获得节点资源空闲指标并将所述节点资源空闲指标对应的空闲资源记录于所述节点;
第四模块,用于当第二容器请求使用所述空闲资源时,依据所述第二容器优先级通过调用Kubernetes内置的修改类准入控制器将所述空闲资源分配给所述第二容器使用。
第三方面,提出了一种电子设备,包括:处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行第一方面所述的方法。
第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行第一方面所述的方法。
本说明书可以达到至少以下技术效果:
本发明解决了Kubernetes中垂直伸缩调节中只支持CPU和内存两种资源度量的问题,以及Kubernetes容器一旦锁住资源将会造成大量资源浪费的问题,增加了垂直伸缩调节的灵活性,以及增加了Kubernetes节点计算资源的可复用性,降低设备投资成本。
附图说明
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书实施例提供的Kubernetes容器垂直伸缩调节方法示意图之一。
图2为本说明书实施例提供的Kubernetes容器垂直伸缩调节方法示意图之二。
图3为本说明书实施例提供的Kubernetes容器垂直伸缩调节装置示意图之一。
图4为本说明书实施例提供的Kubernetes容器垂直伸缩调节装置示意图之二。
图5为本说明书的一个实施例提供的电子设备的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
下面通过具体的实例对本说明书所涉及的一种基于Kubernetes的数据加解密方案进行详述。
关键术语
Kubernetes:简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。新的方式是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统,容器之间进程不会相互影响,能区分计算资源。相对于虚拟机,容器能快速部署,由于容器与底层设施、机器文件系统解耦的,所以它能在不同云、不同版本操作系统间进行迁移。容器占用资源少、部署快,每个应用可以被打包成一个容器镜像,每个应用与容器间成一对一关系也使容器有更大优势,使用容器可以在build或release的阶段,为应用创建容器镜像,因为每个应用不需要与其余的应用堆栈组合,也不依赖于生产环境基础结构,这使得从研发到测试、生产能提供一致环境。类似地,容器比虚拟机轻量、更“透明”,这更便于监控和管理。
Kubernetes容器Pod:是Kubernetes中能够创建和部署的最小单元,是Kubernetes集群中的一个应用实例,总是部署在同一个节点Node上。Pod中包含了一个或多个容器,还包括了存储、网络等各个容器共享的资源。分为单容器Pod和多容器Pod。单容器Pod最常见的应用方式;而多容器Pod,Kubernetes会保证所有的容器都在同一台物理主机或虚拟主机中运行。多容器Pod是相对高阶的使用方式,除非应用耦合特别严重,一般不推荐使用这种方式。一个Pod内的容器共享IP地址和端口范围,容器之间可以通过localhost互相访问。使用Pod具有很多好处:(1)Pod作为一个可以独立运行的服务单元,简化了应用部署的难度,以更高的抽象层次为应用部署管提供了极大的方便;(2)Pod作为最小的应用实例可以独立运行,可以方便的进行部署、水平及垂直扩展和收缩、方便进行调度管理与资源的分配;(3)Pod中的容器共享相同的数据和网络地址空间,Pod之间也进行了统一的资源管理与分配。
容器垂直自动伸缩VPA:即Vertical Pod Autoscaler,它根据容器资源使用率自动设置CPU和内存的requests,从而允许在节点上进行适当的调度,以便为每个Pod提供适当的资源。VPA既可以缩小过度请求资源的容器,也可以根据其使用情况随时提升资源不足的容量。这种自动缩放机制增加和减少了pod容器的CPU和内存资源请求,以使分配的集群资源与实际使用情况保持一致。VPA还需要访问Kubernetes指标服务器,因为它仅替换由副本控制器管理(Replication Controller)的pod。工作负载可能会在某个时候遇到高利用率,但不断增加其请求限制,可能会浪费CPU或内存资源并限制运行它们的节点,如何将工作负载分布到多个应用程序实例就是VPA的作用所在。VPA部署由三个组件组成:(1)Recommender:监控资源利用率并计算目标值,也就是检查历史资源利用率和当前使用的模式,并推荐一个理想的资源请求值;(2)Updater:检查pods资源限制是否需要更新;(3)Admission Controller:在创建pod时覆盖其资源请求.由于Kubernetes不允许更改正在运行的pod的资源限制,因此使用VPA需要首先终止旧的Pod,然后将更新的值注入新的Pod。
实施例一
本发明的目的是为了解决Kubernetes中VPA支持资源指标有限以及Pod锁住资源造成大量资源浪费的问题,以便增加VPA的灵活性和计算资源的可复用性,达到降低成本的目的。为了达到上述目的,本发明的方案通过扩展资源的方式来解决Kubernetes中VPA会导致Pod的重建的问题,通过扩展资源和预测的方式来增加计算资源的可复用性。由于扩展资源本身就是自定义的资源类型,可用来描述VPA中不支持的资源类型,比如GPU等,增加了VPA中资源类型的灵活性。本发明实施例的方法正是在通常实现VPA垂直伸缩的基础上,通过增加预测器和节点资源控制器,使得该功能更加完善。通过预测计算出集群未来一段时间的计算资源用量,将Pod锁定的但又并未使用的空计算资源转化为扩展资源,并更新到节点。转化出来的扩展资源可由一些定时任务使用或者此时正是业务高峰的应用使用,将这些定时任务或者业务对于CPU以及内存的请求通过Mutating变形为扩展资源,实现这些任务使用扩展资源。由于不同的业务拥有不同的PriorityClass,并且对资源的敏感度不一样,所以为不同的PriorityClass定义不同的资源转化策略。参照图1所示,为本发明实施例中Kubernetes容器垂直伸缩调节方法示意图所述方法包括:
步骤101:部署预测器和节点资源控制器。
具体地,预测器Predictor和节点资源控制器NodeResourceController是对Kubernetes中既有容器垂直自动伸缩VPA功能的增强。其中,预测器Predictor的主要功能是通过获取目前正在运行的容器Pod在过去一段时间内的运行指标后,通过分析指标的变化规律进而实现对容器运行指标在未来一段时间内进行预测,具体实施中,可将预测后的容器运行指标存储于TimeSeriesPrediction对象,指标数据预测值存入此对象中的NodePredictionStatus属性中。而节点资源控制器NodeResourceController是具体实施例中构建通过容器运行指标预测值,计算获得节点资源空闲指标并将所述节点资源空闲指标对应的空闲资源记录于所述节点,实现基于运行指标预测对容器垂直伸缩动态调整,在具体实施中,节点资源控制器NodeResourceController基于预测结果将空闲计算资源更新至节点的extend-resource对象中。为这里需要说明的是,由于预测器Predictor和节点资源控制器NodeResourceController仅做了功能性限定,也即预测器Predictor和节点资源控制器NodeResourceController需要实现部署于Kubernetes环境中,在具体实施方式上,凡是能够满足功能限定的实现方式,均符合本发明的方案。
可选地,所述预测器获取所述节点资源占用指标包括从Prometheus中获取。具体地,使用Prometheus监控,是Kubernetes新版中引入的功能。
步骤102:所述预测器获取第一容器的节点资源占用指标,计算获得所述第一容器的所述节点资源占用指标的周期性变化规律,以及根据所述周期性变化规律计算获得所述第一容器的所述节点资源占用指标预测值。
可选地,所述节点资源根据容器对所述节点的应用需求自定义相应节点资源,至少包括CPU、内存和/或GPU。应当理解,凡是能够体现所述节点的应用需求相对应的节点资源,均可以通过实施本发明的方案进一步自定义相应的资源运行指标,以此提高垂直容器弹性伸缩的作用。
步骤103:所述节点资源控制器根据所述第一容器的所述节点资源占用指标预测值,计算获得节点资源空闲指标并将所述节点资源空闲指标对应的空闲资源记录于所述节点。可选地,所述第二容器优先级包括根据所述第二容器执行指令优先级和/或所述第二容器对所述节点资源的需求确定。
步骤104:当第二容器请求使用所述空闲资源时,依据所述第二容器优先级通过调用Kubernetes内置的修改类准入控制器将所述空闲资源分配给所述第二容器使用。
以一个具有4个CPU资源的Kubernetes集群为例进行说明。假设整个集群有4个CPU,集群中只有一个Pod A,Pod A占用了集群的全部CPU,那么操作系统会通过Cgroups,将集群CPU的时间片全部分给Pod A。预测器预测出未来几个小时Pod A本身只用了2个CPU,那么还有2个CPU是空闲的,但是其他业务又无法使用。通过扩展资源将这两个CPU转化为CITA/CPU,引入Pod B的时候,Pod B申请了2个CPU,我们通mutating变形,将Pod B申请的CPU转化为CITA/CPU,并在操作系统上将2个CPU上时间片分给Pod B,那么Pod B也能在集群中运行起来了。Pod A本身还占用着4个CPU时间片,但由于它目前空闲只用了2个CPU时间片,另外被Pod B占用,Pod A本身并不感知自身的CPU时间片被Pod B占用。
本实施例提出一种Kubernetes容器垂直伸缩调节方法的另一种实现方案如图2所示,还包括:
步骤105:当所述第二容器执行完成时将其占用的所述节点资源释放至所述Kubernetes节点。需要说明的是,由于集群资源有限,因此,需要充分考虑第二容器在执行完其任务后,将之前通过VPA分配给第二容器的资源进一步释放交换于第一容器,抑或者第二容器也可以根据本发明实施例的技术方案进一步释放该资源提供给更多容器任务使用。
实施例二
图3为本说明书的一个实施例提供的一种Kubernetes容器垂直伸缩调节装置300的结构示意图。请参考图3,在一种实施方式中Kubernetes容器垂直伸缩调节装置,包括:
第一模块301,用于管理和部署预测器和节点资源控制器;
第二模块302,用于所述预测器获取第一容器的节点资源占用指标,计算获得所述第一容器的所述节点资源占用指标的周期性变化规律,以及根据所述周期性变化规律计算获得所述第一容器的所述节点资源占用指标预测值;
第三模块303,用于所述节点资源控制器根据所述第一容器的所述节点资源占用指标预测值,计算获得节点资源空闲指标并将所述节点资源空闲指标对应的空闲资源记录于所述节点;
第四模块304,用于当第二容器请求使用所述空闲资源时,依据所述第二容器优先级通过调用Kubernetes内置的修改类准入控制器将所述空闲资源分配给所述第二容器使用。
本实施例提出一种Kubernetes容器垂直伸缩调节装置的另一种实现方案,如图4所示,还包括:
第五模块305,用于当所述第二容器执行完成时将其占用的所述节点资源释放至所述Kubernetes节点。
应理解,本说明书实施例的一种Kubernetes容器垂直伸缩调节装置还可执行图1至图2中Kubernetes容器垂直伸缩调节装置(或设备)执行的方法,并实现Kubernetes容器垂直伸缩调节装置(或设备)在图1至图2所示实例的功能,在此不再赘述。
实施例三
图5是本说明书的一个实施例电子设备的结构示意图。请参考图5,在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry Standard Architecture,工业标准体系结构)总线、PCI(PeripheralComponent Interconnect,外设部件互连标准)总线或EISA(Extended Industry StandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。存储器可以包括内存和非易失性存储器,并向处理器提供指令和数据。
处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成共享资源访问控制装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
部署预测器和节点资源控制器,包括:
所述预测器获取第一容器的节点资源占用指标,计算获得所述第一容器的所述节点资源占用指标的周期性变化规律,以及根据所述周期性变化规律计算获得所述第一容器的所述节点资源占用指标预测值;
所述节点资源控制器根据所述第一容器的所述节点资源占用指标预测值,计算获得节点资源空闲指标并将所述节点资源空闲指标对应的空闲资源记录于所述节点;
当第二容器请求使用所述空闲资源时,依据所述第二容器优先级通过调用Kubernetes内置的修改类准入控制器将所述空闲资源分配给所述第二容器使用。
上述如本说明书图1至图2所示实施例揭示的一种Kubernetes容器垂直伸缩调节方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
当然,除了软件实现方式之外,本说明书实施例的电子设备并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
实施例四
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子设备执行时,能够使该便携式电子设备执行图1至图2所示实施例的方法,并具体用于执行以下方法:
部署预测器和节点资源控制器,包括:
所述预测器获取第一容器的节点资源占用指标,计算获得所述第一容器的所述节点资源占用指标的周期性变化规律,以及根据所述周期性变化规律计算获得所述第一容器的所述节点资源占用指标预测值;
所述节点资源控制器根据所述第一容器的所述节点资源占用指标预测值,计算获得节点资源空闲指标并将所述节点资源空闲指标对应的空闲资源记录于所述节点;
当第二容器请求使用所述空闲资源时,依据所述第二容器优先级通过调用Kubernetes内置的修改类准入控制器将所述空闲资源分配给所述第二容器使用。
总之,以上所述仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
Claims (12)
1.一种Kubernetes容器垂直伸缩调节方法,其特征在于,部署预测器和节点资源控制器,包括:
所述预测器获取第一容器的节点资源占用指标,计算获得所述第一容器的所述节点资源占用指标的周期性变化规律,以及根据所述周期性变化规律计算获得所述第一容器的所述节点资源占用指标预测值;
所述节点资源控制器根据所述第一容器的所述节点资源占用指标预测值,计算获得节点资源空闲指标并将所述节点资源空闲指标对应的空闲资源记录于所述节点;
当第二容器请求使用所述空闲资源时,依据所述第二容器优先级通过调用Kubernetes内置的修改类准入控制器将所述空闲资源分配给所述第二容器使用。
2.根据权利要求1所述的方法,其特征在于,所述节点资源根据容器对所述节点的应用需求自定义相应节点资源,至少包括CPU、内存和/或GPU。
3.根据权利要求1所述的方法,其特征在于,所述预测器获取所述节点资源占用指标包括从Prometheus中获取。
4.根据权利要求1至2任一项所述的方法,其特征在于,所述第二容器优先级包括根据所述第二容器执行指令优先级和/或所述第二容器对所述节点资源的需求确定。
5.根据权利要求1所述的方法,其特征在于,还包括当所述第二容器执行完成时将其占用的所述节点资源释放至所述Kubernetes节点。
6.一种Kubernetes容器垂直伸缩调节装置,其特征在于,包括:
第一模块,用于管理和部署预测器和节点资源控制器;
第二模块,用于所述预测器获取第一容器的节点资源占用指标,计算获得所述第一容器的所述节点资源占用指标的周期性变化规律,以及根据所述周期性变化规律计算获得所述第一容器的所述节点资源占用指标预测值;
第三模块,用于所述节点资源控制器根据所述第一容器的所述节点资源占用指标预测值,计算获得节点资源空闲指标并将所述节点资源空闲指标对应的空闲资源记录于所述节点;
第四模块,用于当第二容器请求使用所述空闲资源时,依据所述第二容器优先级通过调用Kubernetes内置的修改类准入控制器将所述空闲资源分配给所述第二容器使用。
7.根据权利要求6所述的装置,其特征在于,所述节点资源根据容器对所述节点的应用需求自定义相应节点资源,至少包括CPU、内存和/或GPU。
8.根据权利要求6所述的装置,其特征在于,所述预测器获取所述节点资源占用指标包括从Prometheus中获取。
9.根据权利要求6至7任一项所述的装置,其特征在于,所述第二容器优先级包括根据所述第二容器执行指令优先级和/或所述第二容器对所述节点资源的需求确定。
10.根据权利要求6所述的装置,其特征在于,还包括第五模块,用于当所述第二容器执行完成时将其占用的所述节点资源释放至所述Kubernetes节点。
11.一种电子设备,其特征在于,包括:
处理器;以及
被安排成存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行权利要求1至5任一项所述的方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被包括多个应用程序的电子设备执行时,使得所述电子设备执行权利要求1至5任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210799129.8A CN115328608A (zh) | 2022-07-06 | 2022-07-06 | 一种Kubernetes容器垂直伸缩调节方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210799129.8A CN115328608A (zh) | 2022-07-06 | 2022-07-06 | 一种Kubernetes容器垂直伸缩调节方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115328608A true CN115328608A (zh) | 2022-11-11 |
Family
ID=83917461
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210799129.8A Pending CN115328608A (zh) | 2022-07-06 | 2022-07-06 | 一种Kubernetes容器垂直伸缩调节方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115328608A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115914117A (zh) * | 2022-11-17 | 2023-04-04 | 浪潮云信息技术股份公司 | 一种提高Kubernetes中使用本地存储Pod调度稳定性的方法及系统 |
-
2022
- 2022-07-06 CN CN202210799129.8A patent/CN115328608A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115914117A (zh) * | 2022-11-17 | 2023-04-04 | 浪潮云信息技术股份公司 | 一种提高Kubernetes中使用本地存储Pod调度稳定性的方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11182196B2 (en) | Unified resource management for containers and virtual machines | |
US11853816B2 (en) | Extending the Kubernetes API in-process | |
US10873623B2 (en) | Dynamically modifying a cluster of computing nodes used for distributed execution of a program | |
US10754704B2 (en) | Cluster load balancing based on assessment of future loading | |
US8418181B1 (en) | Managing program execution based on data storage location | |
CN109684074B (zh) | 物理机资源分配方法及终端设备 | |
US10356150B1 (en) | Automated repartitioning of streaming data | |
US20220188170A1 (en) | Multi-Tenant Control Plane Management on Computing Platform | |
US20220329651A1 (en) | Apparatus for container orchestration in geographically distributed multi-cloud environment and method using the same | |
US9591094B2 (en) | Caching of machine images | |
US9063918B2 (en) | Determining a virtual interrupt source number from a physical interrupt source number | |
US11093279B2 (en) | Resources provisioning based on a set of discrete configurations | |
US20230119552A1 (en) | Resource management mechanisms for stateful serverless clusters in edge computing | |
US11886898B2 (en) | GPU-remoting latency aware virtual machine migration | |
CN113010265A (zh) | Pod的调度方法、调度器、存储插件及系统 | |
US10171370B1 (en) | Distribution operating system | |
CN115328608A (zh) | 一种Kubernetes容器垂直伸缩调节方法和装置 | |
CN111400032A (zh) | 一种资源分配的方法及装置 | |
US20230418681A1 (en) | Intelligent layer derived deployment of containers | |
Saravanakumar et al. | An Efficient Technique for Virtual Machine Clustering and Communications Using Task‐Based Scheduling in Cloud Computing | |
WO2022078060A1 (en) | Tag-driven scheduling of computing resources for function execution | |
US11868805B2 (en) | Scheduling workloads on partitioned resources of a host system in a container-orchestration system | |
US11477267B2 (en) | Operating cloud-managed remote edge sites at reduced disk capacity | |
CN113742646A (zh) | 将单语言复合函数编译为单个实体 | |
US11768704B2 (en) | Increase assignment effectiveness of kubernetes pods by reducing repetitive pod mis-scheduling |
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 |