一种对kubernetes集群的应用程序进行异常扫描的方法及系统与流程

文档序号:30270022发布日期:2022-06-02 07:50阅读:94来源:国知局
一种对kubernetes集群的应用程序进行异常扫描的方法及系统与流程

1.本发明涉及kubernetes集群领域,具体涉及一种对kubernetes集群的应用程序进行异常扫描的方法及系统。


背景技术:

2.在业务迁移容器的过程中,需要使用kubernetes编排工具部署容器服务,现实中线上有很多的kubernetes集群,部署了很多的服务,部署了很多的用于支持服务在kubernetes上运行的kubenretes组件,这些服务和kubernetes组件也是应用程序,这些程序不可避免的可能会遇到异常退出的情况,此时就需要一种系统和方法,来检测到这些异常,并给管理人员或者应用的开发者修复建议。现有技术中,只有一些单独针对业务应用程序或者单独针对kuberentes软件本身进行检查的,无法支撑对这些服务和kubernetes组件进行检查的。


技术实现要素:

3.本发明实施例提供一种对kubernetes集群的应用程序进行异常扫描的方法及系统,快速、简单的对kubernetes集群中的所有应用程序进行扫描,检查应用程序可能存在的问题。
4.为达上述目的,一方面,本发明实施例提供一种对kubernetes集群的应用程序进行异常扫描的方法,包括:
5.扫描任务管理器获取对kubernetes集群的应用程序进行异常扫描的扫描任务,检查扫描任务内设置的扫描程序;所述扫描任务的任务类型为内置任务或者自定义任务;其中,所述kubernetes集群的应用程序至少包括如下之一:构建kubernetes集群自身的软件、部署在kubernetes集群的服务、支持服务运行的kubernetes组件、kubernetes集群上的业务应用程序;
6.当扫描程序通过检查时,通过扫描任务内指定的任务执行器运行扫描程序扫描指定的kubernetes集群的应用程序;所述通过扫描任务内指定的任务执行器运行扫描程序扫描指定的kubernetes集群的应用程序,具体包括:
7.如果扫描任务内的任务类型是内置任务,则运行内置任务对应的内置任务扫描程序,通过内置任务扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果;
8.如果扫描任务内的任务类型是自定义任务,则分析自定义任务扫描程序所使用的编程语言;如果自定义任务扫描程序所使用的编程语言是预设语言,则调用响应预设语言的运行环境运行自定义任务扫描程序;通过自定义任务扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果;
9.如果自定义任务扫描程序所使用的编程语言是非预设语言,则将自定义任务扫描
程序的代码编译成可识别语言的代码,调用响应可识别语言的运行环境运行编译成可识别语言的自定义任务扫描程序;通过编译成可识别语言的扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果;
10.扫描结果分析器根据扫描结果确定是否生成修改建议。
11.另一方面,本发明实施例提供一种对kubernetes集群的应用程序进行异常扫描的系统,包括:
12.扫描任务管理器,用于获取对kubernetes集群的应用程序进行异常扫描的扫描任务,检查扫描任务内设置的扫描程序;所述扫描任务的任务类型为内置任务或者自定义任务;其中,所述kubernetes集群的应用程序至少包括如下之一:构建kubernetes集群自身的软件、部署在kubernetes集群的服务、支持服务运行的kubernetes组件、kubernetes集群上的业务应用程序;
13.任务执行器,所述任务执行器在扫描任务内已指定,用于当扫描程序通过检查时,运行扫描程序扫描指定的kubernetes集群的应用程序;所述任务执行器具体用于:
14.如果扫描任务内的任务类型是内置任务,则运行内置任务对应的内置任务扫描程序,通过内置任务扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果;
15.如果扫描任务内的任务类型是自定义任务,则分析自定义任务扫描程序所使用的编程语言;如果自定义任务扫描程序所使用的编程语言是预设语言,则调用响应预设语言的运行环境运行自定义任务扫描程序;通过自定义任务扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果;
16.如果自定义任务扫描程序所使用的编程语言是非预设语言,则将自定义任务扫描程序的代码编译成可识别语言的代码,调用响应可识别语言的运行环境运行编译成可识别语言的自定义任务扫描程序;通过编译成可识别语言的扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果;
17.扫描结果分析器,用于根据扫描结果确定是否生成修改建议。
18.上述技术方案具有如下有益效果:快速、简单的对kubernetes集群中的所有应用程序进行扫描,检查应用程序可能存在的问题。
附图说明
19.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1是本发明实施例的一种对kubernetes集群的应用程序进行异常扫描的方法的流程图;
21.图2是本发明实施例的一种对kubernetes集群的应用程序进行异常扫描的系统的结构图;
22.图3是实施例的另一对kubernetes集群的应用程序进行异常扫描的方法的流程图。
具体实施方式
23.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
24.如图1所示,结合本发明的实施例,提供一种对kubernetes集群的应用程序进行异常扫描的方法,包括:
25.s101:扫描任务管理器获取对kubernetes集群的应用程序进行异常扫描的扫描任务,检查扫描任务内设置的扫描程序;所述扫描任务的任务类型为内置任务或者自定义任务;其中,所述kubernetes集群的应用程序至少包括如下之一:构建kubernetes集群自身的软件、部署在kubernetes集群的服务、支持服务运行的kubernetes组件、kubernetes集群上的业务应用程序;
26.s102:当扫描程序通过检查时,通过扫描任务内指定的任务执行器运行扫描程序扫描指定的kubernetes集群的应用程序;步骤102具体包括:
27.s1021:如果扫描任务内的任务类型是内置任务,则运行内置任务对应的内置任务扫描程序,通过内置任务扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果;
28.s1022:如果扫描任务内的任务类型是自定义任务,则分析自定义任务扫描程序所使用的编程语言;如果自定义任务扫描程序所使用的编程语言是预设语言,则调用响应预设语言的运行环境运行自定义任务扫描程序;通过自定义任务扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果;
29.s1023:如果自定义任务扫描程序所使用的编程语言是非预设语言,则将自定义任务扫描程序的代码编译成可识别语言的代码,调用响应可识别语言的运行环境运行编译成可识别语言的自定义任务扫描程序;通过编译成可识别语言的扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果;
30.s103:扫描结果分析器根据扫描结果确定是否生成修改建议。
31.优选地,在步骤101中,所述扫描任务管理器获取对kubernetes集群的应用程序进行异常扫描的扫描任务,具体包括:
32.s1011:扫描任务管理器自用户交互界面获取所定义的对kubernetes集群的应用程序进行异常扫描的扫描任务,所述用户交互界面用于生成对kubernetes集群的应用程序进行异常扫描的扫描任务、修改对kubernetes集群的应用程序进行异常扫描的扫描任务、删除对kubernetes集群的应用程序进行异常扫描的扫描任务、和/或查询对kubernetes集群的应用程序进行异常扫描的扫描任务;
33.在步骤101中,所述扫描任务管理器检查扫描任务内设置的扫描程序,具体包括:
34.s1012:如果扫描任务内的任务类型是内置任务,扫描任务管理器检查内置任务对应的内置任务扫描程序的数据是否符合格式;如果扫描任务内的任务类型是自定义任务,扫描任务管理器检查自定义任务扫描程序是否符合预设格式、以及是否符合编程语言的语
法规范;
35.s1013:如果扫描程序通过检查,则将扫描任务进行保存;如果扫描程序检查失败,则返回检查失败的原因。
36.优选地,还包括:
37.s104:各任务执行器在生成时向设于扫描任务存储器内的存储组件注册,注册时声明其自身标签,所述任务执行器标签包括:任务执行器的标识、任务执行器所处区域、任务执行器所处机房、任务执行器自身硬件资源数量情况;其中,所述扫描任务存储器内包括两个存储组件;
38.在步骤1013中,所述如果扫描程序通过检查,则将扫描任务进行保存,具体包括:
39.扫描任务存储器获取通过检查的扫描任务,并将通过检查的扫描任务均添加到扫描任务存储器内的两个存储组件;针对存储组件,当存储组件升级时轮流对两个存储组件升级,升级一个存储组件时,另一个存储组件运行并具有存储功能;以及,当存储组件所联系的存储软件实体变更时,两个存储组件轮流适配变更后的存储软件实体的接口或者中间件;其中,存储组件通过接口或者中间件联系存储软件实体。
40.优选地,还包括:
41.s105:任务获取器定时自运行的存储组件获取扫描任务,获取扫描任务内的任务执行器所处区域,为扫描任务分配与区域相符的任务执行器,并将所分配的任务执行器标签添加到扫描任务内形成更新的扫描任务,将更新的扫描任务发送到任务分发器;
42.s106:任务分发器自更新的扫描任务分析得到任务执行器标识,任务分发器根据对各任务执行器监控的情况判断扫描任务内的任务执行器是否具备正常运行能力;
43.s107:当扫描任务内的任务执行器具备正常运行能力时,将更新的扫描任务发送到所分配的任务执行器。
44.优选地,当存在至少两个完全相同的集群时,在扫描任务中设置对完全相同的每个集群进行扫描、且为每个集群单独设置一个任务执行器;
45.在所述扫描指定的kubernetes集群的应用程序之后得到扫描结果之后,还包括:
46.s108:将扫描结果发送到数据收集器;
47.s109:数据收集器将扫描结果格式化成json格式;将json格式的扫描结果发送到扫描结果分析器;其中,将同一扫描任务的多个任务执行器返回的扫描结果汇总,将汇总的扫描结果格式化成json格式;
48.步骤103中,所述扫描结果分析器根据扫描结果确定是否生成修改建议,具体包括:
49.s1031:当存在至少两个完全相同的kubernetes集群时,扫描结果分析器分析json格式内的各扫描结果,如果该json格式内的所有扫描结果一致,则将扫描结果发送给建议生成器,由建议生成器生成修复建议并进行保存用于展示;如果该json格式内的扫描结果不一致,则将扫描结果保存用于展示;
50.s1032:当不存在至少两个完全相同的kubernetes集群时,扫描结果分析器将扫描结果发送给建议生成器,由建议生成器生成修复建议并进行保存用于展示。
51.如图2所示,结合本发明的实施例,提供一种对kubernetes集群的应用程序进行异常扫描的系统,包括:
52.扫描任务管理器21,用于获取对kubernetes集群的应用程序进行异常扫描的扫描任务,检查扫描任务内设置的扫描程序;所述扫描任务的任务类型为内置任务或者自定义任务;其中,所述kubernetes集群的应用程序至少包括如下之一:构建kubernetes集群自身的软件、部署在kubernetes集群的服务、支持服务运行的kubernetes组件、kubernetes集群上的业务应用程序;
53.任务执行器22,所述任务执行器在扫描任务内已指定,用于当扫描程序通过检查时,运行扫描程序扫描指定的kubernetes集群的应用程序;所述任务执行器22具体用于:
54.如果扫描任务内的任务类型是内置任务,则运行内置任务对应的内置任务扫描程序,通过内置任务扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果;
55.如果扫描任务内的任务类型是自定义任务,则分析自定义任务扫描程序所使用的编程语言;如果自定义任务扫描程序所使用的编程语言是预设语言,则调用响应预设语言的运行环境运行自定义任务扫描程序;通过自定义任务扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果;
56.如果自定义任务扫描程序所使用的编程语言是非预设语言,则将自定义任务扫描程序的代码编译成可识别语言的代码,调用响应可识别语言的运行环境运行编译成可识别语言的自定义任务扫描程序;通过编译成可识别语言的扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果;
57.扫描结果分析器23,用于根据扫描结果确定是否生成修改建议。
58.优选地,所述系统还包括用户交互界面24,其中:
59.所述扫描任务管理器21,具体用于:
60.自用户交互界面获取所定义的对kubernetes集群的应用程序进行异常扫描的扫描任务;
61.所述用户交互界面24,用于生成对kubernetes集群的应用程序进行异常扫描的扫描任务、修改对kubernetes集群的应用程序进行异常扫描的扫描任务、删除对kubernetes集群的应用程序进行异常扫描的扫描任务、和/或查询对kubernetes集群的应用程序进行异常扫描的扫描任务;
62.所述扫描任务管理器21,具体用于:
63.如果扫描任务内的任务类型是内置任务,检查内置任务对应的内置任务扫描程序的数据是否符合格式;如果扫描任务内的任务类型是自定义任务,检查自定义任务扫描程序是否符合预设格式、以及是否符合编程语言的语法规范;
64.如果扫描程序通过检查,则将扫描任务进行保存;如果扫描程序检查失败,则返回检查失败的原因。
65.优选地,所述系统还包括扫描任务存储器25,所述扫描任务存储器内包括两个存储组件,所述任务执行器包括至少两个,其中:
66.各任务执行器22,用于在生成时向设于扫描任务存储器内的存储组件注册,注册时声明其自身标签,所述任务执行器标签包括:任务执行器的标识、任务执行器所处区域、任务执行器所处机房、任务执行器自身硬件资源数量情况;
67.所述扫描任务存储器25,用于获取通过检查的扫描任务,并将通过检查的扫描任
务均添加到扫描任务存储器内的两个存储组件;针对存储组件,当存储组件升级时轮流对两个存储组件升级,升级一个存储组件时,另一个存储组件运行并具有存储功能;以及,当存储组件所联系的存储软件实体变更时,两个存储组件轮流适配变更后的存储软件实体的接口或者中间件;其中,存储组件通过接口或者中间件联系存储软件实体。
68.优选地,还包括任务获取器26和任务分发器30,其中:
69.所述任务获取器26,用于定时自运行的存储组件获取扫描任务,获取扫描任务内的任务执行器所处区域,为扫描任务分配与区域相符的任务执行器,并将所分配的任务执行器标签添加到扫描任务内形成更新的扫描任务,将更新的扫描任务发送到任务分发器;
70.所述任务分发器30,用于接收更新的扫描任务,自更新的扫描任务分析得到任务执行器标识,根据对各任务执行器监控的情况判断扫描任务内的任务执行器是否具备正常运行能力;
71.当扫描任务内的任务执行器具备正常运行能力时,将更新的扫描任务发送到任务执行器。
72.优选地,当存在至少两个完全相同的kubernetes集群时,在扫描任务中设置对完全相同的每个集群进行扫描、且为每个集群单独设置一个任务执行器;
73.所述对kubernetes集群的应用程序进行异常扫描的系统,还包括数据收集器27、建议生成器29,其中:
74.所述数据收集器27,用于在扫描指定的kubernetes集群的应用程序之后得到扫描结果,接收扫描结果;
75.将扫描结果格式化成json格式;将json格式的扫描结果发送到扫描结果分析器;其中,将同一扫描任务的多个任务执行器返回的扫描结果汇总,将汇总的扫描结果格式化成json格式;
76.所述扫描结果分析器23,具体用于当存在至少两个完全相同的kubernetes集群时,分析json格式内的各扫描结果,如果该json格式内的所有扫描结果一致,则将扫描结果发送给建议生成器;如果该json格式内的扫描结果不一致,则将扫描结果保存用于展示;
77.当不存在至少两个完全相同的kubernetes集群时,将扫描结果发送给建议生成器;
78.所述建议生成器29,用于根据所接收的扫描结果生成修复建议并进行保存用于展示。
79.本发明实施例所取得的有益效果如下:
80.1、提供用户扫描任务管理界面,可视化的管理用户扫描任务。
81.2、可以使用本系统,快速、简单的对kubernetes集群中的所有应用程序进行扫描,检查应用程序可能存在的问题。现有技术中只有单独针对业务应用程序的扫描、只有单独针对kuberentes软件本身的扫描、不支持kubernetes集群部署的服务、支持服务在kubernetes上运行的kubenretes组件(这些服务和kubernetes组件也是应用程序)的扫描;同时也不支持用户自定义扫描程序;本发明能够扫描包括集群自身的应用程序的所有应用程序,从而可以发现包括集群自身应用程序的异常。
82.3、根据扫描结果,对于可能存在问题的应用程序提供修复建议,通过修复建议优化应用程序。现有技术中没有对扫描后的数据没有分类汇总,也没有给出修复建议。
83.4、支持扫描任务运行用户自定义的程序,具有极大的可扩展性。
84.下面结合具体的应用实例对本发明实施例上述技术方案进行详细说明,实施过程中没有介绍到的技术细节,可以参考前文的相关描述。
85.本发明涉及的技术缩略语释义如下:
86.kubernetes:一种容器编排管理工具
87.kubernetes集群:包含了kubernetes这种软件的所有的组件和运行这些组件的服务器。
88.kubernetes之上的应用:使用kubernetes部署的服务,如nginx服务,mysql服务等等。
89.kubernetes资源:比如deployment,server,ingress等等,这些是用来在kubernetes之上部署业务用的
90.kubernetes生态软件:比如prometheus监控系统,alert manager报警系统,helm管理工具等等
91.容器:容器映像是一个软件的轻量级独立可执行软件包,包含运行它所需的一切:代码,运行时,系统工具,系统库,设置等等,容器是容器影响中程序的运行状态。
92.本发明为一种kubernetes应用程序的异常扫描方法和系统,技术领域涉及容器、云计算kubernetes编排等。本系统包含多个组件,每个组件负责一部分功能。
93.本系统内置10种用户可以直接使用的扫描程序,分别为:
94.1、扫描kubernetes集群中的deployment,daemonset,statefulset中的registry是否能够连接。
95.2、扫描deployment,daemonset,statefulset中是否配置了readness probe和livesness probe。
96.3、检查pod是否有request和limit配置。
97.4、检查service是否有pending状态,检查pod是否有pending状态。
98.5、检查ingress是否配置和合理的body size,headersize等,检查是否配置了合理的域名。
99.6、检查configmap中是否配置了明文的user和password。
100.7、检查node节点是否有某一个pod消耗过多的cpu文件描述符、内存、带宽。
101.8、检查hpa是否触发了scalinglimited。
102.9、检查pod中配置的镜像是否超过大,检查镜像依赖的基础系统镜像层是否存在于node节点。
103.10、自定义扫描,执行自定义程序(golang,shell,python)(shell python直接执行,golang程序先编译,然后运行)。
104.如图3所示:
105.1、任务执行器(多个),这个组件的作用是,任务执行器在生成时向存储组件注册,并声明自己的标签,所述任务执行器标签包括:任务执行器的标识、任务执行器所处区域、任务执行器所处机房、任务执行器自身硬件资源数量情况。比如,标签包括任务执行器处于哪一个区域(华东,华南,东北,华中等区域参数)(标注是为了记录执行器所在的位置,方便知道它是哪个执行器),标签包含任务执行器处于哪一个idc机房(电信机房1,移动机房2,
联通机房3)(能够知道任务是在哪个机房执行的。同一个类型的任务会在多个任务执行器执行),标签包括自己的硬件资源数量情况(多少cpu,多少内存,多少磁盘空间等)。注册过程如图3步骤0所展示的。
106.本组件包含shell python语言的运行环境,可直接运行这两种语言的程序,本组件包含golang语言的编译环境,可以直接对golang语言的程序代码进行编译,然后运行。
107.(1)一个扫描任务类似一下这样:
108.任务名称:测试任务1
109.选择任务执行器:区域="华北,华南”110.选择内置任务:内置任务id=“1,2,5”111.自定义任务语言:“python”112.自定义任务代码:”一些代码内容”113.任务执行器列表:“留空”//给任务获取器分配任务执行器
114.(2)任务执行器从任务分发器接受到任务,所述扫描任务的任务类型为内置任务或者自定义任务。如果扫描任务内的任务类型是内置任务,则运行内置任务对应的内置任务扫描程序,通过内置任务扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果。即:如果是内置任务,则直接执行任务对应的内置检查程序即可。其中,所述kubernetes集群的应用程序至少包括如下之一:构建kubernetes集群自身的软件、部署在kubernetes集群的服务、支持服务运行的kubernetes组件、kubernetes集群上的业务应用程序。
115.如果是用户自定义任务,则分析是什么语言的任务。第一:如果扫描任务内的任务类型是自定义任务,则分析自定义任务扫描程序所使用的编程语言;如果自定义任务扫描程序所使用的编程语言是预设语言,则调用响应预设语言的运行环境运行自定义任务扫描程序;通过自定义任务扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果。比如,如果是shell,python的语言的,则调用响应语言的运行环境,运行检查程序。
116.如果自定义任务扫描程序所使用的编程语言是非预设语言,则将自定义任务扫描程序的代码编译成可识别语言的代码,调用响应可识别语言的运行环境运行编译成可识别语言的自定义任务扫描程序;通过编译成可识别语言的扫描程序扫描指定的kubernetes集群的应用程序,在扫描指定的kubernetes集群的应用程序之后得到扫描结果。比如,如果是golang语言的,则对用户自定任务代码进行编译,然后在运行。当存在至少两个完全相同的kubernetes集群时,在扫描任务中设置对完全相同的每个kubernetes集群进行扫描、且为每个kubernetes集群单独设置一个任务执行器。
117.(3)任务执行器执行完成任务之后,将执行结果发送到数据收集器,如图3步骤7所示。
118.2、用户交互界面,这个组件的功能是对扫描任务的增加,删除,修改,和查询,用户经过界面提交的数据会提交到扫描任务管理器,如图3步骤1所示,同时会从建议提取器获取扫描结果的处理建议,如图3步骤11所示。即:所述用户交互界面用于生成对kubernetes集群的应用程序进行异常扫描的扫描任务、修改对kubernetes集群的应用程序进行异常扫描的扫描任务、删除对kubernetes集群的应用程序进行异常扫描的扫描任务、和/或查询对
kubernetes集群的应用程序进行异常扫描的扫描任务。
119.3、扫描任务管理器,自用户交互界面获取对kubernetes集群的应用程序进行异常扫描的扫描任务,此时会对用户的扫描任务进行检查,检查包括内置任务和用户自定义的扫描程序。
120.内置任务检查用户提交的数据是否符合格式,即:如果扫描任务内的任务类型是内置任务,扫描任务管理器检查内置任务对应的内置任务扫描程序的数据是否符合格式。
121.用户自定义的任务则检查是否符合格式和是否符合编程语言的语法规范,即:如果扫描任务内的任务类型是自定义任务,扫描任务管理器检查自定义任务扫描程序是否符合预设格式、以及是否符合编程语言的语法规范。
122.如果检查通过则提交扫扫描任务存储器,如图3步骤2所示,检查失败则返回给用户失败原因,提示其修改。4、扫描任务存储器,这个组件的接受扫描任务,将扫描任务添加到存储组件,如图3步骤3所示,扫描任务存储器内包括两个存储组件,当存储组件升级时轮流对两个存储组件升级,升级一个存储组件时,另一个存储组件运行并具有存储功能;即:存储组件分为两个部分,一个在线运行,一个作为备份。扫描任务存储器同时操作这两个部分,这个组件存在的作用是为了保证以后的本系统存储组件升级之后的接口适配工作,这样用户就不需要修改扫描任务就可以使用新的存储组件。当存储组件所联系的存储软件实体变更时,两个存储组件轮流适配变更后的存储软件实体的接口或者中间件;其中,存储组件通过接口或者中间件联系存储软件实体。具体地,存储组件本身也可能需要升级版本,它自身升级的时候有一个备份的,就可以交替升级,另外存储组件通过接口或者叫中间件还联系存储软件的实体,当存储软件实体变换的时候,不需要重新编写真个存储组件,只需要适配一下新的存储软件实体接口就可以了。
123.5、任务获取器,本组件的作用是从存储组件获取任务,定时的从存储组件获取任务,根据任务的特性,获取任务的区域标签等属性,将任务分配一个任务执行器。即:为扫描任务分配与区域相符的任务执行器,并将所分配的任务执行器标签添加到扫描任务内形成更新的扫描任务。然后将扫描任务发送到任务分发器。如图3步骤4所示。
124.6、任务分发器,任务分发器从任务获取器收到扫描任务,分析任务描述中的任务执行器,将对应的任务发送到任务执行器。其中,任务分发器根据对各任务执行器监控的情况判断扫描任务内的任务执行器是否具备正常运行能力;当扫描任务内的任务执行器具备正常运行能力时,将更新的扫描任务发送到所分配的任务执行器。
125.7、数据收集器,本组件的作用是收集任务执行器(多个)的扫描任务的运行结果,并对运行结果进行格式化,同时对同一个扫描任务的多个任务执行器返回的结果进行汇总,组合成json格式,发送到扫描结果分析器。如图3步骤8所示。同一个扫描任务的多个任务执行器的原因是:集群是分开的,可以有2个以上的一模一样的集群,这样同一个任务需要在两个都运行。具体地,数据收集器将扫描结果格式化成json格式;将json格式的扫描结果发送到扫描结果分析器;其中,将同一扫描任务的多个任务执行器返回的扫描结果汇总,将汇总的扫描结果格式化成json格式。
126.8、扫描结果分析器,扫描结果分析器对一条json格式的扫描结果进行分拆,如果一条json中的所有扫描结果一致,则会被建议生成器分析,如果不一致,则无法给出建议,请用户自己判断扫描结果,如图3步骤9所示
127.9、建议生成器,这个组件接受到扫描结果分析器的扫描结果,当存在至少两个完全相同的kubernetes集群时,扫描结果分析器分析json格式内的各扫描结果,对与扫描结果不一致的扫描任务,不给出建议,直接存储到存储组件,待后续由用户自己判断。对于扫描结果一致的,则根据提前准备好的对应的内置任务的修复建议,添加到存储组件中,如图3步骤10所示。
128.当不存在至少两个完全相同的kubernetes集群时,扫描结果分析器将扫描结果发送给建议生成器,由建议生成器生成修复建议并进行保存用于展示。
129.10、建议提取器,从存储组件中提取对应扫描任务的扫描结果和建议,返回给用户交互界面,供用户判断和修复。
130.本发明实施例所取得的有益效果如下:
131.1、提供用户扫描任务管理界面,可视化的管理用户扫描任务。
132.2、可以使用本系统,快速、简单的对kubernetes集群中的所有应用程序进行扫描,检查应用程序可能存在的问题。现有技术中只有单独针对业务应用程序的扫描、只有单独针对kuberentes软件本身的扫描、不支持kubernetes集群部署的服务、支持服务在kubernetes上运行的kubenretes组件(这些服务和kubernetes组件也是应用程序)的扫描;同时也不支持用户自定义扫描程序;本发明能够扫描包括集群自身的应用程序的所有应用程序,从而可以发现包括集群自身应用程序的异常。
133.3、根据扫描结果,对于可能存在问题的应用程序提供修复建议,通过修复建议优化应用程序。现有技术中没有对扫描后的数据没有分类汇总,也没有给出修复建议。
134.4、支持扫描任务运行用户自定义的程序,具有极大的可扩展性。
135.应该明白,公开的过程中的步骤的特定顺序或层次是示例性方法的实例。基于设计偏好,应该理解,过程中的步骤的特定顺序或层次可以在不脱离本公开的保护范围的情况下得到重新安排。所附的方法权利要求以示例性的顺序给出了各种步骤的要素,并且不是要限于所述的特定顺序或层次。
136.在上述的详细描述中,各种特征一起组合在单个的实施方案中,以简化本公开。不应该将这种公开方法解释为反映了这样的意图,即,所要求保护的主题的实施方案需要比清楚地在每个权利要求中所陈述的特征更多的特征。相反,如所附的权利要求书所反映的那样,本发明处于比所公开的单个实施方案的全部特征少的状态。因此,所附的权利要求书特此清楚地被并入详细描述中,其中每项权利要求独自作为本发明单独的优选实施方案。
137.为使本领域内的任何技术人员能够实现或者使用本发明,上面对所公开实施例进行了描述。对于本领域技术人员来说;这些实施例的各种修改方式都是显而易见的,并且本文定义的一般原理也可以在不脱离本公开的精神和保护范围的基础上适用于其它实施例。因此,本公开并不限于本文给出的实施例,而是与本技术公开的原理和新颖性特征的最广范围相一致。
138.上文的描述包括一个或多个实施例的举例。当然,为了描述上述实施例而描述部件或方法的所有可能的结合是不可能的,但是本领域普通技术人员应该认识到,各个实施例可以做进一步的组合和排列。因此,本文中描述的实施例旨在涵盖落入所附权利要求书的保护范围内的所有这样的改变、修改和变型。此外,就说明书或权利要求书中使用的术语“包含”,该词的涵盖方式类似于术语“包括”,就如同“包括,”在权利要求中用作衔接词所解
释的那样。此外,使用在权利要求书的说明书中的任何一个术语“或者”是要表示“非排它性的或者”。
139.本领域技术人员还可以了解到本发明实施例列出的各种说明性逻辑块(illustrative logical block),单元,和步骤可以通过电子硬件、电脑软件,或两者的结合进行实现。为清楚展示硬件和软件的可替换性(interchangeability),上述的各种说明性部件(illustrative components),单元和步骤已经通用地描述了它们的功能。这样的功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
140.本发明实施例中所描述的各种说明性的逻辑块,或单元都可以通过通用处理器,数字信号处理器,专用集成电路(asic),现场可编程门阵列或其它可编程逻辑装置,离散门或晶体管逻辑,离散硬件部件,或上述任何组合的设计来实现或操作所描述的功能。通用处理器可以为微处理器,可选地,该通用处理器也可以为任何传统的处理器、控制器、微控制器或状态机。处理器也可以通过计算装置的组合来实现,例如数字信号处理器和微处理器,多个微处理器,一个或多个微处理器联合一个数字信号处理器核,或任何其它类似的配置来实现。
141.本发明实施例中所描述的方法或算法的步骤可以直接嵌入硬件、处理器执行的软件模块、或者这两者的结合。软件模块可以存储于ram存储器、闪存、rom存储器、eprom存储器、eeprom存储器、寄存器、硬盘、可移动磁盘、cd-rom或本领域中其它任意形式的存储媒介中。示例性地,存储媒介可以与处理器连接,以使得处理器可以从存储媒介中读取信息,并可以向存储媒介存写信息。可选地,存储媒介还可以集成到处理器中。处理器和存储媒介可以设置于asic中,asic可以设置于用户终端中。可选地,处理器和存储媒介也可以设置于用户终端中的不同的部件中。
142.在一个或多个示例性的设计中,本发明实施例所描述的上述功能可以在硬件、软件、固件或这三者的任意组合来实现。如果在软件中实现,这些功能可以存储与电脑可读的媒介上,或以一个或多个指令或代码形式传输于电脑可读的媒介上。电脑可读媒介包括电脑存储媒介和便于使得让电脑程序从一个地方转移到其它地方的通信媒介。存储媒介可以是任何通用或特殊电脑可以接入访问的可用媒体。例如,这样的电脑可读媒体可以包括但不限于ram、rom、eeprom、cd-rom或其它光盘存储、磁盘存储或其它磁性存储装置,或其它任何可以用于承载或存储以指令或数据结构和其它可被通用或特殊电脑、或通用或特殊处理器读取形式的程序代码的媒介。此外,任何连接都可以被适当地定义为电脑可读媒介,例如,如果软件是从一个网站站点、服务器或其它远程资源通过一个同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或以例如红外、无线和微波等无线方式传输的也被包含在所定义的电脑可读媒介中。所述的碟片(disk)和磁盘(disc)包括压缩磁盘、镭射盘、光盘、dvd、软盘和蓝光光盘,磁盘通常以磁性复制数据,而碟片通常以激光进行光学复制数据。上述的组合也可以包含在电脑可读媒介中。
143.以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含
在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1