容器组临时存储容量的确定方法、装置及电子设备与流程

文档序号:37272172发布日期:2024-03-12 21:02阅读:17来源:国知局
容器组临时存储容量的确定方法、装置及电子设备与流程

本技术涉及云计算、金融科技领域和其他,具体而言,涉及一种容器组临时存储容量的确定方法、装置及电子设备。


背景技术:

1、目前,在k8s集群中可以通过多种监控系统或监控工具对集群中的容器进行监控,以确保容器的正常运行,和及时地响应容器的异常信息。

2、现有技术中,可以通过监控工具cadvisor在k8s集群中采集容器和容器组的指标数据,再通过监控系统prometheus采集cadvisor中的数据,将容器的指标数据展示给工作人员或运维人员。

3、具体地,图1是cadvisor在集群中采集容器的指标数据的流程示意图。如图1所示,首先检测集群中是否存在新启动的容器,在有新启动的容器的情况下,启动对新容器的监控服务,然后每隔一定时间计算该容器根文件系统的临时存储容量,并将结果缓存在内存中,最后通过cadvisor的metrics接口从内存中获取临时存储容量,并通过相同的方法返回该容器所属容器组中所有容器根文件系统的临时存储容量。这种方法通过metrics接口获取到了容器组中根文件系统的临时存储容量,但缺失了容器组emptydir卷中的临时存储容量,导致统计到的临时存储容量不准确的问题。

4、图2是通过prometheus汇总容器组的临时存储容量的流程示意图。如图2所示,首先prometheus访问cadvisor的metrics接口,cadvisor返回容器组中所有容器根文件系统的临时存储容量,然后prometheus根据每个容器的容器组标签汇总同一个容器组的临时存储容量。

5、监控工具cadvisor在k8s集群中采集容器和容器组的指标数据时,仅采集了容器根目录中的临时存储容量,对于容器组中emptydir卷的指标数据则缺失采集,致使prometheus无法一次性采集到容器组的所有指标数据,导致运维人员无法有效地衡量整个存储系统的使用情况。同时由于emptydir卷不属于容器组中任何一个业务容器,因此不能将其重复归并到每个业务容器的中临时存储容量进行计算。

6、现有技术中,还可以通过kubelet中eviction-manager在k8s集群中采集容器和容器组的指标数据。

7、具体地,图3是eviction-manager在集群中采集容器的指标数据的流程示意图。如图3所示,首先eviction-manager获取所有容器组,得到容器组列表,然后eviction-manager调用cadvisor查询每个容器组的所有容器根文件系统的临时存储容量,若查询到的容器是pause容器,则不计算pause容器的临时存储容量,最后计算容器组中emptydir卷的临时存储容量,并累加到该容器组的临时存储总量中。但这种方法仅能在kubelet内部看到容器组的临时存储总量,并且仅能看到整个容器组的临时存储总量,无法具体展示每个容器的临时存储总量,不利于运维人员的维护工作,降低了运维人员的工作效率。

8、针对相关技术中采集容器组的临时存储容量的指标数据时,无法准确地采集到容器组中所有的临时存储容量,导致运维人员无法准确地衡量容器组所占用的存储空间的问题,目前尚未提出有效的解决方案。


技术实现思路

1、本技术的主要目的在于提供一种容器组临时存储容量的确定方法、装置及电子设备,以解决相关技术中采集容器组的临时存储容量的指标数据时,无法准确地采集到容器组中所有的临时存储容量,导致运维人员无法准确地衡量容器组所占用的存储空间的问题。

2、为了实现上述目的,根据本技术的一个方面,提供了一种容器组临时存储容量的确定方法,该方法包括:在集群中存在目标容器的情况下,获取所述目标容器的容器信息,其中,所述目标容器是指所述集群中启动时长不超过第一预设时长的容器;依据所述容器信息计算目标卷的存储容量,得到第一存储容量,其中,所述目标卷用于存储所述目标容器所属容器组共享的临时数据;依据所述容器信息计算所述目标容器的根文件系统中临时数据的存储容量,得到第二存储容量;通过容器监控系统对所述第一存储容量和所述第二存储容量进行处理,确定所述容器组的临时存储容量。

