CN117742883A - 异构容器的扩容方法、系统、电子设备及存储介质 - Google Patents
异构容器的扩容方法、系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN117742883A CN117742883A CN202311605133.7A CN202311605133A CN117742883A CN 117742883 A CN117742883 A CN 117742883A CN 202311605133 A CN202311605133 A CN 202311605133A CN 117742883 A CN117742883 A CN 117742883A
- Authority
- CN
- China
- Prior art keywords
- index data
- memory index
- memory
- container
- data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 71
- 244000035744 Hura crepitans Species 0.000 claims abstract description 66
- 230000008569 process Effects 0.000 claims description 29
- 238000004891 communication Methods 0.000 claims description 28
- 238000002955 isolation Methods 0.000 claims description 20
- 238000004590 computer program Methods 0.000 claims description 5
- 230000006378 damage Effects 0.000 claims description 5
- 230000004044 response Effects 0.000 claims description 4
- 230000005540 biological transmission Effects 0.000 abstract description 2
- 238000013480 data collection Methods 0.000 abstract 1
- 230000006870 function Effects 0.000 description 14
- 238000012544 monitoring process Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000005070 sampling Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000007423 decrease Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000008602 contraction Effects 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 230000007334 memory performance Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明实施例提供了一种异构容器的扩容方法、系统、电子设备及存储介质,涉及内存编排技术领域,所述方法包括:通过数据判断模块收集目标Pod容器的实时内存指标数据,实时内存指标数据至少包括节点采集模块采集的第一内存指标数据、容器采集模块采集的第二内存指标数据以及沙箱采集模块采集的第三内存指标数据,接着通过数据判断模块根据第一内存指标数据、第二内存指标数据以及第三内存指标数据进行内存指标的对比,获得目标内存指标数据,然后根据目标内存指标数据判断是否对目标Pod容器进行扩容,从而通过多角度进行数据采集并进行对比,然后基于对比后的结果进行内存扩容,既提高了内存指标采集的准确性,又可以保证内存指标数据传达的流畅性。
Description
技术领域
本发明涉及内存编排技术领域,特别是涉及一种异构容器的扩容方法、一种异构容器的扩容系统、一种电子设备以及一种计算机可读存储介质。
背景技术
随着容器编排技术的发展,HPA(Horizontal Pod Autoscaler,水平Pod自动伸缩)技术被广泛应用于云原生平台容器的动态弹性扩缩上。其中,在容器的扩容过程中,相关技术通过将Pod的内存指标数据保留并反馈给HPA,以便HPA基于内存指标数据进行动态弹性扩缩。然而,在该过程中,通过采集Pod对内存占用的指标,存在容器因缺乏资源阻塞导致内存指标不可传达至HPA,以及内存指标采集不准确的问题。
发明内容
本发明实施例是提供一种异构容器的扩容方法、系统、电子设备以及计算机可读存储介质,以解决或部分解决内存指标采集不准确以及传达不流畅的问题。
本发明实施例公开了一种异构容器的扩容方法,应用于Node节点,所述Node节点中运行有至少一个Pod容器;其中,所述Node节点中还包括数据判断模块、分别与所述数据判断模块通信连接的节点采集模块、容器采集模块以及沙箱采集模块;其中,所述节点采集模块位于所述Node节点中,所述容器采集模块位于所述Pod容器中,所述沙箱采集模块位于隔离环境中,所述方法包括:
通过所述数据判断模块收集目标Pod容器的实时内存指标数据,所述实时内存指标数据至少包括所述节点采集模块采集的第一内存指标数据、所述容器采集模块采集的第二内存指标数据以及所述沙箱采集模块采集的第三内存指标数据;
通过所述数据判断模块根据所述第一内存指标数据、所述第二内存指标数据以及所述第三内存指标数据进行内存指标的对比,获得目标内存指标数据;
根据所述目标内存指标数据判断是否对所述目标Pod容器进行扩容。
在一些可行的实现方式中,所述根据所述第一内存指标数据、所述第二内存指标数据以及所述第三内存指标数据进行内存指标的对比,获得目标内存指标数据,包括:
若所述目标Pod容器运行于隔离环境中,则将所述第三内存指标数据作为所述目标Pod容器的当前内存指标数据;
若所述目标Pod容器未运行于隔离环境中,则将所述第二内存指标数据作为所述目标Pod容器的当前内存指标数据;
若所述当前内存指标数据与所述第一内存指标数据之间的差值大于预设阈值,则将所述第一内存指标数据作为所述目标Pod容器的目标内存指标数据;
若所述当前内存指标数据与所述第一内存指标数据之间的差值小于预设阈值,则将所述当前内存指标数据作为所述目标Pod容器的目标内存指标数据。
在一些可行的实现方式中,所述根据所述目标内存指标数据判断是否对所述目标Pod容器进行扩容,包括:
若所述目标内存指标数据大于或等于预设内存阈值,则对所述目标Pod容器进行扩容;
若所述目标内存指标数据小于所述预设内存阈值,则返回所述通过所述数据判断模块收集目标Pod容器的实时内存指标数据的过程。
在一些可行的实现方式中,所述对所述目标Pod容器进行扩容,包括:
若所述目标Pod容器的副本数量未达到上限值,则增加所述目标Pod容器的副本数量。
在一些可行的实现方式中,还包括:
响应于Pod容器的副本数量扩容至上限值,或Pod容器被销毁,停止对Pod容器进行数据采集。
在一些可行的实现方式中,还包括:
通过所述节点采集模块在第一预设时长内连续查询N次内存指标数据;
通过所述节点采集模块采用所述N次内存指标数据进行有效性检验,获得所述N次内存指标数据对应的第一误差值;
若所述第一误差值小于预设误差阈值,则通过所述节点采集模块计算第二预设时长内每个所述第一预设时长内所查询的N次内存指标数据的第一平均值,并将数值最大的第一平均值作为目标Pod容器的第一内存指标数据。
在一些可行的实现方式中,还包括:
通过所述容器采集模块在第一预设时长内连续查询N次内存指标数据;
通过所述容器采集模块采用所述N次内存指标数据进行有效性检验,获得所述N次内存指标数据对应的第二误差值;
若所述第二误差值小于预设误差阈值,则通过所述容器采集模块计算第二预设时长内每个所述第一预设时长内所查询的N次内存指标数据的第二平均值,并将数值最大的第二平均值作为目标Pod容器的第二内存指标数据。
在一些可行的实现方式中,还包括:
通过所述沙箱采集模块在第一预设时长内连续查询N次内存指标数据;
通过所述沙箱采集模块采用所述N次内存指标数据进行有效性检验,获得所述N次内存指标数据对应的第三误差值;
若所述第三误差值小于预设误差阈值,则通过所述沙箱采集模块计算第二预设时长内每个所述第一预设时长内所查询的N次内存指标数据的第三平均值,并将数值最大的第三平均值作为目标Pod容器的第三内存指标数据。
本发明实施例还公开了一种异构容器的扩容系统,所述系统包括Node节点以及与所述Node节点通信连接的扩容组件,所述Node节点中运行有至少一个Pod容器;其中,所述Node节点中还包括数据判断模块、分别与所述数据判断模块通信连接的节点采集模块、容器采集模块以及沙箱采集模块;其中,所述节点采集模块位于所述Node节点中,所述容器采集模块位于所述Pod容器中,所述沙箱采集模块位于隔离环境中;其中,
所述数据判断模块,用于收集目标Pod容器的实时内存指标数据,所述实时内存指标数据至少包括所述节点采集模块采集的第一内存指标数据、所述容器采集模块采集的第二内存指标数据以及所述沙箱采集模块采集的第三内存指标数据;
所述数据判断模块,用于根据所述第一内存指标数据、所述第二内存指标数据以及所述第三内存指标数据进行内存指标的对比,获得目标内存指标数据;
所述扩容组件,用于根据所述目标内存指标数据判断是否对所述目标Pod容器进行扩容。
在一些可行的实现方式中,所述数据判断模块具体用于:
若所述目标Pod容器运行于隔离环境中,则将所述第三内存指标数据作为所述目标Pod容器的当前内存指标数据;
若所述目标Pod容器未运行于隔离环境中,则将所述第二内存指标数据作为所述目标Pod容器的当前内存指标数据;
若所述当前内存指标数据与所述第一内存指标数据之间的差值大于预设阈值,则将所述第一内存指标数据作为所述目标Pod容器的目标内存指标数据;
若所述当前内存指标数据与所述第一内存指标数据之间的差值小于预设阈值,则将所述当前内存指标数据作为所述目标Pod容器的目标内存指标数据。
在一些可行的实现方式中,所述扩容组件具体用于:
若所述目标内存指标数据大于或等于预设内存阈值,则对所述目标Pod容器进行扩容;
若所述目标内存指标数据小于所述预设内存阈值,则返回所述通过所述数据判断模块收集目标Pod容器的实时内存指标数据的过程。
在一些可行的实现方式中,所述扩容组件具体用于:
若所述目标Pod容器的副本数量未达到上限值,则增加所述目标Pod容器的副本数量。
在一些可行的实现方式中,所述数据判断模块还用于:
响应于Pod容器的副本数量扩容至上限值,或Pod容器被销毁,停止对Pod容器进行数据采集。
在一些可行的实现方式中,所述节点采集模块具体用于:
通过所述节点采集模块在第一预设时长内连续查询N次内存指标数据;
通过所述节点采集模块采用所述N次内存指标数据进行有效性检验,获得所述N次内存指标数据对应的第一误差值;
若所述第一误差值小于预设误差阈值,则通过所述节点采集模块计算第二预设时长内每个所述第一预设时长内所查询的N次内存指标数据的第一平均值,并将数值最大的第一平均值作为目标Pod容器的第一内存指标数据。
在一些可行的实现方式中,所述容器采集模块具体用于:
通过所述容器采集模块在第一预设时长内连续查询N次内存指标数据;
通过所述容器采集模块采用所述N次内存指标数据进行有效性检验,获得所述N次内存指标数据对应的第二误差值;
若所述第二误差值小于预设误差阈值,则通过所述容器采集模块计算第二预设时长内每个所述第一预设时长内所查询的N次内存指标数据的第二平均值,并将数值最大的第二平均值作为目标Pod容器的第二内存指标数据。
在一些可行的实现方式中,所述沙箱采集模块具体用于:
通过所述沙箱采集模块在第一预设时长内连续查询N次内存指标数据;
通过所述沙箱采集模块采用所述N次内存指标数据进行有效性检验,获得所述N次内存指标数据对应的第三误差值;
若所述第三误差值小于预设误差阈值,则通过所述沙箱采集模块计算第二预设时长内每个所述第一预设时长内所查询的N次内存指标数据的第三平均值,并将数值最大的第三平均值作为目标Pod容器的第三内存指标数据。
本发明实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现如本发明实施例所述的方法。
本发明实施例还公开了一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如本发明实施例所述的方法。
本发明实施例包括以下优点:
在本发明实施例中,在Node节点中配置了数据判断模块、分别与数据判断模块通信连接的节点采集模块、容器采集模块以及沙箱采集模块,在节点运行过程中,可以通过数据判断模块收集目标Pod容器的实时内存指标数据,实时内存指标数据至少包括节点采集模块采集的第一内存指标数据、容器采集模块采集的第二内存指标数据以及沙箱采集模块采集的第三内存指标数据,接着通过数据判断模块根据第一内存指标数据、第二内存指标数据以及第三内存指标数据进行内存指标的对比,获得目标内存指标数据,然后根据目标内存指标数据判断是否对目标Pod容器进行扩容,一方面通过从节点、容器、沙箱三个角度设计了不同的采集模块,拓宽了内存指标的采集场景,同时通过多种角度的内存指标数据进行对比,通过对比后的结果进行内存扩容,既提高了内存指标采集的准确性,又可以保证内存指标数据传达的流畅性。
附图说明
图1是本发明实施例中提供的一种异构容器的扩容方法的步骤流程图;
图2是本发明实施例中提供的系统架构的示意图;
图3是本发明实施例中提供的内存扩容的处理流程图;
图4是本发明实施例中提供的一种电子设备的框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为了使本领域技术人员更好地理解本发明实施例中的技术方案,下面对本发明实施例中涉及的部分技术特征进行解释说明:
HPA是Horizontal Pod Autoscaler的缩写,水平Pod自动伸缩。它是Kubernetes中的一个功能,用于自动调整运行中的Pod数量,以适应应用程序的负载变化。HPA基于指标和阈值进行自动伸缩。它可以监控Pod的CPU使用率、内存使用率等指标,并根据事先配置的阈值进行判断。当负载增加时,HPA可以自动增加Pod的副本数量,以满足应用程序的需求;当负载减少时,HPA可以自动减少Pod的副本数量,以节省资源。这样,可以确保在任何负载情况下都有足够的Pod来处理请求,同时避免资源浪费。
Metric Server是一个Kubernetes集群的组件,用于收集和提供资源使用情况的指标数据。它通过在Kubernetes节点上运行一个小型的服务来实现,该服务与kubelet、kube-proxy等组件交互,获取节点和容器的资源使用情况数据,并将其暴露给KubernetesAPI服务器。Metrics Server提供了一些核心的资源使用指标,包括CPU使用率、内存使用量、文件系统使用量等。这些指标对于Kubernetes集群管理和调度任务非常重要,可以用于资源调度、自动扩展、监控和性能优化等方面。通过Metric Server,用户可以方便地查看集群和容器的资源使用情况,并进行相应的调整和优化。
Node(节点)通常指的是网络或计算系统中的一个单独的设备或实体。Pod(容器组)是最小的可调度和可管理的计算单元。一个Pod是一个或多个相关的容器的集合,它们共享相同的网络命名空间、存储和调度约束。Sandbox(沙箱)是一种为了提供安全而隔离的环境或容器。它被用于限制应用程序或进程的权限,以防止其对系统或其他应用程序造成潜在的风险或危害。
例如,可以使用容器技术(如Docker)创建和管理应用程序的容器化部署,而这些容器可以在沙箱环境中运行,以提供更高的安全性和隔离性。而节点则用于承载和运行这些容器,并作为整个分布式系统的组成部分。因此,容器、沙箱和节点之间具有一定的关系,并可以同时使用来实现安全、可扩展的应用程序部署和运行环境。
MEM Metric Server是用于收集和提供关于内存资源使用情况的指标数据的组件。它是Kubernetes集群中Metric Server的一部分,在提供CPU使用率指标的基础上,还提供了内存使用量的指标。
Metric exporter container(指标导出容器)是一种容器化的应用程序或服务,用于收集和导出特定的指标数据。这些指标数据通常用于监控、性能分析和可视化。
作为一种示例,随着容器编排技术的发展,HPA技术被广泛应用于云原生平台容器的动态弹性扩缩上。Metrics Server(是一个Kubernetes集群的组件,用于收集和提供资源使用情况的指标数据)可以通过标准的Kubernetes API把Pod的内存指标数据暴露并反馈给HPA。现有通过采集Pod对内存占用的指标,HPA可以设定内存使用上限出发阈值来进行Pod横向扩容来缓解Pod内存资源压力。然而传统的通过Metrics Server采集Pod内存占用指标会有不准确的问题,从而导致基于内存指标进行HPA的方式难以实现效果,存在容器因缺乏资源阻塞而导致内存指标不可传达以及内存指标采集不准确。
对此,在本发明中,通过在Node节点中配置了数据判断模块、分别与数据判断模块通信连接的节点采集模块、容器采集模块以及沙箱采集模块,在节点运行过程中,可以通过数据判断模块收集目标Pod容器的实时内存指标数据,实时内存指标数据至少包括节点采集模块采集的第一内存指标数据、容器采集模块采集的第二内存指标数据以及沙箱采集模块采集的第三内存指标数据,接着通过数据判断模块根据第一内存指标数据、第二内存指标数据以及第三内存指标数据进行内存指标的对比,获得目标内存指标数据,然后根据目标内存指标数据判断是否对目标Pod容器进行扩容,一方面通过从节点、容器、沙箱三个角度设计了不同的采集模块,拓宽了内存指标的采集场景,同时通过多种角度的内存指标数据进行对比,通过对比后的结果进行内存扩容,既提高了内存指标采集的准确性,又可以保证内存指标数据传达的流畅性。
参照图1,示出了本发明实施例中提供的一种异构容器的扩容方法的步骤流程图,应用于Node节点,所述Node节点中运行有至少一个Pod容器;其中,所述Node节点中还包括数据判断模块、分别与所述数据判断模块通信连接的节点采集模块、容器采集模块以及沙箱采集模块;其中,所述节点采集模块位于所述Node节点中,所述容器采集模块位于所述Pod容器中,所述沙箱采集模块位于隔离环境中,具体可以包括如下步骤:
步骤101,通过所述数据判断模块收集目标Pod容器的实时内存指标数据,所述实时内存指标数据至少包括所述节点采集模块采集的第一内存指标数据、所述容器采集模块采集的第二内存指标数据以及所述沙箱采集模块采集的第三内存指标数据;
在本发明实施例中,Node节点可以为计算节点,其可以是物理设备或虚拟机,在Node节点上可以运行至少一个Pod容器,同时,在Node节点中还可以配置有数据判断模块,分别与数据判断模块通信连接的节点采集模块、容器采集模块以及沙箱采集模型等。
其中,数据判断模块用于收集所有的采集数据,并对采集数据进行对比,然后将对比结果传输至HPA,以便HPA判断是否需要对相应的Pod容器进行扩容;节点采集模块,可以部署于Node节点中,用于从节点的角度采集相应Pod容器的内存指标数据;容器采集模块,可以部署于相应的Pod容器中,用于从容器的角度采集相应Pod容器的内存指标数据;沙箱采集模块,可以部署于沙箱环境中,用于从沙箱的角度采集相应Pod容器的内存指标数据。具体的,节点采集模块、容器采集模块以及沙箱采集模块等采集后的内存指标数据,统一发送至数据判断模块,由数据判断模块作进一步的数据处理。
需要说明的是,在Node节点中,部分Pod容器可以运行于隔离环境中,部分Pod容器可以运行于微虚拟机中,沙箱和微虚拟机均可以对应用程序和操作系统提供相应的隔离和保护,在实际应用中,可以根据相应的需求进行选择。具体的,对于沙箱采集模块,其可以运行于沙箱环境中,也可以运行于微虚拟机中,本发明对此不作限制。
在一种示例中,参照图2,示出了本发明实施例中提供的系统架构的示意图,Node节点中运行有至少一个Pod容器;其中,Node节点中还包括数据判断模块(MEN Metric-server)、分别与数据判断模块通信连接的节点采集模块(Metric-exporter-Node)、容器采集模块(Metric-exporter-container)以及沙箱采集模块(Metric-exporter-sandbox);其中,节点采集模块位于Node节点中,容器采集模块位于Pod容器中,沙箱采集模块位于隔离环境中。此外,在Node节点中还可以包括Kubelet(容器管理组件),Kubelet中可以包含cAdvisor工具,Node节点可以通过Kubelet对Node节点中的容器进行管理,并通过cAdvisor工具监控容器资源使用情况和性能指标。相应地,Node节点可以将所采集的内存指标数据传输至Metric-server,由Metric-server通过API(Application Programming Interface,应用程序编程接口)Server将内存数据传输至HPA,以便HPA判断是否对相应的Pod容器进行扩容。
在本发明实施例中,Pod容器运行过程中,随着内存性能开销的增加,需要进行相应的内存扩容,以保证Pod容器运行的稳定性。在扩容的过程中,需要对Pod容器进行内存指标数据的采集,具体的,针对目标Pod容器,可以通过节点采集模块从节点的角度采集目标Pod容器的第一内存指标数据,并通过容器采集模块从容器的角度采集目标Pod容器的第二内存指标数据以及通过沙箱采集模块从隔离环境的角度采集目标Pod容器的第三内存指标数据,然后三者可以将所采集的内存指标数据传输至数据判断模块,以便数据判断模块基于所接收到的不同角度的内存指标数据进行比较。
在一些可行的实现方式中,各个采集模块采集内存数据的过程可以包括:
对于节点采集模块,可以先在第一预设时长内连续查询N次内存指标数据,接着采用N次内存指标数据进行有效性检验,获得N次内存指标数据对应的第一误差值,若第一误差值小于预设误差阈值,则计算第二预设时长内每个第一预设时长内所查询的N次内存指标数据的第一平均值,并将数值最大的第一平均值作为目标Pod容器的第一内存指标数据。
对于容器采集模块,可以先在第一预设时长内连续查询N次内存指标数据,接着采用N次内存指标数据进行有效性检验,获得N次内存指标数据对应的第二误差值,若第二误差值小于预设误差阈值,则计算第二预设时长内每个第一预设时长内所查询的N次内存指标数据的第二平均值,并将数值最大的第二平均值作为目标Pod容器的第二内存指标数据。
对于沙箱采集模块,可以先在第一预设时长内连续查询N次内存指标数据,接着采用N次内存指标数据进行有效性检验,获得N次内存指标数据对应的第三误差值,若第三误差值小于预设误差阈值,则计算第二预设时长内每个第一预设时长内所查询的N次内存指标数据的第三平均值,并将数值最大的第三平均值作为目标Pod容器的第三内存指标数据。
需要说明的是,预设误差阈值可以为针对节点采集模块、容器采集模块以及沙箱采集模块等进行设置的阈值,该阈值可以为统一的数值,也可以为针对不同采集模块进行设置的阈值,各个采集模块通过对所采集的内存指标数据进行有效性检验,可以有效地降低数据抖动的问题,减少频繁进行扩容的误操作,进而提高容器扩容的有效性。
在一种示例中,如图2所示,MEM Metric-server模块主要收集所有的采集数据,同时以节点采集数据作为参考,确定Pod最终使用何种模块的采集数据,并将采集数据反馈给cAdvisor。其中,
对于Metric-exporter-container模块的采集算法可以为:
(1)使用cgroup访问全部进程的用量。
(2)1秒查询10次——使用RMSE查看采集有效性,RMSE<a%时统计均值输出。
(3)15秒对每秒输出值取最高——使用API输出至MEM Metric-server。
对于Metric-exporter-node模块的采集算法可以为:
(1)使用cgroup访问containerd-id的全部进程用量。
(2)1秒查询10次——使用RMSE查看采集有效性,RMSE<a%时统计均值输出。
(3)15秒对每秒输出值取最高——输出至MEM Metric-server。
对于Metric-exporter-sandbox模块的采集算法可以为:
(1)使用cgroup访问MicroVM里全部进程用量。
(2)1秒查询10次——使用RMSE查看采集有效性,RMSE<a%时统计均值输出。
(3)15秒对每秒输出值取最高——运行时agent通过vsock传递至沙盒运行时shim层。
(4)沙盒运行时shim组件输出至MEM Metric-server。
在具体实现中,通过3种角度获取Pod内存指标;
通过Metric-exporter-sandbox模块从沙箱角度(本实例中为MicroVM)采集该Pod内存指标。模块在1秒内连续查询10次内存数据,通过RMSE(Root Mean Squared Error,剩余标准差)算法计算采集的有效性。在本实例中,假设10次采集内存数据为50%、49%、48%、49%、49%、48%、51%、48%、48%、51%,则按照算法计算得误差为2%,小于设定的3%。以此类推计算15秒内每秒的平均值,将15次平均值中的最高值49.1%作为这个时间段的有效内存值输出给MEM Metric-server。
通过Metric-exporter-container模块从容器角度采集该Pod内存指标。模块在1秒内连续查询10次内存数据,通过RMSE算法计算采集的有效性。在本实例中,假设10次采集内存数据为49%、49%、48%、49%、49%、48%、50%、48%、48%、50%,则按照算法计算得误差为1.1%,小于设定的3%。以此类推计算15秒内每秒的平均值,将15次平均值中的最高值48.8%作为这个时间段的有效内存值输出给MEMMetric-server。
通过Metric-exporter-node模块从节点角度采集该Pod内存指标。模块在1秒内连续查询10次内存数据,通过RMSE算法计算采集的有效性。在本实例中,假设10次采集内存数据为51%、49%、49%、50%、50%、48%、51%、49%、48%、51%,则按照算法计算得误差为1.9%,小于设定的3%。以此类推计算15秒内每秒的平均值,将15次平均值中的最高值49.6%作为这个时间段的有效内存值输出给MEM Metric-server。
通过上述过程,Node节点可以通过不同的采集模块从不同的角度进行内存指标数据的采集,拓宽了内存指标的采集场景。
步骤102,通过所述数据判断模块根据所述第一内存指标数据、所述第二内存指标数据以及所述第三内存指标数据进行内存指标的对比,获得目标内存指标数据;
在本发明实施例中,数据判断模块可以对各个采集模块采集的内存指标数据进行对比,以便选择合适的内存指标数据作为目标Pod容器实时的目标内存指标数据,从而基于目标内存指标数据判断是否对目标Pod容器进行扩容。
在具体实现中,数据判断模块可以先对目标Pod容器的隔离环境进行识别,若目标Pod容器运行于隔离环境中,则将第三内存指标数据作为目标Pod容器的当前内存指标数据;若目标Pod容器未运行于隔离环境中,则将第二内存指标数据作为目标Pod容器的当前内存指标数据。在识别出隔离环境后,可以进一步将当前内存指标数据与节点角度的第一内存指标数据进行比较,若当前内存指标数据与第一内存指标数据之间的差值大于预设阈值,则将第一内存指标数据作为目标Pod容器的目标内存指标数据;若当前内存指标数据与第一内存指标数据之间的差值小于预设阈值,则将当前内存指标数据作为目标Pod容器的目标内存指标数据,同时通过多种角度的内存指标数据进行对比,通过对比后的结果进行内存扩容,提高了内存指标采集的准确性。
在一种示例中,如前示例所述,可以先对Pod部署的环境是否为沙箱环境(本实例中为MicroVM)进行判断,若部署环境是沙箱环境,使用采集结果49.1%作为该Pod的内存指标。在本实例中该Pod部署在MicroVM中,于是将49.1%作为内存指标发送给MEM Metric-server,屏蔽容器模块的采集数值;若部署环境不是沙箱环境,使用采集结果48.8%作为该Pod的内存指标。接着将该Pod内存指标与Node节点采集的内存指标进行比较,判断两者之间误差是否大于X(在本实例中为5%),若误差大于5%,使用采集的数据(第一内存指标数据)为该Pod采样时间段内的最终内存指标数据;误差小于5%,使用前述部署环境判断过程中所确定的内存指标数据作为该Pod采样时间段内的最终内存指标数据。例如,在本实例中,比较节点采集的49.6%和沙箱采集的49.1%,两者之间误差小于5%,于是使用49.1%作为该Pod这段采集时间的内存指标数据,从而通过多种角度的内存指标数据进行对比,通过对比后的结果进行内存扩容,提高了内存指标采集的准确性。
步骤103,根据所述目标内存指标数据判断是否对所述目标Pod容器进行扩容。
在具体实现中,HPA可以根据目标内存指标数据判断是否需要对目标Pod容器进行扩容,若所述目标内存指标数据大于或等于预设内存阈值,则对所述目标Pod容器进行扩容;若所述目标内存指标数据小于所述预设内存阈值,则返回所述通过所述数据判断模块收集目标Pod容器的实时内存指标数据的过程,从而一方面通过从节点、容器、沙箱三个角度设计了不同的采集模块,拓宽了内存指标的采集场景,同时通过多种角度的内存指标数据进行对比,通过对比后的结果进行内存扩容,既提高了内存指标采集的准确性,又可以保证内存指标数据传达的流畅性。
具体的,对于扩容的过程,若所述目标Pod容器的副本数量未达到上限值,则增加所述目标Pod容器的副本数量,例如,增加一个副本数量等;若目标Pod容器的副本数量已经达到上限值,则不进行扩容,并输出相应的提示信息。
此外,Node节点还可以响应于Pod容器的副本数量扩容至上限值,或Pod容器被销毁,停止对Pod容器进行数据采集,以便减少非必要的监控资源,降低节点的性能开销。
需要说明的是,本发明实施例包括但不限于上述示例,可以理解的是,本领域技术人员在本发明实施例的思想指导下,还可以根据实际需求进行设置,本发明对此不作限制。
在本发明实施例中,在Node节点中配置了数据判断模块、分别与数据判断模块通信连接的节点采集模块、容器采集模块以及沙箱采集模块,在节点运行过程中,可以通过数据判断模块收集目标Pod容器的实时内存指标数据,实时内存指标数据至少包括节点采集模块采集的第一内存指标数据、容器采集模块采集的第二内存指标数据以及沙箱采集模块采集的第三内存指标数据,接着通过数据判断模块根据第一内存指标数据、第二内存指标数据以及第三内存指标数据进行内存指标的对比,获得目标内存指标数据,然后根据目标内存指标数据判断是否对目标Pod容器进行扩容,一方面通过从节点、容器、沙箱三个角度设计了不同的采集模块,拓宽了内存指标的采集场景,同时通过多种角度的内存指标数据进行对比,通过对比后的结果进行内存扩容,既提高了内存指标采集的准确性,又可以保证内存指标数据传达的流畅性。
为了使本领域技术人员更好地理解本发明实施例中的技术方案,下面通过一个例子进行示例性说明:
参照图3,示出了本发明实施例中提供的内存扩容的处理流程图,具体过程可以包括:
(1)在xj-k8s-01集群中的节点中,首先初始化MEM Metric-server,准备开始收集内存指标;
(2)部署一个Nginx的Pod,HPA开始通过MEM Metric-server监控该Pod内存指标;
(3)通过3种角度获取Pod内存指标;
(3.1)通过Metric-exporter-sandbox模块从沙箱角度(本实例中为MicroVM)采集该Pod内存指标。模块在1秒内连续查询10次内存数据,通过RMSE算法计算采集的有效性。在本实例中,假设10次采集内存数据为50%、49%、48%、49%、49%、48%、51%、48%、48%、51%,则按照算法计算得误差为2%,小于设定的3%。以此类推计算15秒内每秒的平均值,将15次平均值中的最高值49.1%作为这个时间段的有效内存值输出给MEM Metric-server;
(3.2)通过Metric-exporter-container模块从容器角度采集该Pod内存指标。模块在1秒内连续查询10次内存数据,通过RMSE算法计算采集的有效性。在本实例中,假设10次采集内存数据为49%、49%、48%、49%、49%、48%、50%、48%、48%、50%,则按照算法计算得误差为1.1%,小于设定的3%。以此类推计算15秒内每秒的平均值,将15次平均值中的最高值48.8%作为这个时间段的有效内存值输出给MEMMetric-server;
(3.3)通过Metric-exporter-node模块从节点角度采集该Pod内存指标。模块在1秒内连续查询10次内存数据,通过RMSE算法计算采集的有效性。在本实例中,假设10次采集内存数据为51%、49%、49%、50%、50%、48%、51%、49%、48%、51%,则按照算法计算得误差为1.9%,小于设定的3%。以此类推计算15秒内每秒的平均值,将15次平均值中的最高值49.6%作为这个时间段的有效内存值输出给MEMMetric-server;
(4)对Pod部署的环境是否为沙箱环境(本实例中为MicroVM)进行判断;
(4.1)部署环境是沙箱环境,使用步骤(3.1)采集结果49.1%作为该Pod的内存指标。在本实例中该Pod部署在MicroVM中,于是将49.1%作为内存指标发送给MEM Metric-server,屏蔽容器模块的采集数值;
(4.2)部署环境不是沙箱环境,使用步骤(3.2)采集结果48.8%作为该Pod的内存指标;
(5)将该Pod内存指标与Node节点采集的内存指标进行比较,判断两者之间误差是否大于X(在本实例中为5%);
(5.1)误差大于5%,使用步骤(3.3)采集的数据为该Pod采样时间段内的最终内存指标数据;
(5.2)误差小于5%,使用步骤(4)确定的内存指标数据作为该Pod采样时间段内的最终内存指标数据。在本实例中,比较节点采集的49.6%和沙箱采集的49.1%,两者之间误差小于5%,于是使用49.1%作为该Pod这段采集时间的内存指标数据;
(6)MEM Metric-server更新该Pod的内存指标数据为49.1%;
(7)HPA获取该Pod内存指标数据,判断是否需要扩容;
(7.1)未达到内存阈值(本实例中内存阈值为85%),跳转到步骤(3)继续监控;
(7.2)达到内存阈值(本实例中内存阈值为85%),对该Pod进行扩容;
(8)持续对该Pod进行监控直到Pod扩容至最大副本个数(本实例中为5个副本)或Pod被销毁,该流程中止。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
此外,示出了本发明实施例中提供的一种异构容器的扩容系统的结构框图,所述系统包括Node节点以及与所述Node节点通信连接的扩容组件,所述Node节点中运行有至少一个Pod容器;其中,所述Node节点中还包括数据判断模块、分别与所述数据判断模块通信连接的节点采集模块、容器采集模块以及沙箱采集模块;其中,所述节点采集模块位于所述Node节点中,所述容器采集模块位于所述Pod容器中,所述沙箱采集模块位于隔离环境中;其中,
所述数据判断模块,用于收集目标Pod容器的实时内存指标数据,所述实时内存指标数据至少包括所述节点采集模块采集的第一内存指标数据、所述容器采集模块采集的第二内存指标数据以及所述沙箱采集模块采集的第三内存指标数据;
所述数据判断模块,用于根据所述第一内存指标数据、所述第二内存指标数据以及所述第三内存指标数据进行内存指标的对比,获得目标内存指标数据;
所述扩容组件,用于根据所述目标内存指标数据判断是否对所述目标Pod容器进行扩容。
在一些可行的实现方式中,所述数据判断模块具体用于:
若所述目标Pod容器运行于隔离环境中,则将所述第三内存指标数据作为所述目标Pod容器的当前内存指标数据;
若所述目标Pod容器未运行于隔离环境中,则将所述第二内存指标数据作为所述目标Pod容器的当前内存指标数据;
若所述当前内存指标数据与所述第一内存指标数据之间的差值大于预设阈值,则将所述第一内存指标数据作为所述目标Pod容器的目标内存指标数据;
若所述当前内存指标数据与所述第一内存指标数据之间的差值小于预设阈值,则将所述当前内存指标数据作为所述目标Pod容器的目标内存指标数据。
在一些可行的实现方式中,所述扩容组件具体用于:
若所述目标内存指标数据大于或等于预设内存阈值,则对所述目标Pod容器进行扩容;
若所述目标内存指标数据小于所述预设内存阈值,则返回所述通过所述数据判断模块收集目标Pod容器的实时内存指标数据的过程。
在一些可行的实现方式中,所述扩容组件具体用于:
若所述目标Pod容器的副本数量未达到上限值,则增加所述目标Pod容器的副本数量。
在一些可行的实现方式中,所述数据判断模块还用于:
响应于Pod容器的副本数量扩容至上限值,或Pod容器被销毁,停止对Pod容器进行数据采集。
在一些可行的实现方式中,所述节点采集模块具体用于:
通过所述节点采集模块在第一预设时长内连续查询N次内存指标数据;
通过所述节点采集模块采用所述N次内存指标数据进行有效性检验,获得所述N次内存指标数据对应的第一误差值;
若所述第一误差值小于预设误差阈值,则通过所述节点采集模块计算第二预设时长内每个所述第一预设时长内所查询的N次内存指标数据的第一平均值,并将数值最大的第一平均值作为目标Pod容器的第一内存指标数据。
在一些可行的实现方式中,所述容器采集模块具体用于:
通过所述容器采集模块在第一预设时长内连续查询N次内存指标数据;
通过所述容器采集模块采用所述N次内存指标数据进行有效性检验,获得所述N次内存指标数据对应的第二误差值;
若所述第二误差值小于预设误差阈值,则通过所述容器采集模块计算第二预设时长内每个所述第一预设时长内所查询的N次内存指标数据的第二平均值,并将数值最大的第二平均值作为目标Pod容器的第二内存指标数据。
在一些可行的实现方式中,所述沙箱采集模块具体用于:
通过所述沙箱采集模块在第一预设时长内连续查询N次内存指标数据;
通过所述沙箱采集模块采用所述N次内存指标数据进行有效性检验,获得所述N次内存指标数据对应的第三误差值;
若所述第三误差值小于预设误差阈值,则通过所述沙箱采集模块计算第二预设时长内每个所述第一预设时长内所查询的N次内存指标数据的第三平均值,并将数值最大的第三平均值作为目标Pod容器的第三内存指标数据。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
另外,本发明实施例还提供了一种电子设备,包括:处理器,存储器,存储在存储器上并可在处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述异构容器的扩容方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述异构容器的扩容方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random AccessMemory,简称RAM)、磁碟或者光盘等。
图4为实现本发明各个实施例的一种电子设备的硬件结构示意图。
该电子设备400包括但不限于:射频单元401、网络模块402、音频输出单元403、输入单元404、传感器405、显示单元406、用户输入单元407、接口单元408、存储器409、处理器410、以及电源411等部件。本领域技术人员可以理解,本发明实施例中所涉及的电子设备结构并不构成对电子设备的限定,电子设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。在本发明实施例中,电子设备包括但不限于手机、平板电脑、笔记本电脑、掌上电脑、车载终端、可穿戴设备、以及计步器等。
应理解的是,本发明实施例中,射频单元401可用于收发信息或通话过程中,信号的接收和发送,具体的,将来自基站的下行数据接收后,给处理器410处理;另外,将上行的数据发送给基站。通常,射频单元401包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器、双工器等。此外,射频单元401还可以通过无线通信系统与网络和其他设备通信。
电子设备通过网络模块402为用户提供了无线的宽带互联网访问,如帮助用户收发电子邮件、浏览网页和访问流式媒体等。
音频输出单元403可以将射频单元401或网络模块402接收的或者在存储器409中存储的音频数据转换成音频信号并且输出为声音。而且,音频输出单元403还可以提供与电子设备400执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出单元403包括扬声器、蜂鸣器以及受话器等。
输入单元404用于接收音频或视频信号。输入单元404可以包括图形处理器(Graphics Processing Unit,GPU)4041和麦克风4042,图形处理器4041对在视频捕获模式或图像捕获模式中由图像捕获装置(如摄像头)获得的静态图片或视频的图像数据进行处理。处理后的图像帧可以显示在显示单元406上。经图形处理器4041处理后的图像帧可以存储在存储器409(或其它存储介质)中或者经由射频单元401或网络模块402进行发送。麦克风4042可以接收声音,并且能够将这样的声音处理为音频数据。处理后的音频数据可以在电话通话模式的情况下转换为可经由射频单元401发送到移动通信基站的格式输出。
电子设备400还包括至少一种传感器405,比如光传感器、运动传感器以及其他传感器。具体地,光传感器包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板4061的亮度,接近传感器可在电子设备400移动到耳边时,关闭显示面板4061和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别电子设备姿态(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;传感器405还可以包括指纹传感器、压力传感器、虹膜传感器、分子传感器、陀螺仪、气压计、湿度计、温度计、红外线传感器等,在此不再赘述。
显示单元406用于显示由用户输入的信息或提供给用户的信息。显示单元406可包括显示面板4061,可以采用液晶显示器(Liquid Crystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板4061。
用户输入单元407可用于接收输入的数字或字符信息,以及产生与电子设备的用户设置以及功能控制有关的键信号输入。具体地,用户输入单元407包括触控面板4071以及其他输入设备4072。触控面板4071,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板4071上或在触控面板4071附近的操作)。触控面板4071可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器410,接收处理器410发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板4071。除了触控面板4071,用户输入单元407还可以包括其他输入设备4072。具体地,其他输入设备4072可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆,在此不再赘述。
进一步的,触控面板4071可覆盖在显示面板4061上,当触控面板4071检测到在其上或附近的触摸操作后,传送给处理器410以确定触摸事件的类型,随后处理器410根据触摸事件的类型在显示面板4061上提供相应的视觉输出。可以理解的是,在一种实施例中,触控面板4071与显示面板4061是作为两个独立的部件来实现电子设备的输入和输出功能,但是在某些实施例中,可以将触控面板4071与显示面板4061集成而实现电子设备的输入和输出功能,具体此处不做限定。
接口单元408为外部装置与电子设备400连接的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。接口单元408可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到电子设备400内的一个或多个元件或者可以用于在电子设备400和外部装置之间传输数据。
存储器409可用于存储软件程序以及各种数据。存储器409可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器409可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
处理器410是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器409内的软件程序和/或模块,以及调用存储在存储器409内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。处理器410可包括一个或多个处理单元;优选的,处理器410可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器410中。
电子设备400还可以包括给各个部件供电的电源411(比如电池),优选的,电源411可以通过电源管理系统与处理器410逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
另外,电子设备400包括一些未示出的功能模块,在此不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
上面结合附图对本发明的实施例进行了描述,但是本发明并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本发明的启示下,在不脱离本发明宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本发明的保护之内。
本领域普通技术人员可以意识到,结合本发明实施例中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (11)
1.一种异构容器的扩容方法,其特征在于,应用于Node节点,所述Node节点中运行有至少一个Pod容器;其中,所述Node节点中还包括数据判断模块、分别与所述数据判断模块通信连接的节点采集模块、容器采集模块以及沙箱采集模块;其中,所述节点采集模块位于所述Node节点中,所述容器采集模块位于所述Pod容器中,所述沙箱采集模块位于隔离环境中,所述方法包括:
通过所述数据判断模块收集目标Pod容器的实时内存指标数据,所述实时内存指标数据至少包括所述节点采集模块采集的第一内存指标数据、所述容器采集模块采集的第二内存指标数据以及所述沙箱采集模块采集的第三内存指标数据;
通过所述数据判断模块根据所述第一内存指标数据、所述第二内存指标数据以及所述第三内存指标数据进行内存指标的对比,获得目标内存指标数据;
根据所述目标内存指标数据判断是否对所述目标Pod容器进行扩容。
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一内存指标数据、所述第二内存指标数据以及所述第三内存指标数据进行内存指标的对比,获得目标内存指标数据,包括:
若所述目标Pod容器运行于隔离环境中,则将所述第三内存指标数据作为所述目标Pod容器的当前内存指标数据;
若所述目标Pod容器未运行于隔离环境中,则将所述第二内存指标数据作为所述目标Pod容器的当前内存指标数据;
若所述当前内存指标数据与所述第一内存指标数据之间的差值大于预设阈值,则将所述第一内存指标数据作为所述目标Pod容器的目标内存指标数据;
若所述当前内存指标数据与所述第一内存指标数据之间的差值小于预设阈值,则将所述当前内存指标数据作为所述目标Pod容器的目标内存指标数据。
3.根据权利要求1或2所述的方法,其特征在于,所述根据所述目标内存指标数据判断是否对所述目标Pod容器进行扩容,包括:
若所述目标内存指标数据大于或等于预设内存阈值,则对所述目标Pod容器进行扩容;
若所述目标内存指标数据小于所述预设内存阈值,则返回所述通过所述数据判断模块收集目标Pod容器的实时内存指标数据的过程。
4.根据权利要求3所述的方法,其特征在于,所述对所述目标Pod容器进行扩容,包括:
若所述目标Pod容器的副本数量未达到上限值,则增加所述目标Pod容器的副本数量。
5.根据权利要求1所述的方法,其特征在于,还包括:
响应于Pod容器的副本数量扩容至上限值,或Pod容器被销毁,停止对Pod容器进行数据采集。
6.根据权利要求1所述的方法,其特征在于,还包括:
通过所述节点采集模块在第一预设时长内连续查询N次内存指标数据;
通过所述节点采集模块采用所述N次内存指标数据进行有效性检验,获得所述N次内存指标数据对应的第一误差值;
若所述第一误差值小于预设误差阈值,则通过所述节点采集模块计算第二预设时长内每个所述第一预设时长内所查询的N次内存指标数据的第一平均值,并将数值最大的第一平均值作为目标Pod容器的第一内存指标数据。
7.根据权利要求1所述的方法,其特征在于,还包括:
通过所述容器采集模块在第一预设时长内连续查询N次内存指标数据;
通过所述容器采集模块采用所述N次内存指标数据进行有效性检验,获得所述N次内存指标数据对应的第二误差值;
若所述第二误差值小于预设误差阈值,则通过所述容器采集模块计算第二预设时长内每个所述第一预设时长内所查询的N次内存指标数据的第二平均值,并将数值最大的第二平均值作为目标Pod容器的第二内存指标数据。
8.根据权利要求1所述的方法,其特征在于,还包括:
通过所述沙箱采集模块在第一预设时长内连续查询N次内存指标数据;
通过所述沙箱采集模块采用所述N次内存指标数据进行有效性检验,获得所述N次内存指标数据对应的第三误差值;
若所述第三误差值小于预设误差阈值,则通过所述沙箱采集模块计算第二预设时长内每个所述第一预设时长内所查询的N次内存指标数据的第三平均值,并将数值最大的第三平均值作为目标Pod容器的第三内存指标数据。
9.一种异构容器的扩容系统,其特征在于,所述系统包括Node节点以及与所述Node节点通信连接的扩容组件,所述Node节点中运行有至少一个Pod容器;其中,所述Node节点中还包括数据判断模块、分别与所述数据判断模块通信连接的节点采集模块、容器采集模块以及沙箱采集模块;其中,所述节点采集模块位于所述Node节点中,所述容器采集模块位于所述Pod容器中,所述沙箱采集模块位于隔离环境中;其中,
所述数据判断模块,用于收集目标Pod容器的实时内存指标数据,所述实时内存指标数据至少包括所述节点采集模块采集的第一内存指标数据、所述容器采集模块采集的第二内存指标数据以及所述沙箱采集模块采集的第三内存指标数据;
所述数据判断模块,用于根据所述第一内存指标数据、所述第二内存指标数据以及所述第三内存指标数据进行内存指标的对比,获得目标内存指标数据;
所述扩容组件,用于根据所述目标内存指标数据判断是否对所述目标Pod容器进行扩容。
10.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,所述处理器、所述通信接口以及所述存储器通过所述通信总线完成相互间的通信;
所述存储器,用于存放计算机程序;
所述处理器,用于执行存储器上所存放的程序时,实现如权利要求1-8任一项所述的方法。
11.一种计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行所述指令时,使得所述处理器执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311605133.7A CN117742883A (zh) | 2023-11-28 | 2023-11-28 | 异构容器的扩容方法、系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311605133.7A CN117742883A (zh) | 2023-11-28 | 2023-11-28 | 异构容器的扩容方法、系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117742883A true CN117742883A (zh) | 2024-03-22 |
Family
ID=90282040
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311605133.7A Pending CN117742883A (zh) | 2023-11-28 | 2023-11-28 | 异构容器的扩容方法、系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117742883A (zh) |
-
2023
- 2023-11-28 CN CN202311605133.7A patent/CN117742883A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111143005B (zh) | 一种应用分享方法、电子设备及计算机可读存储介质 | |
CN107590057B (zh) | 冻屏监测与解决方法、移动终端及计算机可读存储介质 | |
CN108984066B (zh) | 一种应用程序图标显示方法及移动终端 | |
CN108073458B (zh) | 内存回收方法、移动终端及计算机可读存储介质 | |
CN107704363B (zh) | 冻屏监测方法、移动终端及计算机可读存储介质 | |
CN109976611B (zh) | 终端设备的控制方法及终端设备 | |
CN110879680B (zh) | 一种图标管理方法及电子设备 | |
CN109995862B (zh) | 一种资源调度方法及终端 | |
CN110659179B (zh) | 一种评估系统运行状况的方法、装置及电子设备 | |
CN109714476B (zh) | 数据处理方法、装置、移动终端及存储介质 | |
CN110780940A (zh) | 应用程序加载方法、电子设备和存储介质 | |
CN111984401A (zh) | 一种内存溢出管理方法、装置、电子设备及存储介质 | |
CN107908492B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN107766222B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN107277364B (zh) | 一种拍摄方法、移动终端及计算机可读存储介质 | |
CN109117037B (zh) | 一种图像处理的方法及终端设备 | |
CN107832191B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN108089935B (zh) | 一种应用程序的管理方法及移动终端 | |
CN107872367B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN112612552A (zh) | 应用程序资源加载方法、装置、电子设备及可读存储介质 | |
CN109144860B (zh) | 一种对控件对象的操作方法及终端设备 | |
CN108965701B (zh) | 一种抖动矫正方法及终端设备 | |
CN108491225B (zh) | 一种更新包生成方法及移动终端 | |
CN111078312A (zh) | 一种加载mbn的方法及电子设备 | |
CN117527804A (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 |