应用于Kubernetes的配置管理数据采集方法、系统、设备和介质技术方案

技术编号:37132760 阅读:13 留言:0更新日期:2023-04-06 21:31
本发明专利技术涉及容器和软件开发技术领域,一种应用于Kubernetes的配置管理数据采集方法、系统、设备和介质,包括:S1、定义关于配置管理数据库的数据模型;S2、在进行Kubernetes编排文件编写时,在所述Kubernetes编排文件的Label中对需要上报的元数据添加第一表征标签;S3、通过所述Kubernetes API接口对Pod Updated事件以及Deleted事件进行捕获;S4、对所述Pod的元数据信息进行解析,并将解析后的所述Pod的元数据信息封装为配置好的所述数据模型,然后推送至所述配置管理数据库,以完成数据采集。本发明专利技术实时性高、系统资源消耗小,通过订阅Pod的Updated事件或Deleted事件,主动将Pod的元数据信息推送至配置管理数据库,避免定期通过Kubernetes API获得Pod列表造成的数据空窗期和Kubernetes集群请求高负载影响。和Kubernetes集群请求高负载影响。

【技术实现步骤摘要】
应用于Kubernetes的配置管理数据采集方法、系统、设备和介质


[0001]本专利技术涉及容器和软件开发
,具体涉及一种应用于Kubernetes的配置管理数据采集方法、系统、设备和介质。

技术介绍

[0002]kubernetes,简称K8s,是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes的目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。
[0003]现有技术的将Pod元数据采集并保存到配置管理数据库(后简称CMDB)大致可以划分2类:
[0004]1)定期通过Kubernetes API主动抓取Pod对象保存到CMDB中:
[0005]a)定期(分钟、小时、天)通过Kubernetes API读取Kubernetes集群中所有的Pod列表。
[0006]b)按照CMDB目录结构对Pod列表进行过滤。
[0007]c)解析Pod列表中的Pod对象,并将其保存至CMDB中。
[0008]2)容器在“启动后”、“销毁前”事件执行特定脚本,将配置管理数据推送至CMDB中:
[0009]a)按照CMDB目录结构定义上报数据格式,将所需数据在Kubernetes编排文件的容器环境变量中定义。
[0010]b)编写脚本,实现读取定义好的容器环境变量并推送至CMDB的功能。
[0011]c)将脚本复制进镜像。
[0012]d)在Kubernetes中设定容器“启动后”、“销毁前”事件执行脚本。
[0013]第一种方案的原理是定时主动调用Kubernetes API查询所有的Pod列表,然后根据CMDB目录对Pod进行过滤并保存至CMDB;但是,由于第一种方案是定期(分钟、小时、天)主动读取数据,因此会出现以分钟、小时或天为单位的空窗期。在空窗期中,Kubernetes集群和CMDB会出现数据不一致的现象;频繁调用Kubernetes API会造成Kubernetes集群高负载,影响性能;CMDB需要对Pod状态进行分析、过滤;无法做到按某个表征对Pod进行定向采集。
[0014]第二种方案的原理是在容器中提前准备一个脚本,设定容器“启动后”、“销毁前”事件触发后调用该脚本,脚本会将定义好的容器环境变量推送至CMDB。而由于第二种方案是容器启动后、销毁前执行特定脚本,将配置管理数据推送至CMDB中,需要提前将众多元数据信息写入Kubernetes编排文件中,使得Kubernetes编排文件复杂并和CMDB紧耦合,一旦数据模型变更,所有服务需要重新部署;容器中应用进程导致的非正常退出的情况下无法触发容器“启动后”、“销毁前”的动作事件,造成CMDB数据不一致。

技术实现思路