3、进一步地,获取所述目标容器的容器信息包括:通过命令行工具获取所述目标容器的容器名称,得到目标名称;依据所述目标名称确定所述目标容器的容器信息。

4、进一步地,依据所述容器信息计算目标卷的存储容量,得到第一存储容量包括:在所述目标名称为预设字符串的情况下,获取所述目标容器的标签信息,得到目标标签;依据所述目标标签确定所述容器组的容器id,得到目标容器id;依据所述目标容器id确定所述目标卷的文件路径,得到第一文件路径;依据所述第一文件路径确定所述目标卷中存储的临时数据,得到第一临时数据;每经过第二预设时长确定所述第一临时数据占用的存储空间,得到所述第一存储容量。

5、进一步地,依据所述容器信息计算所述目标容器的根文件系统中临时数据的存储容量,得到第二存储容量包括:在所述目标名称不为所述预设字符串的情况下,依据所述目标名称获取所述目标容器的根文件系统的临时数据的文件路径,得到第二文件路径;依据所述第二文件路径确定所述根文件系统中存储的临时数据,得到第二临时数据;每经过所述第二预设时长确定所述第二临时数据占用的存储空间,得到所述第二存储容量。

6、进一步地,通过容器监控系统对所述第一存储容量和所述第二存储容量进行处理,确定所述容器组的临时存储容量包括:将所述第一存储容量和所述第二存储容量写入内存中;将所述内存中的所述第一存储容量和所述第二存储容量传输至所述容器监控系统中,其中,所述容器监控系统依据容器的标签信息和所述第二存储容量确定所述容器组中每个容器的临时存储容量;依据所述容器组中每个容器的临时存储容量和所述第一存储容量确定所述容器组的临时存储容量。

7、进一步地,将所述内存中的所述第一存储容量和所述第二存储容量传输至所述容器监控系统中包括:通过容器监控工具的目标接口获取所述内存中的所述第一存储容量和所述第二存储容量,其中,所述目标接口是指获取容器指标数据的接口;通过所述容器监控工具将所述第一存储容量和所述第二存储容量传输至所述容器监控系统中。

8、进一步地,在通过容器监控系统对所述第一存储容量和所述第二存储容量进行处理,确定所述容器组的临时存储容量之后,所述方法还包括:获取所述集群中所述容器组中存储的目标数据,其中,所述目标数据是指所述容器组中除所述临时存储容量包括的数据之外的数据;在所述临时存储容量和所述目标数据的存储容量的和超过预设存储容量的情况下,生成所述容器组的存储容量的报警信息;将所述报警信息发送至目标对象,其中,所述目标对象依据所述报警信息对所述容器组进行处理。

9、为了实现上述目的,根据本技术的另一方面,提供了一种容器组临时存储容量的确定装置,该装置包括:第一获取单元,用于在集群中存在目标容器的情况下,获取所述目标容器的容器信息,其中,所述目标容器是指所述集群中启动时长不超过第一预设时长的容器;第一计算单元,用于依据所述容器信息计算目标卷的存储容量,得到第一存储容量,其中,所述目标卷用于存储所述目标容器所属容器组共享的临时数据;第二计算单元,用于依据所述容器信息计算所述目标容器的根文件系统中临时数据的存储容量,得到第二存储容量;确定单元,用于通过容器监控系统对所述第一存储容量和所述第二存储容量进行处理,确定所述容器组的临时存储容量。

10、进一步地,所述获取单元包括:第一获取子单元,用于通过命令行工具获取所述目标容器的容器名称,得到目标名称;第一确定子单元,用于依据所述目标名称确定所述目标容器的容器信息。

