容器信息的处理方法、装置、存储介质及电子设备与流程
未命名
08-22
阅读:69
评论:0

1.本发明涉及云计算领域,具体而言,涉及一种容器信息的处理方法、装置、存储介质及电子设备。
背景技术:
2.随着应用云化及容器化后,kubernetes(简称k8s)已经成为事实上的容器编排标准。目前,大多数金融机构的容器管理实际上均使用k8s作为底层的调度编排系统,但随着使用容器的规模越来越大,单k8s集群的容器管理能力有限,越来越无法承载所有的业务容器,因此,引入多集群进行容器管理。
3.目前,在获取多集群容器信息时,往往需要通过实时调用各集群的http api接口,获取对应的容器资源对象,并根据资源对象中特定的某些字段,判断容器的存活状态,由于资源对象中的字段存在丢失或采集不到的情况,因此这种方式无法准确得到当前容器存活状态,准确率比较低,并且,由于实时调用各集群的http api接口,存在延时高、单个集群阻塞影响全量集群信息采集的问题。
4.针对上述的问题,目前尚未提出有效的解决方案。
技术实现要素:
5.本发明实施例提供了一种容器信息的处理方法、装置、存储介质及电子设备,以至少解决现有技术中在通过多集群管理目标应用的容器信息时,采用依据字符串中的目标字段判断容器状态的方式,存在容器状态判断准确率比较低的技术问题。
6.根据本发明实施例的一个方面,提供了一种容器信息的处理方法,包括:在监听到消息中间件中存在目标消息的情况下,通过目标平台获取目标消息,其中,目标消息包括多个容器集群中的多个容器的资源信息数据,资源信息数据用于描述容器的属性信息;对目标消息进行解析处理,得到多个容器的属性信息,并依据属性信息,判断每个容器的容器状态,得到判断结果,其中,判断结果用于表征容器是否处于运行状态;依据判断结果,在数据库中对每个容器的容器信息进行更新。
7.进一步地,属性信息至少包括容器所属的pod实例的pod名称、pod所属的宿主机的宿主机ip、容器的容器名称以及容器的容器id,其中,依据属性信息,判断每个容器的容器状态,得到判断结果,包括:依据pod名称、宿主机ip以及容器名称,在数据库中进行容器信息查询,得到查询结果;若查询结果为查询失败,则确定pod名称、宿主机ip以及容器名称对应的容器为新增容器,并将新增容器处于运行状态作为判断结果;若查询结果为查询成功,则依据容器id,判断每个容器的容器状态,得到判断结果。
8.进一步地,依据容器id,判断每个容器的容器状态,得到判断结果,包括:分别将每个容器id与数据库中存储的容器id进行比对;若容器id与数据库中存储的容器id相同,则将容器id对应的容器处于运行状态作为判断结果;若容器id与数据库中存储的容器id不相同,则将容器id对应的容器处于异常状态作为判断结果。
9.进一步地,依据判断结果,在数据库中对每个容器的容器信息进行更新,包括:若判断结果为新增容器处于运行状态,则在数据库中添加新增容器的容器信息;若判断结果为容器处于运行状态,则不做处理;若判断结果为容器处于异常状态,则在数据库中将容器的容器信息中的容器状态从运行状态更改为异常状态。
10.进一步地,在在监听到消息中间件中存在目标消息的情况下,通过目标平台获取目标消息之前,该方法还包括:通过每个容器集群中部署的第一节点对每个容器集群进行信息采集,得到每个容器集群的目标字符串,其中,目标字符串用于描述容器集群中的目标资源类型的资源;获取容器集群的集群名称和目标资源类型的资源的资源名称;依据目标字符串、集群名称以及资源名称,生成容器的资源信息数据,并依据资源信息数据,生成目标消息。
11.进一步地,在依据资源信息数据,生成目标消息之后,该方法还包括:在消息中间件中确定与集群名称对应的目标消息分区;依据信息采集顺序,将目标消息推送至目标消息分区进行缓存。
12.进一步地,在依据判断结果,在数据库中对每个容器的容器信息进行更新之后,该方法还包括:在接收到查询指令的情况下,响应查询指令,在数据库中查询多个容器集群的容器信息,其中,查询指令为目标对象发出的针对目标应用的容器信息进行查询的指令,多个容器集群用于管理目标应用的容器信息;依据多个容器集群的容器信息,生成目标应用的容器信息表,并向目标对象展示容器信息表。
13.根据本发明实施例的另一方面,还提供了一种容器信息的处理装置,包括:第一获取模块,用于在监听到消息中间件中存在目标消息的情况下,通过目标平台获取目标消息,其中,目标消息包括多个容器集群中的多个容器的资源信息数据,资源信息数据用于描述容器的属性信息;第一处理模块,用于对目标消息进行解析处理,得到多个容器的属性信息,并依据属性信息,判断每个容器的容器状态,得到判断结果,其中,判断结果用于表征容器是否处于运行状态;第二处理模块,用于依据判断结果,在数据库中对每个容器的容器信息进行更新。
14.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的容器信息的处理方法。
15.根据本发明实施例的另一方面,还提供了一种电子设备,该电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的容器信息的处理方法。
16.在本发明实施例中,采用根据解析得到的属性信息判断容器状态的方式,首先在监听到消息中间件中存在目标消息的情况下,通过目标平台获取目标消息,然后对目标消息进行解析处理,得到多个容器的属性信息,并依据属性信息,判断每个容器的容器状态,得到判断结果,然后依据判断结果,在数据库中对每个容器的容器信息进行更新。其中,目标消息包括多个容器集群中的多个容器的资源信息数据,资源信息数据用于描述容器的属性信息,判断结果用于表征容器是否处于运行状态。
17.在上述过程中,通过获取目标消息,能够解析得到多个容器的属性信息,为进行容
器状态判断提供了准确的数据基础;依据属性信息,可以判断出每个容器的容器状态,有效保证了容器状态判断的准确性,提高了容器状态判断的准确率和效率,从而能够依据判断结果,在数据库中对每个容器的容器信息进行更新,提高容器信息管理的准确率和效率。
18.由此可见,通过本发明的技术方案,达到了准确判断容器的状态的目的,从而实现了提高容器状态判断的准确率和效率的技术效果,进而解决了现有技术中在通过多集群管理目标应用的容器信息时,采用依据字符串中的目标字段判断容器状态的方式,存在容器状态判断准确率比较低的技术问题。
附图说明
19.此处所说明的附图用来提供对本发明的进一步理解,构成本技术的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
20.图1是根据本发明实施例的一种可选的容器信息的处理方法的流程图;
21.图2是根据本发明实施例的一种可选的容器信息的处理架构的示意图;
22.图3是根据本发明实施例的一种可选的容器信息的处理流程示意图;
23.图4是根据本发明实施例的一种可选的容器信息的处理装置的示意图;
24.图5是根据本发明实施例的一种可选的电子设备的示意图。
具体实施方式
25.为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
26.需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
27.需要说明的是,本发明所涉及的相关信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于展示的数据、分析的数据等),均为经用户授权或者经过各方充分授权的信息和数据。例如,本系统和相关用户或机构间设置有接口,在获取相关信息之前,需要通过接口向前述的用户或机构发送获取请求,并在接收到前述的用户或机构反馈的同意信息后,获取相关信息。
28.实施例1
29.根据本发明实施例,提供了一种容器信息的处理方法的实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示
出或描述的步骤。
30.图1是根据本发明实施例的一种可选的容器信息的处理方法的流程图,如图1所示,该方法包括如下步骤:
31.步骤s101,在监听到消息中间件中存在目标消息的情况下,通过目标平台获取目标消息,其中,目标消息包括多个容器集群中的多个容器的资源信息数据,资源信息数据用于描述容器的属性信息。
32.在上述步骤中,可以通过应用系统、处理器、电子设备等装置监听消息中间件中的消息,以获取目标消息,可选地,通过容器信息的处理系统监听消息中间件中的消息,在监听到消息中间件中存在目标消息的情况下,通过目标平台获取目标消息。
33.其中,目标消息可以是由消息生产者推送到消息中间件中的未消费的容器资源消息,消息中间件可以是kafka消息系统,目标平台可以是pass集群管理平台。在监听到kafka消息系统中存在未消费的容器资源消息的情况下,通过消息消费者(即pass集群管理平台)获取未消费的容器资源消息。
34.步骤s102,对目标消息进行解析处理,得到多个容器的属性信息,并依据属性信息,判断每个容器的容器状态,得到判断结果,其中,判断结果用于表征容器是否处于运行状态。
35.可选地,通过对目标消息进行解析处理,可以得到多个容器的属性信息。例如,消息消费者顺序消费消息中间件中的容器资源消息,解析消息包含的资源中的资源值,可以得到容器的属性信息,具体地,对描述pod资源的pod.json字符串中的key-value(即属性名和属性值)进行解析,得到容器的全量信息(即属性信息),例如,容器初始状态、宿主机ip、pod名称、容器名称、容器id以及镜像名称等信息。可选地,依据属性信息,可以判断出每个容器的容器状态,从而准确确定出容器是否处于运行状态。
36.步骤s103,依据判断结果,在数据库中对每个容器的容器信息进行更新。
37.可选地,依据判断结果,在数据库中对每个容器的容器信息进行更新,以实现多集群管理应用的容器信息。例如,可以在数据库中以容器id为唯一约束条件,建立容器信息表,用于持久化保存容器信息,同时对外提供容器信息查询api接口。
38.可选地,若判断出容器状态为运行状态,则不做处理;若判断出容器状态为死亡状态,则在数据库中对该容器的容器状态进行更新,即在数据库中将该容器的容器信息中的容器状态从运行状态更改为死亡状态。
39.基于上述步骤s101至步骤s103所限定的方案,可以获知,在本发明实施例中,采用根据解析得到的属性信息判断容器状态的方式,首先在监听到消息中间件中存在目标消息的情况下,通过目标平台获取目标消息,然后对目标消息进行解析处理,得到多个容器的属性信息,并依据属性信息,判断每个容器的容器状态,得到判断结果,然后依据判断结果,在数据库中对每个容器的容器信息进行更新。其中,目标消息包括多个容器集群中的多个容器的资源信息数据,资源信息数据用于描述容器的属性信息,判断结果用于表征容器是否处于运行状态。
40.容易注意到的是,在上述过程中,通过获取目标消息,能够解析得到多个容器的属性信息,为进行容器状态判断提供了准确的数据基础;依据属性信息,可以判断出每个容器的容器状态,有效保证了容器状态判断的准确性,提高了容器状态判断的准确率和效率,从
而能够依据判断结果,在数据库中对每个容器的容器信息进行更新,提高容器信息管理的准确率和效率。
41.由此可见,通过本发明的技术方案,达到了准确判断容器的状态的目的,从而实现了提高容器状态判断的准确率和效率的技术效果,进而解决了现有技术中在通过多集群管理目标应用的容器信息时,采用依据字符串中的目标字段判断容器状态的方式,存在容器状态判断准确率比较低的技术问题。
42.在一种可选的实施例中,属性信息至少包括容器所属的pod实例的pod名称、pod所属的宿主机的宿主机ip、容器的容器名称以及容器的容器id,其中,依据属性信息,判断每个容器的容器状态,得到判断结果,包括:依据pod名称、宿主机ip以及容器名称,在数据库中进行容器信息查询,得到查询结果;若查询结果为查询失败,则确定pod名称、宿主机ip以及容器名称对应的容器为新增容器,并将新增容器处于运行状态作为判断结果;若查询结果为查询成功,则依据容器id,判断每个容器的容器状态,得到判断结果。
43.可选地,由于在整个生命周期下,同一个pod实例的pod名称不会变化,并且,在同一个pod实例下,若发生容器死亡后重启,容器名称不会变化,但是容器id会变化,因此,可以依据pod名称、容器名称以及容器id等属性信息,判断每个容器的容器状态。
44.可选地,依据pod名称、宿主机ip以及容器名称,在数据库中进行容器信息查询,获取数据库中保存的上一状态的容器信息。若查询结果为查询失败,即在数据库中未查询到与pod名称、宿主机ip以及容器名称对应的容器信息,则确定pod名称、宿主机ip以及容器名称对应的容器为新增容器,即表明该容器为首次被采集的存活容器,也即处于运行状态的新容器,将新增容器处于运行状态作为判断结果;若查询结果为查询成功,则可以继续依据容器id,判断每个容器的容器状态,得到判断结果。
45.需要说明的是,在上述过程中,依据属性信息判断每个容器的容器状态,实现了对容器状态的准确判断,提高了容器状态判断的准确率。
46.在一种可选的实施例中,依据容器id,判断每个容器的容器状态,得到判断结果,包括:分别将每个容器id与数据库中存储的容器id进行比对;若容器id与数据库中存储的容器id相同,则将容器id对应的容器处于运行状态作为判断结果;若容器id与数据库中存储的容器id不相同,则将容器id对应的容器处于异常状态作为判断结果。
47.可选地,由于上一状态的容器信息中包含容器id,因此在依据pod名称、宿主机ip以及容器名称,从数据库中查询出上一状态的容器信息之后,可以依据容器id,判断每个容器的容器状态。
48.具体地,分别将每个容器id与数据库中存储的容器id进行比对,若容器id与数据库中存储的容器id相同,表明此pod下无容器状态变化,则将容器id对应的容器处于运行状态作为判断结果;若容器id与数据库中存储的容器id不相同,表明此pod下的容器发生了重启,即数据库中保存的容器已死亡,则将容器id对应的容器处于死亡状态(即异常状态)作为判断结果。
49.需要说明的是,在上述过程中,通过比对同一容器当前状态和上一状态来判断容器状态,有效保证了容器状态判断的准确性,避免了由于字符串的字段存在丢失导致容器状态判断不准确。
50.在一种可选的实施例中,依据判断结果,在数据库中对每个容器的容器信息进行
更新,包括:若判断结果为新增容器处于运行状态,则在数据库中添加新增容器的容器信息;若判断结果为容器处于运行状态,则不做处理;若判断结果为容器处于异常状态,则在数据库中将容器的容器信息中的容器状态从运行状态更改为异常状态。
51.可选地,在依据判断结果,在数据库中对每个容器的容器信息进行更新的过程中,若判断结果为新增容器处于运行状态,即该容器为首次被采集的存活容器,则在数据库中添加新增容器的容器信息,例如,在数据库中添加新增容器的宿主机ip、pod名称、容器名称、容器id以及镜像名称等信息。
52.可选地,若判断结果为容器处于运行状态,则不做处理,即此pod下无容器状态变化,无需关注。
53.可选地,若判断结果为容器处于异常状态(即死亡状态),表明此pod下的容器发生了重启,即数据库中保存的容器已死亡,则在数据库中将容器的容器信息中的容器状态从运行状态更改为死亡状态。
54.需要说明的是,通过在数据库中对每个容器的容器信息进行更新,实现了多集群管理应用的容器信息,提高了容器信息管理的准确率和效率。
55.在一种可选的实施例中,在在监听到消息中间件中存在目标消息的情况下,通过目标平台获取目标消息之前,通过每个容器集群中部署的第一节点对每个容器集群进行信息采集,得到每个容器集群的目标字符串,其中,目标字符串用于描述容器集群中的目标资源类型的资源;获取容器集群的集群名称和目标资源类型的资源的资源名称;依据目标字符串、集群名称以及资源名称,生成容器的资源信息数据,并依据资源信息数据,生成目标消息。
56.可选地,第一节点可以是采集节点,例如,第一节点可以是以k8s中的deployment形式部署的单副本采集节点,目标资源类型的资源可以是pod资源,每个容器集群的目标字符串对应部署集群中每个pod的描述信息,并以json字符串的形式呈现,例如,目标字符串可以是描述pod资源的pod.json字符串。在在监听到kafka消息系统中存在未消费的容器资源消息的情况下,通过消息消费者(即pass集群管理平台)获取未消费的容器资源消息之前,通过每个容器集群中部署的采集节点对每个容器集群进行信息采集,得到每个容器集群的pod.json字符串,并获取容器集群的集群名称和pod资源的资源名称,依据pod.json字符串、集群名称以及资源名称生成容器的资源信息数据,并依据资源信息数据,生成容器资源消息。
57.例如,每个集群部署一个采集节点(即消息生产者),可选地,采集节点与集群控制节点(master节点)通过list-watch机制建立长连接,采集节点监听集群组件之间的通信并获取通信消息,从通信消息中采集描述pod资源的pod.json字符串,并根据集群名称、资源名称以及采集到的字符串生成容器资源信息,根据资源信息生成一条消息。具体地,通过list-watch机制形成初始消息及后续的增量消息,即第一次连接该集群的时候通过list的方式请求该集群全量的实时资源数据,后续增量的资源改动通过watch的方式进行实时更新。
58.可选地,采集节点生成的容器资源信息数据可以是:集群名:cluster-1,资源类型:pod(该字段为k8s中的资源名称),资源值:pod.json字符串。
59.需要说明的是,通过每个容器集群中部署的第一节点对每个容器集群进行信息采
集,提高了对多集群容器信息的采集效率,从而提高了容器信息管理的效率,解决了单个集群阻塞影响全量集群信息采集的问题。
60.在一种可选的实施例中,在依据资源信息数据,生成目标消息之后,在消息中间件中确定与集群名称对应的目标消息分区;依据信息采集顺序,将目标消息推送至目标消息分区进行缓存。
61.可选地,消息中间件用于缓存采集节点采集的数据,消息中间件中包含多个消息分区,每个集群对应一个消息分区。可选地,在依据资源信息数据,生成容器资源消息之后,首先在kafka消息系统中确定与集群名称对应的目标消息分区,然后依据信息采集顺序,将容器资源消息推送至目标消息分区进行缓存。例如,采集节点采集数据并生成容器资源消息后,以集群名称为索引,按时序将同一个集群名称的消息推送至同一个分区中进行缓存,从而使得消息消费者能够消费消息中间件中的消息,从pod.json字符串中解析得到容器信息。
62.需要说明的是,通过将目标消息推送至目标消息分区进行缓存,有效提高了容器信息管理的效率。
63.在一种可选的实施例中,在依据判断结果,在数据库中对每个容器的容器信息进行更新之后,在接收到查询指令的情况下,响应查询指令,在数据库中查询多个容器集群的容器信息,其中,查询指令为目标对象发出的针对目标应用的容器信息进行查询的指令,多个容器集群用于管理目标应用的容器信息;依据多个容器集群的容器信息,生成目标应用的容器信息表,并向目标对象展示容器信息表。
64.可选地,对数据库封装集群维度的查询接口,使数据库具有对多集群的数据查询聚合功能,从而在依据判断结果,在数据库中对每个容器的容器信息进行更新之后,在接收到查询指令的情况下,能够响应查询指令,在数据库中查询出多个容器集群的容器信息,并依据多个容器集群的容器信息,生成目标应用的容器信息表,向目标对象展示容器信息表。
65.例如,可以在数据库中以容器id为唯一约束条件,建立容器信息表,用于持久化保存容器信息,同时对外提供容器信息查询api接口。目标对象可以是集群管理人员或应用的运维人员,根据需求发出针对目标应用的容器信息进行查询的指令,例如,应用的运维人员发出查询容器状态的指令,在数据库中查询出应用在多个容器集群的容器状态信息,得到记录有容器处于运行状态或是死亡状态的容器状态信息表。
66.需要说明的是,在本实施例中,通过对数据库封装集群维度的查询接口,实现了数据聚合及信息丰富,在集群分布式部署架构下为用户提供了统一的全局视图,提升了用户体验。
67.在一种可选的实施例中,在依据判断结果,在数据库中对每个容器的容器信息进行更新之后,可以在容器监测系统中对容器状态为死亡状态的容器解除注册,还可以通过向容器监测系统发送心跳报文,实现新增容器的注册,提升容器监测系统的容器管理准确率和效率。
68.图2是根据本发明实施例的一种可选的容器信息的处理架构的示意图,如图2所示,每个集群(例如kubernetes集群1和kubernetes集群2)部署一个采集节点(即消息生产者),通过长连接方式持续采集集群中的pod.json字符串,并将采集后的数据推送给后端的消息中间件中进行缓存,消息消费者消费消息中间件的数据,从pod.json字符串中解析得
到容器信息,例如,pod名称、容器名称以及容器id等属性信息,根据这些信息判定容器状态,并实时更新数据库中的容器信息,在数据库中以容器id为唯一约束条件,建立容器信息表,用于持久化保存容器信息,同时对外提供容器信息查询api接口。
69.具体地,采集节点采集数据,推送到消息中间件:采集节点与集群控制节点(master节点)通过list-watch机制建立长连接,采集节点监听集群组件之间的通信并获取通信消息,从通信消息中采集描述pod资源的pod.json字符串,并根据集群名称、资源名称以及采集到的字符串生成容器资源信息,根据资源信息生成一条消息。具体地,通过list-watch机制形成初始消息及后续的增量消息,即第一次连接该集群的时候通过list的方式请求该集群全量的实时资源数据,后续增量的资源改动通过watch的方式进行实时更新。可选地,采集节点生成的容器资源信息数据可以是:集群名:cluster-1,资源类型:pod(该字段为k8s中的资源名称),资源值:pod.json字符串。
70.图3是根据本发明实施例的一种可选的容器信息的处理流程示意图,如图3所示,在kafka消息系统状态正常的情况下,持续监听kafka消息系统,在监听到kafka消息系统中存在未消费数据(即容器资源消息)的情况下,消息消费者顺序消费消息中间件中的容器资源消息,例如,消费1条数据,解析pod.json字符串中的key-value,获取容器的全量信息(例如,容器初始状态、宿主机ip、pod名称、容器名称、容器id以及镜像名称等),作为pod当前状态,然后依据pod名称、宿主机ip以及容器名称查询数据库,获取容器信息,作为pod上次最新状态(即获取数据库中保存的上一状态容器信息),若数据库中查不到,表明该容器为首次被采集的存活容器,则将当前状态容器信息插入数据库,即在数据库中添加新增容器的容器信息,若数据库中查到,则继续判断两次状态下容器id是否一致,若一致,表明此pod下无容器状态变化,则无需关注,若不一致,表明此pod下的容器发生了重启,即数据库中保存的容器已死亡,则更新数据库中上一状态的容器为死亡状态,即在数据库中将容器的容器信息中的容器状态从运行状态更改为死亡状态。
71.需要说明的是,在本实施例中,根据解析得到的属性信息判断容器状态,有效保证了容器状态判断的准确性,提高了容器状态判断的准确率和效率,从而提高容器信息管理的准确率和效率。
72.由此可见,通过本发明的技术方案,达到了准确判断容器的状态的目的,从而实现了提高容器状态判断的准确率和效率的技术效果,进而解决了现有技术中在通过多集群管理目标应用的容器信息时,采用依据字符串中的目标字段判断容器状态的方式,存在容器状态判断准确率比较低的技术问题。
73.实施例2
74.根据本发明实施例,提供了一种容器信息的处理装置的实施例,其中,图4是根据本发明实施例的一种可选的容器信息的处理装置的示意图,如图4所示,该装置包括:第一获取模块401,用于在监听到消息中间件中存在目标消息的情况下,通过目标平台获取目标消息,其中,目标消息包括多个容器集群中的多个容器的资源信息数据,资源信息数据用于描述容器的属性信息;第一处理模块402,用于对目标消息进行解析处理,得到多个容器的属性信息,并依据属性信息,判断每个容器的容器状态,得到判断结果,其中,判断结果用于表征容器是否处于运行状态;第二处理模块403,用于依据判断结果,在数据库中对每个容器的容器信息进行更新。
75.需要说明的是,上述的第一获取模块401、第一处理模块402以及第二处理模块403对应于上述实施例中的步骤s101至步骤s103,三个模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例1所公开的内容。
76.可选地,属性信息至少包括容器所属的pod实例的pod名称、pod所属的宿主机的宿主机ip、容器的容器名称以及容器的容器id,第一处理模块包括:查询模块,用于依据pod名称、宿主机ip以及容器名称,在数据库中进行容器信息查询,得到查询结果;第一确定模块,用于若查询结果为查询失败,则确定pod名称、宿主机ip以及容器名称对应的容器为新增容器,并将新增容器处于运行状态作为判断结果;判断模块,用于若查询结果为查询成功,则依据容器id,判断每个容器的容器状态,得到判断结果。
77.可选地,判断模块包括:比对模块,用于分别将每个容器id与数据库中存储的容器id进行比对;第二确定模块,用于若容器id与数据库中存储的容器id相同,则将容器id对应的容器处于运行状态作为判断结果;第三确定模块,用于若容器id与数据库中存储的容器id不相同,则将容器id对应的容器处于异常状态作为判断结果。
78.可选地,第二处理模块包括:第三处理模块,用于若判断结果为新增容器处于运行状态,则在数据库中添加新增容器的容器信息;第四确定模块,用于若判断结果为容器处于运行状态,则不做处理;第四处理模块,用于若判断结果为容器处于异常状态,则在数据库中将容器的容器信息中的容器状态从运行状态更改为异常状态。
79.可选地,容器信息的处理装置还包括:采集模块,用于在在监听到消息中间件中存在目标消息的情况下,通过目标平台获取目标消息之前,通过每个容器集群中部署的第一节点对每个容器集群进行信息采集,得到每个容器集群的目标字符串,其中,目标字符串用于描述容器集群中的目标资源类型的资源;第二获取模块,用于获取容器集群的集群名称和目标资源类型的资源的资源名称;第一生成模块,用于依据目标字符串、集群名称以及资源名称,生成容器的资源信息数据,并依据资源信息数据,生成目标消息。
80.可选地,容器信息的处理装置还包括:第五确定模块,用于在依据资源信息数据,生成目标消息之后,在消息中间件中确定与集群名称对应的目标消息分区;第五处理模块,用于依据信息采集顺序,将目标消息推送至目标消息分区进行缓存。
81.可选地,容器信息的处理装置还包括:第六处理模块,用于在依据判断结果,在数据库中对每个容器的容器信息进行更新之后,在接收到查询指令的情况下,响应查询指令,在数据库中查询多个容器集群的容器信息,其中,查询指令为目标对象发出的针对目标应用的容器信息进行查询的指令,多个容器集群用于管理目标应用的容器信息;第二生成模块,用于依据多个容器集群的容器信息,生成目标应用的容器信息表,并向目标对象展示容器信息表。
82.实施例3
83.根据本发明实施例的另一方面,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述的容器信息的处理方法。
84.实施例4
85.根据本发明实施例的另一方面,还提供了一种电子设备,其中,图5是根据本发明实施例的一种可选的电子设备的示意图,如图5所示,电子设备包括一个或多个处理器;存
储器,用于存储一个或多个程序,当一个或多个程序被一个或多个处理器执行时,使得一个或多个处理器实现用于运行程序,其中,程序被设置为运行时执行上述的容器信息的处理方法。处理器执行程序时实现以下步骤:在监听到消息中间件中存在目标消息的情况下,通过目标平台获取目标消息,其中,目标消息包括多个容器集群中的多个容器的资源信息数据,资源信息数据用于描述容器的属性信息;对目标消息进行解析处理,得到多个容器的属性信息,并依据属性信息,判断每个容器的容器状态,得到判断结果,其中,判断结果用于表征容器是否处于运行状态;依据判断结果,在数据库中对每个容器的容器信息进行更新。
86.可选地,处理器执行程序时还实现以下步骤:属性信息至少包括容器所属的pod实例的pod名称、pod所属的宿主机的宿主机ip、容器的容器名称以及容器的容器id,其中,依据属性信息,判断每个容器的容器状态,得到判断结果,包括:依据pod名称、宿主机ip以及容器名称,在数据库中进行容器信息查询,得到查询结果;若查询结果为查询失败,则确定pod名称、宿主机ip以及容器名称对应的容器为新增容器,并将新增容器处于运行状态作为判断结果;若查询结果为查询成功,则依据容器id,判断每个容器的容器状态,得到判断结果。
87.可选地,处理器执行程序时还实现以下步骤:依据容器id,判断每个容器的容器状态,得到判断结果,包括:分别将每个容器id与数据库中存储的容器id进行比对;若容器id与数据库中存储的容器id相同,则将容器id对应的容器处于运行状态作为判断结果;若容器id与数据库中存储的容器id不相同,则将容器id对应的容器处于异常状态作为判断结果。
88.可选地,处理器执行程序时还实现以下步骤:依据判断结果,在数据库中对每个容器的容器信息进行更新,包括:若判断结果为新增容器处于运行状态,则在数据库中添加新增容器的容器信息;若判断结果为容器处于运行状态,则不做处理;若判断结果为容器处于异常状态,则在数据库中将容器的容器信息中的容器状态从运行状态更改为异常状态。
89.可选地,处理器执行程序时还实现以下步骤:在在监听到消息中间件中存在目标消息的情况下,通过目标平台获取目标消息之前,通过每个容器集群中部署的第一节点对每个容器集群进行信息采集,得到每个容器集群的目标字符串,其中,目标字符串用于描述容器集群中的目标资源类型的资源;获取容器集群的集群名称和目标资源类型的资源的资源名称;依据目标字符串、集群名称以及资源名称,生成容器的资源信息数据,并依据资源信息数据,生成目标消息。
90.可选地,处理器执行程序时还实现以下步骤:在依据资源信息数据,生成目标消息之后,在消息中间件中确定与集群名称对应的目标消息分区;依据信息采集顺序,将目标消息推送至目标消息分区进行缓存。
91.可选地,处理器执行程序时还实现以下步骤:在依据判断结果,在数据库中对每个容器的容器信息进行更新之后,在接收到查询指令的情况下,响应查询指令,在数据库中查询多个容器集群的容器信息,其中,查询指令为目标对象发出的针对目标应用的容器信息进行查询的指令,多个容器集群用于管理目标应用的容器信息;依据多个容器集群的容器信息,生成目标应用的容器信息表,并向目标对象展示容器信息表。
92.本文中的设备可以是服务器、pc、pad、手机等。
93.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
94.在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
95.在本技术所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
96.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
97.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
98.所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
99.以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
技术特征:
1.一种容器信息的处理方法,其特征在于,包括:在监听到消息中间件中存在目标消息的情况下,通过目标平台获取所述目标消息,其中,所述目标消息包括多个容器集群中的多个容器的资源信息数据,所述资源信息数据用于描述所述容器的属性信息;对所述目标消息进行解析处理,得到所述多个容器的属性信息,并依据所述属性信息,判断每个所述容器的容器状态,得到判断结果,其中,所述判断结果用于表征所述容器是否处于运行状态;依据所述判断结果,在数据库中对每个所述容器的容器信息进行更新。2.根据权利要求1所述的方法,其特征在于,所述属性信息至少包括所述容器所属的pod实例的pod名称、所述pod所属的宿主机的宿主机ip、所述容器的容器名称以及所述容器的容器id,其中,依据所述属性信息,判断每个所述容器的容器状态,得到判断结果,包括:依据所述pod名称、所述宿主机ip以及所述容器名称,在所述数据库中进行容器信息查询,得到查询结果;若所述查询结果为查询失败,则确定所述pod名称、所述宿主机ip以及所述容器名称对应的容器为新增容器,并将所述新增容器处于所述运行状态作为所述判断结果;若所述查询结果为查询成功,则依据所述容器id,判断每个所述容器的容器状态,得到所述判断结果。3.根据权利要求2所述的方法,其特征在于,依据所述容器id,判断每个所述容器的容器状态,得到所述判断结果,包括:分别将每个所述容器id与所述数据库中存储的容器id进行比对;若所述容器id与所述数据库中存储的容器id相同,则将所述容器id对应的容器处于所述运行状态作为所述判断结果;若所述容器id与所述数据库中存储的容器id不相同,则将所述容器id对应的容器处于异常状态作为所述判断结果。4.根据权利要求3所述的方法,其特征在于,依据所述判断结果,在数据库中对每个所述容器的容器信息进行更新,包括:若所述判断结果为所述新增容器处于所述运行状态,则在所述数据库中添加所述新增容器的容器信息;若所述判断结果为所述容器处于所述运行状态,则不做处理;若所述判断结果为所述容器处于所述异常状态,则在所述数据库中将所述容器的容器信息中的容器状态从所述运行状态更改为所述异常状态。5.根据权利要求1所述的方法,其特征在于,在在监听到消息中间件中存在目标消息的情况下,通过目标平台获取所述目标消息之前,所述方法还包括:通过每个所述容器集群中部署的第一节点对每个所述容器集群进行信息采集,得到每个所述容器集群的目标字符串,其中,所述目标字符串用于描述所述容器集群中的目标资源类型的资源;获取所述容器集群的集群名称和所述目标资源类型的资源的资源名称;依据所述目标字符串、所述集群名称以及所述资源名称,生成所述容器的资源信息数据,并依据所述资源信息数据,生成所述目标消息。
6.根据权利要求5所述的方法,其特征在于,在依据所述资源信息数据,生成所述目标消息之后,所述方法还包括:在所述消息中间件中确定与所述集群名称对应的目标消息分区;依据信息采集顺序,将所述目标消息推送至所述目标消息分区进行缓存。7.根据权利要求1所述的方法,其特征在于,在依据所述判断结果,在数据库中对每个所述容器的容器信息进行更新之后,所述方法还包括:在接收到查询指令的情况下,响应所述查询指令,在所述数据库中查询所述多个容器集群的容器信息,其中,所述查询指令为目标对象发出的针对目标应用的容器信息进行查询的指令,所述多个容器集群用于管理所述目标应用的容器信息;依据所述多个容器集群的容器信息,生成所述目标应用的容器信息表,并向所述目标对象展示所述容器信息表。8.一种容器信息的处理装置,其特征在于,包括:第一获取模块,用于在监听到消息中间件中存在目标消息的情况下,通过目标平台获取所述目标消息,其中,所述目标消息包括多个容器集群中的多个容器的资源信息数据,所述资源信息数据用于描述所述容器的属性信息;第一处理模块,用于对所述目标消息进行解析处理,得到所述多个容器的属性信息,并依据所述属性信息,判断每个所述容器的容器状态,得到判断结果,其中,所述判断结果用于表征所述容器是否处于运行状态;第二处理模块,用于依据所述判断结果,在数据库中对每个所述容器的容器信息进行更新。9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至7任一项中所述的容器信息的处理方法。10.一种电子设备,其特征在于,所述电子设备包括一个或多个处理器;存储器,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行时,使得所述一个或多个处理器实现用于运行程序,其中,所述程序被设置为运行时执行所述权利要求1至7任一项中所述的容器信息的处理方法。
技术总结
本发明公开了一种容器信息的处理方法、装置、存储介质及电子设备,涉及云计算领域。该方法包括:在监听到消息中间件中存在目标消息的情况下,通过目标平台获取目标消息,其中,目标消息包括多个容器集群中的多个容器的资源信息数据;对目标消息进行解析处理,得到多个容器的属性信息,并依据属性信息,判断每个容器的容器状态,得到判断结果,其中,判断结果用于表征容器是否处于运行状态;依据判断结果,在数据库中对每个容器的容器信息进行更新。本发明解决了现有技术中在通过多集群管理目标应用的容器信息时,采用依据字符串中的目标字段判断容器状态的方式,存在容器状态判断准确率比较低的技术问题。比较低的技术问题。比较低的技术问题。
技术研发人员:汪威 王建奇 沈一帆 胡浩
受保护的技术使用者:中国工商银行股份有限公司
技术研发日:2023.06.16
技术公布日:2023/8/21
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/
上一篇:前端资产可视化处理方法、装置及存储介质与流程 下一篇:一种自封闭按压盖的制作方法