[0015]本专利技术提供一种应用于Kubernetes的配置管理数据采集方法、系统、设备和介质,用于解决在Kubernetes运行中的应用无法实时、低消耗的将Pod的元数据采集并保存到配置管理数据库(后简称CMDB)的问题。
[0016]本专利技术通过下述技术方案实现:
[0017]一种应用于Kubernetes的配置管理数据采集方法,包括:
[0018]S1、定义关于配置管理数据库的数据模型;
[0019]S2、在进行Kubernetes编排文件编写时,在所述Kubernetes编排文件的Label中对需要上报的元数据添加第一表征标签;
[0020]S3、通过所述Kubernetes API接口对Pod Updated事件以及Deleted事件进行捕获;
[0021]S4、对所述Pod的元数据信息进行解析,并将解析后的所述Pod的元数据信息封装为配置好的所述数据模型,然后推送至所述配置管理数据库,以完成数据采集。
[0022]作为优化,S1的具体过程为:
[0023]S1.1、根据所述配置管理数据库的目录结构定义数据模型;
[0024]S1.2、在Kubernetes编排文件中的Pod Template添加关于特殊业务的元数据的第二表征标签或注释。
[0025]作为优化,所述特殊业务数据包括应用名或应用模块。
[0026]作为优化,S3的具体步骤为:
[0027]S3.1、通过Kubernetes API接口创建一个Pod SharedInformer对象,且将所述Pod SharedInformer对象作为在本地维护一个只读的Map对象进行本地缓存,并通过Resync和AddEventHandler函数维护本地缓存;
[0028]S3.2、禁用Resync函数;
[0029]S3.3、将AddEventHandler函数通过订阅Pod事件对单个Pod对象进行本地缓存的更新,并通过AddEventHandler函数捕获具备第一表征标签Pod的Updated事件和Deleted事件;
[0030]S3.4、在捕获Pod Updated事件后,根据定义的第一表征标签进行过滤。
[0031]作为优化,S4的具体过程为:
[0032]对所述Pod的元数据信息进行解析,判断所述Pod的元数据的状态,并将状态为Running的Pod元数据封装为配置好的所述数据模型,然后通过HTTP协议推送至所述配置管理数据库,以完成数据采集。
[0033]本专利技术还公开了一种应用于Kubernetes的配置管理数据采集系统,用于实施上述的一种应用于Kubernetes的配置管理数据采集方法,包括:
[0034]配置模块,用于定义关于配置管理数据库的数据模型;
[0035]第一表征标签添加模块,用于在进行Kubernetes编排文件编写时,在所述Kubernetes编排文件的Label中对需要上报的元数据添加第一表征标签;
[0036]事件捕获模块,用于通过所述Kubernetes API接口对Pod Updated事件以及Deleted事件进行捕获;
[0037]解析发送模块,用于对所述Pod元数据信息进行解析,并将解析后的所述Pod的元
数据信息封装为配置好的所述数据模型,然后推送至所述配置管理数据库,以完成数据采集。
[0038]本专利技术还公开了一种设备,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上述的一种应用于Kubernetes的配置管理数据采集方法。
[0039]本专利技术还公开了一种存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现上述的一种应用于Kubernetes的配置管理数据采集方法。
[0040]本专利技术与现有技术相比,具有如下的优点和有益效果:
[0041]1.本专利技术实时性高、系统资源消耗小,通过订阅Pod的Updated事件或Del本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种应用于Kubernetes的配置管理数据采集方法,其特征在于,包括:S1、定义关于配置管理数据库的数据模型;S2、在进行Kubernetes编排文件编写时,在所述Kubernetes编排文件的Label中对需要上报的元数据添加第一表征标签;S3、通过所述Kubernetes API接口对Pod Updated事件以及Deleted事件进行捕获;S4、对所述Pod元数据信息进行解析,并将解析后的所述Pod元数据信息封装为配置好的所述数据模型,然后推送至所述配置管理数据库,以完成数据采集。2.根据权利要求1所述的一种应用于Kubernetes的配置管理数据采集方法,其特征在于,S1的具体过程为:S1.1、根据所述配置管理数据库的目录结构定义数据模型;S1.2、在Kubernetes编排文件中的Pod Template添加关于特殊业务的元数据的第二表征标签或注释。3.根据权利要求2所述的一种应用于Kubernetes的配置管理数据采集方法,其特征在于,所述特殊业务数据包括应用名或应用模块。4.根据权利要求1所述的一种应用于Kubernetes的配置管理数据采集方法,其特征在于,S3的具体步骤为:S3.1、通过Kubernetes API接口创建一个Pod SharedInformer对象,且将所述Pod SharedInformer对象作为在本地维护一个只读的Map对象进行本地缓存,并通过Resync和AddEventHandler函数维护本地缓存;S3.2、禁用Resync函数;S3.3、将AddEventHandler函数通过订阅Pod事件对单个Pod对象进行本地缓存的更新,并通过AddEventHandler函数捕获具备第一表征标签Pod的Updated事件和Deleted事件;S...

【专利技术属性】
技术研发人员:刘凯梁骏任良育张涛
申请(专利权)人:四川新网银行股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1