11、进一步地,所述第一计算单元包括:第二获取子单元,用于在所述目标名称为预设字符串的情况下,获取所述目标容器的标签信息,得到目标标签;第二确定子单元,用于依据所述目标标签确定所述容器组的容器id,得到目标容器id;第三确定子单元,用于依据所述目标容器id确定所述目标卷的文件路径,得到第一文件路径;第四确定子单元,用于依据所述第一文件路径确定所述目标卷中存储的临时数据,得到第一临时数据;第五确定子单元,用于每经过第二预设时长确定所述第一临时数据占用的存储空间,得到所述第一存储容量。

12、进一步地,所述第二计算单元包括:第三获取子单元,用于在所述目标名称不为所述预设字符串的情况下,依据所述目标名称获取所述目标容器的根文件系统的临时数据的文件路径,得到第二文件路径;第六确定子单元,用于依据所述第二文件路径确定所述根文件系统中存储的临时数据,得到第二临时数据;第七确定子单元,用于每经过所述第二预设时长确定所述第二临时数据占用的存储空间,得到所述第二存储容量。

13、进一步地,所述确定单元包括:写入子单元,用于将所述第一存储容量和所述第二存储容量写入内存中;传输子单元,用于将所述内存中的所述第一存储容量和所述第二存储容量传输至所述容器监控系统中,其中,所述容器监控系统依据容器的标签信息和所述第二存储容量确定所述容器组中每个容器的临时存储容量;第八确定子单元,用于依据所述容器组中每个容器的临时存储容量和所述第一存储容量确定所述容器组的临时存储容量。

14、进一步地,所述传输子单元包括:获取模块,用于通过容器监控工具的目标接口获取所述内存中的所述第一存储容量和所述第二存储容量,其中,所述目标接口是指获取容器指标数据的接口;传输模块,用于通过所述容器监控工具将所述第一存储容量和所述第二存储容量传输至所述容器监控系统中。

15、进一步地,所述装置还包括:第二获取单元,用于在通过容器监控系统对所述第一存储容量和所述第二存储容量进行处理,确定所述容器组的临时存储容量之后,获取所述集群中所述容器组中存储的目标数据,其中,所述目标数据是指所述容器组中除所述临时存储容量包括的数据之外的数据;生成单元,用于在所述临时存储容量和所述目标数据的存储容量的和超过预设存储容量的情况下,生成所述容器组的存储容量的报警信息;发送单元,用于将所述报警信息发送至目标对象,其中,所述目标对象依据所述报警信息对所述容器组进行处理。

16、为了实现上述目的,根据本技术的一个方面,提供了一种计算机可读存储介质,所述计算机可读存储介质包括存储的计算机程序,其中,在所述计算机程序运行时控制所述计算机可读存储介质所在设备执行上述任意一项所述容器组临时存储容量的确定方法。

17、为了实现上述目的,根据本技术的一个方面,提供了一种电子设备,包括一个或多个处理器和存储器,存储器用于存储一个或多个程序,其中,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现上述任意一项所述容器组临时存储容量的确定方法。

18、通过本技术,采用以下步骤:在集群中存在目标容器的情况下,获取所述目标容器的容器信息,其中,所述目标容器是指所述集群中启动时长不超过第一预设时长的容器;依据所述容器信息计算目标卷的存储容量,得到第一存储容量,其中,所述目标卷用于存储所述目标容器所属容器组共享的临时数据;依据所述容器信息计算所述目标容器的根文件系统中临时数据的存储容量,得到第二存储容量;通过容器监控系统对所述第一存储容量和所述第二存储容量进行处理,确定所述容器组的临时存储容量,解决了相关技术中采集容器组的临时存储容量的指标数据时,无法准确地采集到容器组中所有的临时存储容量,导致运维人员无法准确地衡量容器组所占用的存储空间的问题。通过确定目标容器和目标容器的容器信息,能够获取到目标容器所属容器组中目标卷的临时数据的存储容量,以及每个容器的根文件目录下临时数据的存储容量,从而能够准确地获取到该容器组中临时数据的存储容量,避免了该容器组中部分临时数据没有被统计,使得错误地确定该容器组占用的存储空间,进而导致应用程序崩溃或集群性能下降的问题,提高了运维人员的工作效率,达到了提高业务稳定性和服务可用性的效果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1