一种Kubernetes资源巡检方法、系统及设备技术方案

技术编号:33296058 阅读:22 留言:0更新日期:2022-05-01 00:25
本发明专利技术提供了一种Kubernetes资源巡检方法、系统及设备,该方法包括:向Kubernetes API Server提交CRD创建请求,初始化巡检管理中相应的CRD,并部署巡检核心管理控制器;根据CRD创建请求创建业务工作负载,并设置与CRD对应的IPPool控制器监听CR资源;向Kubernetes API Server提交创建巡检任务CR的请求;巡检核心管理控制器通过与Kubernetes API Server建立长连接的方式获取巡检任务请求,执行对巡检任务CR的巡检。本方案能够保证每个Node上有且只有一个相同类型的巡检Pod运行,并且在运行过程中实现对巡检执行情况的监控,且在运行完成后,能够确保巡检Pod的回收并释放资源,有效减少集群资源的占用。少集群资源的占用。少集群资源的占用。

【技术实现步骤摘要】
一种Kubernetes资源巡检方法、系统及设备


[0001]本专利技术涉及云原生体系下的容器编排领域,尤其涉及一种Kubernetes资源巡检方法、系统及设备。

技术介绍

[0002]当升级完一个基础软件,例如Kubelet,或者在选择的节点上创建完Macvlan对应虚拟设备后,往往需要在每个节点上进行验证检查,通常的做法是在对应的节点上存在常驻的管理Pod,定时针对不同的资源做巡检,上述检查,通常在很长一段时间内只需要执行一次,或者在需要时临时触发,在这种情况下,当需要巡检的资源较多时,常驻的管理Pod,会消耗较多的CPU、内存或网络等资源。
[0003]因此,如何减少云原生系统中资源巡检的次数及巡检消耗的集群资源,是目前亟待解决的问题。

技术实现思路

