CN115686535A - 一种Kubernetes集群的巡检方法、装置及应用 - Google Patents
一种Kubernetes集群的巡检方法、装置及应用 Download PDFInfo
- Publication number
- CN115686535A CN115686535A CN202211296511.3A CN202211296511A CN115686535A CN 115686535 A CN115686535 A CN 115686535A CN 202211296511 A CN202211296511 A CN 202211296511A CN 115686535 A CN115686535 A CN 115686535A
- Authority
- CN
- China
- Prior art keywords
- inspection
- resource
- reverse
- cluster
- result
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提出了一种Kubernetes集群的巡检方法、装置及应用,包括以下步骤:在Kubernetes集群中部署巡检工具并启动,获取Kubernetes集群的配置文件,正向巡检模块获取所述Kubernetes集群内的每种资源的详细列表清单得到正向巡检参数,将正向巡检参数载入到策略引擎中定义的查询请求模板中得到正向巡检结果;反向巡检模块创建命名空间,并在命名空间中自定义资源得到反向巡检参数,将反向巡检参数载入查询请求模板后对命名空间中的资源进行资源检测,得到反向巡检结果;将正向巡检结果和反向巡检结果进行汇总返回给用户。本方案通过将正向巡检与反向巡检相结合,可以对整个集群的全部资源进行全面的健康检查,判断Kubernetes集群中存在或者可能存在的问题。
Description
技术领域
本申请涉及云计算技术领域,特别是涉及一种Kubernetes集群的巡检方法、装置及应用。
背景技术
随着云计算行业近些年的快速发展,以Kubernetes项目为基础的容器云平台逐渐成为了各大厂商和用户的主流选择。Kubernetes作为一个大型的分布式集群平台,在生产环境大规模使用的过程中,必然会出现些许异常现象,通常针对这些异常现象,需要运维人员通过监控进行问题排查和修复,而集群规模大了之后,必然会导致人工查找问题效率低下,对整个集群的可用性造成了一定的挑战。
当前的原生Kubernetes集群中,运维人员对集训巡检通常都会采用逐个查看监控,发现异常问题并依次去解决的方式来运行,然而这种方法并不能系统性的展现整个集群的健康状况,且巡检效率低下,容易发现很多监控无法察觉的问题,因此亟需一套快速、完善的巡检方法,对Kubernetes集训中的各种资源进行全方面的健康检查,以帮助用户检测到整个集群当前存在以及可能存在的问题。
发明内容
本申请实施例提供了一种Kubernetes集群的巡检方法、装置及应用,可以对整个集群的全部资源进行全面的健康检查,判断Kubernetes集群中存在或者可能存在的问题。
第一方面,本申请实施例提供了一种Kubernetes集群的巡检方法,所述方法包括:
在Kubernetes集群中部署巡检工具,所述巡检工具由正向巡检模块、策略引擎、反向巡检模块组成;
启动所述巡检工具以获取Kubernetes集群的配置文件,所述正向巡检模块根据所述配置文件获取集群的版本信息和每种资源的详细列表清单;
在所述策略引擎中针对Kubernetes集群创建健康检查规则库,根据所述健康检查规则库对每种资源的详细列表清单进行检查得到正向巡检结果;
所述反向巡检模块在所述Kubernetes集群中创建一个命名空间,并在所述命名空间中根据所述每种资源的详细列表清单创建自定义资源,根据所述自定义资源得到自定义资源列表,根据所述健康检查规则库对所述自定义资源列表进行检查得到反向巡检结果;
所述巡检工具将所述正向巡检结果和所述反向巡检结果进行汇总得到汇总结果,将所述汇总结果返回给用户。
第二方面,本申请实施例提供了一种Kubernetes集群的巡检装置,包括:
部署模块:在Kubernetes集群中部署巡检工具,所述巡检工具由正向巡检模块、策略引擎、反向巡检模块组成;
启动模块:启动所述巡检工具以获取Kubernetes集群的配置文件,所述正向巡检模块根据所述配置文件获取集群的版本信息和每种资源的详细列表清单;
正向巡检模块:在所述策略引擎中针对Kubernetes集群创建健康检查规则库,根据所述健康检查规则库对每种资源的详细列表清单进行检查得到正向巡检结果;
反向巡检模块:所述反向巡检模块在所述Kubernetes集群中创建一个命名空间,并在所述命名空间中根据所述每种资源的详细列表清单创建自定义资源,根据所述自定义资源得到自定义资源列表,根据所述健康检查规则库对所述自定义资源列表进行检查得到反向巡检结果;
汇总模块:所述巡检工具将所述正向巡检结果和所述反向巡检结果进行汇总得到汇总结果,将所述汇总结果返回给用户。
第三方面,本申请实施例提供了一种电子装置,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行一种Kubernetes集群的巡检方法。
第四方面,本申请实施例提供了一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括一种Kubernetes集群的巡检方法。
本发明的主要贡献和创新点如下:
本申请实施例发明了一种Kubernetes集群的巡检方法,包括正向巡检和反向巡检,正向巡检利用策略引擎对各种类型资源的健康程度进行判断并返回正向巡检结果,反向巡检利用Kubernetes可以自定义生成资源的机制生成一系列待执行任务,并将执行结果进行返回作为反向巡检结果,在正向巡检环节中,本方案提供了一套策略引擎健康规则库,方便用户根据定义好的规则模板简化健康检查规则编写,并按照各自集群特点编写使用于自身集群的规则,弥补了当今业界对Kubernetes集群的异常问题排查困难的缺点;在反向巡检环节中,本发明实现了Kubernetes自定义资源及其控制器,用来完成一系列Kubernetes常规资源的声明周期管理,并记录下这期间每个步骤的执行结果,反馈当前集群是否存在健康隐患,从而造成部分资源无法创建或者访问的故障;本方案可以帮助用户寻找集群中可能存在的潜在问题,并先于用户发现,且分别从正向和反向两个角度对Kubernetes集群的资源做了健康状况的评估,给予用户一个完备的Kubernetes集群健康状况报告,不仅仅能够看到当前所有创建出来的资源的健康状况(正向巡检),也可以感知到集群中未创建的资源中可能存在的问题(反向巡检),给到用户有关整个集群一个充分全面的反馈。
本申请的一个或多个实施例的细节在以下附图和描述中提出,以使本申请的其他特征、目的和优点更加简明易懂。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的一种Kubernetes集群的巡检方法的流程图;
图2是根据本申请实施例的一种Kubernetes集群的巡检方法在实际应用中的效果示意图;
图3是根据本申请实施例的一种Kubernetes集群的巡检装置的结构框图;
图4是根据本申请实施例的电子装置的硬件结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书一个或多个实施例相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本说明书一个或多个实施例的一些方面相一致的装置和方法的例子。
需要说明的是:在其他实施例中并不一定按照本说明书示出和描述的顺序来执行相应方法的步骤。在一些其他实施例中,其方法所包括的步骤可以比本说明书所描述的更多或更少。此外,本说明书中所描述的单个步骤,在其他实施例中可能被分解为多个步骤进行描述;而本说明书中所描述的多个步骤,在其他实施例中也可能被合并为单个步骤进行描述。
为了方便理解本方案,在此对本方案中出现的名字加以解释说明:
Docker:Docker是一个开源软件,用于开发、交付和运行应用;
容器:一个通过Docker镜像创建的运行实例,一个节点可运行多个容器;
Kubernetes:Kubernetes是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化;
ClientSet:是Kubernetes中所有Group和Version组合对象的集合,作为客户端访问Kubernetes中所有资源的入口;
DynamicClient:作为客户端为Kubernetes中各种类型的资源都提供统一的操作API。
实施例一
本申请实施例提供了一种Kubernetes集训的巡检方法,可以对整个集群的全部资源进行全面的健康检查,判断Kubernetes集群中存在或者可能存在的问题,具体地,参考图1,所述方法包括:
在Kubernetes集群中部署巡检工具,所述巡检工具由正向巡检模块、策略引擎、反向巡检模块组成;
启动所述巡检工具以获取Kubernetes集群的配置文件,所述正向巡检模块根据所述配置文件获取集群的版本信息和集群中每种资源的详细列表清单;
在所述策略引擎中针对Kubernetes集群创建健康检查规则库,根据所述健康检查规则库对每种资源的详细列表清单进行检查得到正向巡检结果;
所述反向巡检模块在所述Kubernetes集群中创建一个命名空间,并在所述命名空间中根据所述每种资源的详细列表清单创建自定义资源,根据所述自定义资源得到自定义资源列表,根据所述健康检查规则库对所述自定义资源列表进行检查得到反向巡检结果;
所述巡检工具将所述正向巡检结果和所述反向巡检结果进行汇总得到汇总结果,将所述汇总结果返回给用户。
在一些实施例中,所述正向巡检模块对所述详细列表清单进行遍历得到遍历结果,将所述遍历结果进行封装得到每种资源的正向巡检参数,所述策略引擎根据所述健康检查规则库对每种资源构造查询请求模板,将所述正向巡检参数载入对应的所述查询请求模板进行决策得到正向巡检结果。
具体的,所述巡检工具的启动参数中指定有Kubernetes集群的配置文件路径信息,当所述巡检工具进行启动时,根据巡检工具的启动参数中指定的Kubernetes集群配置文件路径信息,对Kubernetes集群的配置文件进行获取,当所述巡检工具的启动参数中没有指定Kubernetes集群配置文件的路径时,默认读取Kubernetes集群中配置文件的默认路径。
进一步的,所述Kubernetes集群配置文件的默认路径为:$HOME/.kube/config,在本申请实施例中,所述巡检工具调用的Kubernetes集群配置文件名称为kubeconfig。
具体的,所述正向巡检模块调用所述Kubernetes集群内置的client-go客户端,并在所述client-go客户端中载入所述Kubernetes集群的配置文件,从而生成访问所述Kubernetes集群所必须的clientSet和dynamicClient。
具体的,所述正向巡检模块获取clientSet中的Kubernetes集群访问凭证,根据所述访问凭证访问所述Kubernetes集群的API服务器,当所述正向巡检模块通过所述API服务器的身份校验后,获得所述Kubernetes集群的版本信息。
具体的,在Kubernetes的不同版本中,每种资源的列表信息清单会不同。例如有些低版本的Kubernetes中,部分高版本才有的资源在这些低版本中是没有的,所以要先确定Kubernetes集群的版本信息,才能够准确确认这个版本对应的所有资源信息,从而得到详细列表清单。
进一步的,所述正向巡检模块将所述Kubernetes集群中获取的资源按照资源类型不同分为不同种类,获取每一种类资源对应的api组以及资源版本号,将每一种类资源的api组和资源版本号封装为查询请求得到每一种类资源的查询请求,将所述查询请求发送给所述Kubernetes集群的API服务器,所述API服务器根据所述查询请求对对应种类的资源进行查询,得到当前Kubernetes集群内每种资源的详细列表清单。
具体的,所述正向巡检模块按照Kubernetes集群的资源类型不同可以分为nodes(节点)、namespaces(命名空间)、deployments(部署)、statefulsets(有状态应用)、daemonsets(守护进程集)、jobs(工作)、events(事件)等种类。
具体的,在所述Kubernetes集群中生成一个任务队列,将所述Kubernetes集群的版本信息、所述每种资源的资源详情列表放入所述任务队列中,所述正向巡检模块根据所述任务队列对每一种资源进行资源数目统计整合,得到所述Kubernetes集群的所述详细列表清单。
在一些实施例中,在“对所述详细列表清单进行遍历,将遍历结果进行封装得到正向巡检参数”步骤中,所述正向巡检参数符合所述策略引擎接口标准。
具体的,所述正向巡检模块对所述详细列表清单中的每一种类资源进行遍历,可以对每一种类资源使用evalinput方法进行封装。
在一些实施例中,在“根据所述健康检查规则库对每种资源的详细列表清单进行检查”步骤中,所述健康检查规则库内置对每种资源的健康情况进行定义的健康检查规则,所述策略引擎针对所述健康检查规则库的每种资源的健康检查规则构造对应的查询请求模板,将每种资源的正向巡检参数载入对应资源的查询请求模板中得到正向查询请求,所述策略引擎根据所述正向查询请求进行决策得到正向巡检结果。
示例性的,所述策略引擎对所述健康检查规则库中的每一条规则调用NewPrepareForEval方法,得到所述查询请求模板。
在本申请实施例中,每一健康检查规则包括至少一个以规则块标记的健康检查项,获取所述健康检查规则中同所述待检资源的资源类型相匹配的检查项,对所述待检资源执行所述检查项获取检查结果。
具体的,每一规则块包含了一个健康检查项的具体内容,所述规则块以deny关键字进行开头。
具体的,基于检查项对所述待检资源的每一字段进行巡检,记录不符合所述检查项的字段作为检查结果,若所述待检资源全部满足所述检查项,则输出资源名称和检查项作为检查结果。
进一步的,所述策略引擎的决策方法为:所述策略引擎对所述正向查询请求或者反向查询请求进行解析得到待检资源,再对所述健康检查规则库进行检索得到所述健康检查规则中的检查项,根据所述检查项对所述待检资源进行检查得到正向巡检结果或反向决策结果。
具体的,所述策略引擎通过多次解码的方式对所述查询请求进行解析,得到所述查询请求的健康检查规则、待检资源种类和待检资源详情。
所述策略引擎对所述健康检查规则库中以deny关键字开头的规则块进行检索,得到所述健康检查规则库中所有的检查项,对所述检查项进行遍历,得到对每种资源类型进行健康检查的标准。
具体的,所述健康检查规则库基于所述策略引擎的特定语法进行编写,且所述健康检查规则库的接口符合所述策略引擎的查询接口,所述健康检查规则库存储在内存中,所述策略引擎对所述健康检查规则库进行遍历,根据所述健康检查规则库中的每一条健康检查规则生成查询请求模板,将所述每种资源的正向巡检参数载入到所述查询请求模板,得到每种资源的正向查询请求,所述策略引擎根据所述正向查询请求对所述Kubernetes集群中的各种资源进行决策,得到正向巡检结果。
具体的,所述策略引擎的特定语法是一种声明式的语法,编写人员可以专注于返回的查询,而不需要关注如何执行查询,所述特征语法主要分为两块内容,,第一部分是声明规则块,描述具体资源的类型是什么,以及这个资源在哪种条件下是不健康的。第二部分是一个判定函数,把实际的资源传入函数中,经过与第一部分中声明规则块的规则进行校验,可以输出判定结果。
具体的,若所述待检资源中存在不符合健康检查规则的字段,输出其字段类型、异常级别、该资源名称和具体的异常信息,如果所述待检资源均符合健康检查规则,则输出该资源名称和通过检查的信息。
具体的,所述策略引擎将查询请求中所有种类资源的检查结果进行汇总,封装为json格式的完整响应信息,并返回给所述正向巡检模块。
在一具体实施例中,所述正向巡检模块将所述json字符串解析为ValidateResult结构体,所述ValidateResult结构体包含了资源的名称、资源的命名空间、资源的类型、资源健康状况、资源的异常信息等,将所述ValidateResult结构体按照不同资源类型划分为多个列表,多个列表组成所述正向巡检结果。
进一步的,在“根据所述健康检查规则库对所述自定义资源列表进行检查得到反向巡检结果”步骤中,对所述自定义资源列表进行遍历,将遍历结果封装得到每种自定义资源的反向巡检参数,将每种自定义资源的反向巡检参数载入对应资源种类的查询请求模板中得到反向查询请求,所述策略引擎根据所述反向查询请求进行决策得到反向决策结果,根据所述反向决策结果对所述命名空间中的自定义资源进行资源检测得到反向巡检结果。
在一些实施例中,在“在所述命名空间中根据所述每种资源的详细列表清单创建自定义资源”步骤中,所述反向巡检模块在所述Kubernetes集群中注册一个自定义资源框架,根据所述自定义资源框架在所述命名空间中根据所述每种资源的详细列表清单创建自定义资源,其中所述自定义资源框架包括资源的字段定义规范,所述自定义资源的具体声明信息。
进一步的,所述反向巡检模块在所述Kubernetes集群中注册一个自定义资源框架,根据所述自定义资源框架在所述命名空间中创建自定义资源,获取所述自定义资源的资源列表,将所述自定义资源列表中每一种类的资源都封装,得到每一种类资源的反向巡检参数,将所述每种资源的反向巡检参数载入到所述查询请求模板,得到每种资源的反向查询请求,所述策略引擎根据所述反向查询请求对所述Kubernetes集群中的各种资源进行决策,得到反向决策结果。
具体的,对所述命名空间中的自定义资源进行决策的方式与正向巡检模块的方式相同,在此不再进行赘述。
进一步的,所述反向巡检模块在所述Kubernetes集群中创建自定义控制器,所述自定义控制器对所述命名空间的创建过程进行监听。
具体的,所述自定义资源框架包括了容器、服务、存储卷、定时任务等Kubernetes常见资源的字段定义规范,所述反向巡检模块调用所述client-go客户端在所述Kubernetes集群中创建新的命名空间,所述反向巡检模块在所述Kubernetes集群中创建自定义控制器,通过所述自定义控制器对所述命名空间中的创建过程进行监听,以保证所述自定义资源满足所述自定义资源框架中的字段定义规范。
进一步的,所述自定义资源中包含了一系列资源的具体声明信息,包括需要创建的容器的描述、服务的描述、任务的描述、存储卷的描述等,也包含了部分资源之间的关联关系,例如服务关联到具体容器中,存储卷挂载到具体容器中等任务的定义,所述自定义资源是根据Kubernetes集群中的资源种类进行创建的,以确保Kubernetes集群中的资源在使用过程中不出现问题。
在一些实施例中,在“根据所述反向决策结果对所述命名空间中的自定义资源进行资源检测得到反向巡检结果”步骤中,所述资源检测为判断所述自定义资源是否可以正常启用。
具体的,所述资源检测为探测服务是否可用,存储卷是否可以正常写入等等,并确认这些非容器类的Kubernetes资源是否正常,得到所述反向巡检结果。
在一些具体实施例中,可以在获取反向巡检结果之后对创建的自定义资源进行逐个删除,并记录删除状态以及无法删除的资源。
进一步的,可以在在汇总完成后,所述反向巡检模块删除所述命名空间,并对所述反向决策结果,反向巡检结果进行删除。
实施例二
针对内部测试环境的Kubernetes集群,首先部署本方案的巡检工具,然后使用该巡检工具进行集群健康状况的巡检工作。发现如图3所示的问题:在正向巡检中,caas-system命名空间中,发现两个danger级别的问题,其中apiserver这个Deployment资源出现了CPU最大使用资源没有限制的问题,console这个Deployment资源出现了内存请求资源没有限制的问题。然后在monitor-system中,snapshot这个StatefulSet资源出现了一个warning级别的问题,镜像拉去规则没有配置成每次拉去最新的模式。Prometheus-k8s这个StatefulSet资源出现了一个danger级别的问题,内存的最大使用资源没有限制,容易出现内存泄漏。
在反向巡检结果中,创建命名空间、创建容器、创建服务和创建定时任务等流程均可以正常执行成功,这几个资源的访问和删除操作也均正常执行。而创建存储卷、写入存储卷和删除存储卷这几个存储卷资源相关的操作均失败,表明当前集群的存储卷资源存在问题,需要修复。
实施例三
基于相同的构思,参考图3,本申请还提出了一种Kubernetes集群的巡检装置,包括:
部署模块:在Kubernetes集群中部署巡检工具,所述巡检工具由正向巡检模块、策略引擎、反向巡检模块组成;
启动模块:启动所述巡检工具以获取Kubernetes集群的配置文件,所述正向巡检模块根据所述配置文件获取集群的版本信息和每种资源的详细列表清单;
正向巡检模块:在所述策略引擎中针对Kubernetes集群创建健康检查规则库,根据所述健康检查规则库对每种资源的详细列表清单进行检查得到正向巡检结果;
反向巡检模块:所述反向巡检模块在所述Kubernetes集群中创建一个命名空间,并在所述命名空间中根据所述每种资源的详细列表清单创建自定义资源,根据所述自定义资源得到自定义资源列表,根据所述健康检查规则库对所述自定义资源列表进行检查得到反向巡检结果;
汇总模块:所述巡检工具将所述正向巡检结果和所述反向巡检结果进行汇总得到汇总结果,将所述汇总结果返回给用户。
实施例四
本实施例还提供了一种电子装置,参考图4,包括存储器404和处理器402,该存储器404中存储有计算机程序,该处理器402被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
具体地,上述处理器402可以包括中央处理器(CPU),或者特定集成电路(ApplicationSpecificIntegratedCircuit,简称为ASIC),或者可以被配置成实施本申请实施例的一个或多个集成电路。
其中,存储器404可以包括用于数据或指令的大容量存储器404。举例来说而非限制,存储器404可包括硬盘驱动器(HardDiskDrive,简称为HDD)、软盘驱动器、固态驱动器(SolidStateDrive,简称为SSD)、闪存、光盘、磁光盘、磁带或通用串行总线(UniversalSerialBus,简称为USB)驱动器或者两个或更多个以上这些的组合。在合适的情况下,存储器404可包括可移除或不可移除(或固定)的介质。在合适的情况下,存储器404可在数据处理装置的内部或外部。在特定实施例中,存储器404是非易失性(Non-Volatile)存储器。在特定实施例中,存储器404包括只读存储器(Read-OnlyMemory,简称为ROM)和随机存取存储器(RandomAccessMemory,简称为RAM)。在合适的情况下,该ROM可以是掩模编程的ROM、可编程ROM(ProgrammableRead-OnlyMemory,简称为PROM)、可擦除PROM(ErasableProgrammableRead-OnlyMemory,简称为EPROM)、电可擦除PROM(ElectricallyErasableProgrammableRead-OnlyMemory,简称为EEPROM)、电可改写ROM(ElectricallyAlterableRead-OnlyMemory,简称为EAROM)或闪存(FLASH)或者两个或更多个以上这些的组合。在合适的情况下,该RAM可以是静态随机存取存储器(StaticRandom-AccessMemory,简称为SRAM)或动态随机存取存储器(DynamicRandomAccessMemory,简称为DRAM),其中,DRAM可以是快速页模式动态随机存取存储器404(FastPageModeDynamicRandomAccessMemory,简称为FPMDRAM)、扩展数据输出动态随机存取存储器(ExtendedDateOutDynamicRandomAccessMemory,简称为EDODRAM)、同步动态随机存取内存(SynchronousDynamicRandom-AccessMemory,简称SDRAM)等。
存储器404可以用来存储或者缓存需要处理和/或通信使用的各种数据文件,以及处理器402所执行的可能的计算机程序指令。
处理器402通过读取并执行存储器404中存储的计算机程序指令,以实现上述实施例中的任意一种Kubernetes集群的巡检方法。
可选地,上述电子装置还可以包括传输设备406以及输入输出设备408,其中,该传输设备406和上述处理器402连接,该输入输出设备408和上述处理器402连接。
传输设备406可以用来经由一个网络接收或者发送数据。上述的网络具体实例可包括电子装置的通信供应商提供的有线或无线网络。在一个实例中,传输设备包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备406可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
输入输出设备408用于输入或输出信息。在本实施例中,输入的信息可以是健康检查规则库的检查规则等,输出的信息可以是正向巡检结果、反向巡检结果等。
可选地,在本实施例中,上述处理器402可以被设置为通过计算机程序执行以下步骤:
S101、在Kubernetes集群中部署巡检工具,所述巡检工具由正向巡检模块、策略引擎、反向巡检模块组成;
S102、启动所述巡检工具以获取Kubernetes集群的配置文件,所述正向巡检模块根据所述配置文件获取集群的版本信息和每种资源的详细列表清单;
S103、在所述策略引擎中针对Kubernetes集群创建健康检查规则库,根据所述健康检查规则库对每种资源的详细列表清单进行检查得到正向巡检结果;
S104、所述反向巡检模块在所述Kubernetes集群中创建一个命名空间,并在所述命名空间中根据所述每种资源的详细列表清单创建自定义资源,根据所述自定义资源得到自定义资源列表,根据所述健康检查规则库对所述自定义资源列表进行检查得到反向巡检结果;
S105、所述巡检工具将所述正向巡检结果和所述反向巡检结果进行汇总得到汇总结果,将所述汇总结果返回给用户。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
通常,各种实施例可以以硬件或专用电路、软件、逻辑或其任何组合来实现。本发明的一些方面可以以硬件来实现,而其他方面可以以可以由控制器、微处理器或其他计算设备执行的固件或软件来实现,但是本发明不限于此。尽管本发明的各个方面可以被示出和描述为框图、流程图或使用一些其他图形表示,但是应当理解,作为非限制性示例,本文中描述的这些框、装置、系统、技术或方法可以以硬件、软件、固件、专用电路或逻辑、通用硬件或控制器或其他计算设备或其某种组合来实现。
本发明的实施例可以由计算机软件来实现,该计算机软件由移动设备的数据处理器诸如在处理器实体中可执行,或者由硬件来实现,或者由软件和硬件的组合来实现。包括软件例程、小程序和/或宏的计算机软件或程序(也称为程序产品)可以存储在任何装置可读数据存储介质中,并且它们包括用于执行特定任务的程序指令。计算机程序产品可以包括当程序运行时被配置为执行实施例的一个或多个计算机可执行组件。一个或多个计算机可执行组件可以是至少一个软件代码或其一部分。另外,在这一点上,应当注意,如图4中的逻辑流程的任何框可以表示程序步骤、或者互连的逻辑电路、框和功能、或者程序步骤和逻辑电路、框和功能的组合。软件可以存储在诸如存储器芯片或在处理器内实现的存储块等物理介质、诸如硬盘或软盘等磁性介质、以及诸如例如DVD及其数据变体、CD等光学介质上。物理介质是非瞬态介质。
本领域的技术人员应该明白,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (11)
1.一种Kubernetes集群的巡检方法,其特征在于,包括:
在Kubernetes集群中部署巡检工具,所述巡检工具由正向巡检模块、策略引擎、反向巡检模块组成;
启动所述巡检工具以获取Kubernetes集群的配置文件,所述正向巡检模块根据所述配置文件获取集群的版本信息和每种资源的详细列表清单;
在所述策略引擎中针对Kubernetes集群创建健康检查规则库,根据所述健康检查规则库对每种资源的详细列表清单进行检查得到正向巡检结果;
所述反向巡检模块在所述Kubernetes集群中创建一个命名空间,并在所述命名空间中根据所述每种资源的详细列表清单创建自定义资源,根据所述自定义资源得到自定义资源列表,根据所述健康检查规则库对所述自定义资源列表进行检查得到反向巡检结果;
所述巡检工具将所述正向巡检结果和所述反向巡检结果进行汇总得到汇总结果,将所述汇总结果返回给用户。
2.根据权利要求1所述的Kubernetes集群的巡检方法,其特征在于,所述正向巡检模块对所述详细列表清单进行遍历得到遍历结果,将所述遍历结果进行封装得到每种资源的正向巡检参数,所述策略引擎根据所述健康检查规则库对每种资源构造查询请求模板,将所述正向巡检参数载入对应的所述查询请求模板进行决策得到正向巡检结果。
3.根据权利要求1所述的一种Kubernetes集群的巡检方法,其特征在于,所述正向巡检模块将所述Kubernetes集群中获取的资源按照资源类型不同分为不同种类,获取每一种类资源对应的api组以及资源版本号,将每一种类资源的api组和资源版本号封装为查询请求得到每一种类资源的查询请求,将所述查询请求发送给所述Kubernetes集群的API服务器,所述API服务器根据所述查询请求对对应种类的资源进行查询,得到当前Kubernetes集群内每种资源的资源详情列表。
4.根据权利要求2所述的一种Kubernetes集群的巡检方法,其特征在于,在“根据所述健康检查规则库对每种资源的详细列表清单进行检查”步骤中,所述健康检查规则库内置对每种资源的健康情况进行定义的健康检查规则,所述策略引擎针对所述健康检查规则库的每种资源的健康检查规则构造对应的查询请求模板,将每种资源的正向巡检参数载入对应资源的查询请求模板中得到正向查询请求,所述策略引擎根据所述正向查询请求进行决策得到正向巡检结果。
5.根据权利要求1所述的一种Kubernetes集群的巡检方法,其特征在于,在“根据所述健康检查规则库对所述自定义资源列表进行检查得到反向巡检结果”步骤中,对所述自定义资源列表进行遍历,将遍历结果封装得到每种自定义资源的反向巡检参数,将每种自定义资源的反向巡检参数载入对应资源种类的查询请求模板中得到反向查询请求,所述策略引擎根据所述反向查询请求进行决策得到反向决策结果,根据所述反向决策结果对所述命名空间中的自定义资源进行资源检测得到反向巡检结果。
6.根据权利要求4或5任一所述的一种Kubernetes集群的巡检方法,其特征在于,所述策略引擎的决策方法为:所述策略引擎对所述正向查询请求或者反向查询请求进行解析得到待检资源,再对所述健康检查规则库进行检索得到所述健康检查规则中的检查项,根据所述检查项对所述待检资源进行检查得到正向巡检结果或反向决策结果。
7.根据权利要求1所述的一种Kubernetes集群的巡检方法,其特征在于,在“在所述命名空间中根据所述每种资源的详细列表清单创建自定义资源”步骤中,所述反向巡检模块在所述Kubernetes集群中注册一个自定义资源框架,根据所述自定义资源框架在所述命名空间中根据所述每种资源的详细列表清单创建自定义资源,其中所述自定义资源框架包括资源的字段定义规范,所述自定义资源的具体声明信息。
8.根据权利要求5所述的一种Kubernetes集群的巡检方法,其特征在于,在“根据所述反向决策结果对所述命名空间中的自定义资源进行资源检测得到反向巡检结果”步骤中,所述资源检测为判断所述自定义资源是否可以正常启用。
9.一种Kubernetes集群的巡检装置,其特征在于,包括:
部署模块:在Kubernetes集群中部署巡检工具,所述巡检工具由正向巡检模块、策略引擎、反向巡检模块组成;
启动模块:启动所述巡检工具以获取Kubernetes集群的配置文件,所述正向巡检模块根据所述配置文件获取集群的版本信息和每种资源的详细列表清单;
正向巡检模块:在所述策略引擎中针对Kubernetes集群创建健康检查规则库,根据所述健康检查规则库对每种资源的详细列表清单进行检查得到正向巡检结果;
反向巡检模块:所述反向巡检模块在所述Kubernetes集群中创建一个命名空间,并在所述命名空间中根据所述每种资源的详细列表清单创建自定义资源,根据所述自定义资源得到自定义资源列表,根据所述健康检查规则库对所述自定义资源列表进行检查得到反向巡检结果;
汇总模块:所述巡检工具将所述正向巡检结果和所述反向巡检结果进行汇总得到汇总结果,将所述汇总结果返回给用户。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1-5或7-8任一所述的一种Kubernetes集群的巡检方法。
11.一种可读存储介质,其特征在于,所述可读存储介质中存储有计算机程序,所述计算机程序包括用于控制过程以执行过程的程序代码,所述过程包括根据权利要1-5或7-8任一项所述的一种Kubernetes集群的巡检方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211296511.3A CN115686535A (zh) | 2022-10-21 | 2022-10-21 | 一种Kubernetes集群的巡检方法、装置及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211296511.3A CN115686535A (zh) | 2022-10-21 | 2022-10-21 | 一种Kubernetes集群的巡检方法、装置及应用 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115686535A true CN115686535A (zh) | 2023-02-03 |
Family
ID=85066332
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211296511.3A Pending CN115686535A (zh) | 2022-10-21 | 2022-10-21 | 一种Kubernetes集群的巡检方法、装置及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115686535A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116582460A (zh) * | 2023-05-29 | 2023-08-11 | 江苏博云科技股份有限公司 | 一种Kubernetes环境下的自动网络巡检系统 |
-
2022
- 2022-10-21 CN CN202211296511.3A patent/CN115686535A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116582460A (zh) * | 2023-05-29 | 2023-08-11 | 江苏博云科技股份有限公司 | 一种Kubernetes环境下的自动网络巡检系统 |
CN116582460B (zh) * | 2023-05-29 | 2024-01-23 | 江苏博云科技股份有限公司 | 一种Kubernetes环境下的自动网络巡检系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766126B (zh) | 容器镜像的构建方法、系统、装置及存储介质 | |
US11163731B1 (en) | Autobuild log anomaly detection methods and systems | |
US9037915B2 (en) | Analysis of tests of software programs based on classification of failed test cases | |
CN111124850A (zh) | Mqtt服务器性能测试方法、系统、计算机设备及存储介质 | |
JP2020520515A (ja) | データベースの統合テスト方法、装置、サーバ、および記録媒体 | |
CN113127347B (zh) | 一种接口测试方法、装置、设备及可读存储介质 | |
CN112989330A (zh) | 容器的入侵检测方法、装置、电子设备及存储介质 | |
US20130054220A1 (en) | Arrangements for extending configuration management in large it environments to track changes proactively | |
CN112241360A (zh) | 一种测试用例生成方法、装置、设备及存储介质 | |
CN112363953B (zh) | 基于爬虫技术和规则引擎的接口测试用例生成方法及系统 | |
US9256509B1 (en) | Computing environment analyzer | |
CN111831567B (zh) | 应用的测试环境配置方法、装置、系统和介质 | |
US11704186B2 (en) | Analysis of deep-level cause of fault of storage management | |
CN103186463B (zh) | 确定软件的测试范围的方法和系统 | |
JP2023554057A (ja) | 隠れ変数、隠れ属性、および隠れ値検出を用いたシステム・テスト・インフラストラクチャ | |
JP2022100301A (ja) | ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するための方法、コンピュータ・プログラム、および更新推奨コンピュータ・サーバ(ソフトウェア・アップグレードの安定性の推奨) | |
CN115686535A (zh) | 一种Kubernetes集群的巡检方法、装置及应用 | |
CN106708727B (zh) | 一种分布式病毒特征样本验证方法及系统 | |
US11656977B2 (en) | Automated code checking | |
CN113535766A (zh) | 作业流配置方法、装置、电子装置及存储介质 | |
TW202131660A (zh) | 用於虛擬伺服器管理的電腦實施系統以及方法 | |
US11334349B2 (en) | Removing feature flag-related codebase from applications | |
US11782938B2 (en) | Data profiling and monitoring | |
CN115687129A (zh) | 一种覆盖率报告生成方法、装置、存储介质和计算机设备 | |
CN116594794A (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 |