[0004]有鉴于此,本专利技术提供了一种Kubernetes资源巡检方法、系统及设备,以减少资源巡检次数及巡检消耗的集群资源。具体而言,本专利技术提供了如下技术方案:一方面,本专利技术提供了一种Kubernetes资源巡检方法,所述方法包括:步骤1、向Kubernetes API Server提交CRD创建请求,初始化巡检管理中相应的CRD,并部署巡检核心管理控制器;巡检核心管理控制器用于监听巡检任务CR;步骤2、根据CRD创建请求创建业务工作负载,并设置与CRD对应的IPPool控制器监听CR资源,以完成目标巡检资源的创建;步骤3、向Kubernetes API Server提交创建巡检任务CR的请求,当巡检任务CR创建完成后,则处于等待调度状态;步骤4、巡检核心管理控制器通过与Kubernetes API Server建立长连接的方式获取巡检任务请求,执行对巡检任务CR的巡检。
[0005]优选的,步骤2中,目标巡检资源的创建,可以通过以下方式:向Kubernetes API Server提交业务工作负载对应的CRD创建请求,并部署业务工作负载对应管理控制器,业务工作负载对应管理控制器监听业务工作负载对应的CR资源(例如IPPool实例),创建工作负载,以完成目标巡检资源的创建。
[0006]优选的,所述步骤1中,所述巡检核心管理控制器通过InCluster模式与Kubernetes API Server建立长连接。
[0007]优选的,所述步骤2中,在接收到虚拟网络创建请求时,所述IPPool控制器将校验IP子网是否合法,并同时校验待创建的虚拟网络是否已存在,以保证对应的Node节点上创建对应的虚拟网络。
[0008]优选的,所述步骤2中,与CRD对应的IPPool控制器与宿主机共享网络协议栈。
[0009]优选的,所述步骤3中,所述巡检任务CR的信息包括:镜像定义、容器运行对应的命
令、并发参数、超时时间、失败重试次数。
[0010]优选的,所述步骤4中,执行对巡检任务CR的巡检,具体包括:步骤401、获取巡检任务CR实例的信息;步骤402、判断巡检任务CR实例是否存在管理标签,如不存在,则补全管理标签,并更新巡检任务CR实例的标签,进入下一步;如存在,则直接进入下一步;步骤403、判断巡检任务CR实例是否已完成,若已完成,则汇总巡检结果,并释放资源,完成巡检;否则,进入下一步;步骤404、判断巡检任务CR实例的起始时间是否已设置,若无,则设置起始时间为当前时间,若已设置,则进入下一步;步骤405、判断巡检任务CR实例中Phase是否已设置,若无,则将Phase状态设置为运行中;若已设置,则进入下一步;步骤406、获取巡检任务CR实例所管理的全部巡检Pod实例;步骤407、获取巡检任务CR实例所管理的全部巡检Pod对应的Node与巡检Pod的映射表;步骤408、获取集群中所有的Node列表,作为候选Node列表;步骤409、基于巡检Pod实例的状态,对获取到的巡检任务CR实例所管理的全部巡检Pod实例进行过滤分类,并将对应的巡检Pod加入到对应类型的巡检Pod列表;所述巡检Pod列表的类型包括failed类、active类、succeeded类;步骤410、遍历候选Node列表中的所有Node,并基于Node与巡检Pod列表中对应的匹配项的匹配处理,以筛选出WaitingForRunPod Node列表,作为新的巡检Pod调度的Node列表,并同时获取需要被清理的巡检Pod实例;步骤411、判断巡检任务CR实例状态中的Phase,若Phase对应状态为PhaseFailed,则更新更新重新调度延时,重新进入队列,并等待下一次处理;否则进入下一步;步骤412、判断巡检任务CR实例中Spec对应的Phase的状态,若Spec对应的Phase的状态为Paused,且巡检任务CR实例状态中的Phase状态为PhaseRunning或PhasePaushed,则更新重新调度延时,重新进入队列,并等待下一次处理;否则进入下一步;步骤413、判断巡检任务CR实例中Spec对应的Phase的状态,若Spec对应的Phase的状态为非Paused,且巡检任务CR实例状态中的Phase状态为PhasePaushed,则更新重新调度延时,重新进入队列,并等待下一次处理;否则进入下一步;步骤414、判断巡检任务CR实例状态是否为失败,若为失败,则针对巡检任务CR实例对应的巡检Pod进行清理或重新进入队列或继续巡检处理;若为非失败,则当Delete Pod列表不为空时,清理Delete Pod列表对应的巡检Pod,释放集群资源,否则执行下一步;步骤415、如果巡检任务CR实例的DeletionTimestamp未设置,且WaitingForRunPod Node列表不为空,则进行巡检Pod调度处理;步骤416、巡检Pod在对应的Node上运行以执行巡检命令,并监控巡检Pod,在监控中基于获取的巡检任务CR实例,执行对应的巡检任务CR实例的状态处理;步骤417、获取巡检任务Pod的执行情况及巡检任务Pod所属巡检任务CR实例,并将获取到的巡检任务CR实例信息发送至步骤401,并执行步骤401的对应操作。
[0011]优选的,所述步骤410中,所述的匹配处理包括:
步骤4101、若匹配项存在,则针对匹配子项逐项匹配;当满足全部匹配子项的条件时,则将对应的Node加入Desired Node列表;若任一匹配子项的条件不满足,且巡检Pod的DeletionTimestamp已设置,则将该Node加入Delete Pod列表,以准备清理对应的巡检Pod;步骤4102、若匹配项不存在,则初始化巡检Pod实例,针对匹配子项逐项匹配,当满足全部匹配子项的条件时,则将对应的Node加入WaitingForRunPod Node列表。
[0012]优选的,所述匹配子项包括以下子项的任意组合:匹配子项1:Host匹配处理;匹配子项2:NodeSelector 匹配处理;匹配子项3:Node Taints 匹配处理;匹配子项4:Node Unschedulable 匹配处理;匹配子项5:当前Node上已调度的Pod数量限定匹配。
[0013本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Kubernetes资源巡检方法,其特征在于,所述方法包括:步骤1、向Kubernetes API Server提交CRD创建请求,初始化巡检管理中相应的CRD,并部署巡检核心管理控制器;巡检核心管理控制器用于监听巡检任务CR;步骤2、根据CRD创建请求创建业务工作负载,并设置与CRD对应的IPPool控制器监听CR资源,以完成目标巡检资源的创建;步骤3、向Kubernetes API Server提交创建巡检任务CR的请求,当巡检任务CR创建完成后,则处于等待调度状态;步骤4、巡检核心管理控制器通过与Kubernetes API Server建立长连接的方式获取巡检任务请求,执行对巡检任务CR的巡检。2.根据权利要求1所述的方法,其特征在于,所述步骤1中,所述巡检核心管理控制器通过InCluster模式与Kubernetes API Server建立长连接。3.根据权利要求1所述的方法,其特征在于,所述步骤2中,在接收到虚拟网络创建请求时,所述IPPool控制器将校验IP子网是否合法,并同时校验待创建的虚拟网络是否已存在,以保证对应的Node节点上创建对应的虚拟网络。4.根据权利要求1所述的方法,其特征在于,所述步骤2中,与CRD对应的IPPool控制器与宿主机共享网络协议栈。5.根据权利要求1所述的方法,其特征在于,所述步骤3中,所述巡检任务CR的信息包括:镜像定义、容器运行对应的命令、并发参数、超时时间、失败重试次数。6.根据权利要求1所述的方法,其特征在于,所述步骤4中,执行对巡检任务CR的巡检,具体包括:步骤401、获取巡检任务CR实例的信息;步骤402、判断巡检任务CR实例是否存在管理标签,如不存在,则补全管理标签,并更新巡检任务CR实例的标签,进入下一步;如存在,则直接进入下一步;步骤403、判断巡检任务CR实例是否已完成,若已完成,则汇总巡检结果,并释放资源,完成巡检;否则,进入下一步;步骤404、判断巡检任务CR实例的起始时间是否已设置,若无,则设置起始时间为当前时间,若已设置,则进入下一步;步骤405、判断巡检任务CR实例中Phase是否已设置,若无,则将Phase状态设置为运行中;若已设置,则进入下一步;步骤406、获取巡检任务CR实例所管理的全部巡检Pod实例;步骤407、获取巡检任务CR实例所管理的全部巡检Pod对应的Node与巡检Pod的映射表;步骤408、获取集群中所有的Node列表,作为候选Node列表;步骤409、基于巡检Pod实例的状态,对获取到的巡检任务CR实例所管理的全部巡检Pod实例进行过滤分类,并将对应的巡检Pod加入到对应类型的巡检Pod列表;所述巡检Pod列表的类型包括failed类、active类、succeeded类;步骤410、遍历候选Node列表中的所有Node,并基于Node与巡检Pod列表中对应的匹配项的匹配处理,以筛选出WaitingForRunPod Node列表,作为新的巡检Pod调度的Node列表,并同时获取需要被清理的巡检Pod实例;步骤411、判断巡检任务CR实例状态中的Phase,若Phase对应状态为PhaseFailed,则更
新更新重新调度延时,重新进入队列,并等待下一次处理;否则进入下一步;步骤412、判断巡检任务CR实例中Spec对应的Phase的状态,若Spec对应的Phase的状态为Paused,且巡检任务CR实例状态中的Phase状态为PhaseRunning或PhasePaushed,则更新重新调度延时,重新进入队列,并等待下一次处理;否则进入...

【专利技术属性】
技术研发人员:王伟华刘井山梅进欧阳扬
申请(专利权)人:广西梯度科技有限公司
类型:发明
国别省市:

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

1