一种应用于kubernetes集群的日志收集方法以及系统与流程

    专利2022-07-08  109


    本发明涉及计算机技术,尤其涉及一种应用于kubernetes集群的日志收集方法以及系统。



    背景技术:

    kubernetes作为容器编排管理平台,可以降低管理容器的复杂度。由于在容器中会运行服务,通常会产生很多日志,日志对于排除和定位服务运行过程中的问题有着关键的作用。

    当前技术中,在对kubernetes集群中pod的日志进行收集时,会启动大量冗余的日志收集服务,导致计算资源的浪费,浪费磁盘空间,加重了系统资源负担。



    技术实现要素:

    本发明实施例提供一种应用于kubernetes集群的日志收集方法以及系统,能够方便的声明需要收集的日志路径和日志收集配置,减轻系统资源负担,提高效率。

    本发明实施例第一方面提供了一种应用于kubernetes集群的日志收集方法,包括:

    根据日志收集需求,在pod控制器配置中配置日志收集注解;

    将所述pod控制器配置文件安装到所述kubernetes集群中;

    根据所述pod控制器配置文件更新pod注解以及挂载pod所在宿主机上的统一日志存放路径;

    采用更新后的配置文件收集pod内的日志。

    可选的,所述根据日志收集需求,在pod控制器配置文件中配置日志收集注解,包括:

    指定每一个容器内需要收集的日志目录、日志目录对应的收集配置以及日志是否可丢失。

    可选的,所述将所述pod控制器配置文件安装到所述kubernetes集群中,包括:

    通过应用程序将所述pod控制器配置文件安装到所述kubernetes集群中。

    可选的,所述根据所述pod控制器配置文件更新pod注解以及挂载pod所在宿主机上的统一日志存放路径,包括:

    读取所述pod控制器配置文件中的日志收集注解,根据所述日志收集注解将所述pod控制器的多个注解合并为所述pod自身的注解。

    可选的,所述根据所述pod控制器配置文件更新pod注解以及挂载pod所在宿主机上的统一日志存放路径,包括:

    通过kubernetes集群的hostpath方式,挂载pod所在宿主机上的统一日志存放路径,在所述统一日志存放路径下配置子目录,按照预设格式作为所述子目录文件名,根据所述日志收集注解配置所述子目录结构。

    本发明实施例第二方面提供了一种应用于kubernetes集群的日志收集系统,包括:

    注解模块,用于根据日志收集需求,在pod控制器配置文件中配置日志收集注解;

    配置模块,用于将所述pod控制器配置文件安装到所述kubernetes集群中;

    容器配置改写模块,用于根据所述pod控制器配置文件更新pod注解以及挂载pod所在宿主机上的统一日志存放路径;

    日志采集模块,用于采用更新后的配置文件收集pod内的日志。

    日志管理模块,用于管理日志收集配置和日志文件。

    可选的,所述注解模块根据日志收集需求,在pod控制器配置文件中配置日志收集注解,包括:

    指定每一个容器内需要收集的日志目录、日志目录对应的收集配置以及日志是否可丢失。

    可选的,所述配置模块用于:

    通过应用程序将所述pod控制器配置文件安装到所述kubernetes集群中。

    可选的,所述容器配置改写模块用于:

    读取所述pod控制器配置文件中的日志收集注解,根据所述日志收集注解将所述pod控制器的多个注解合并为所述pod自身的注解。

    可选的,所述容器配置改写模块用于:

    通过kubernetes集群的hostpath方式,挂载pod所在宿主机上的统一日志存放路径,在所述统一日志存放路径下配置子目录,按照预设格式作为所述子目录文件名,根据所述日志收集注解配置所述子目录结构。

    实施本发明实施例,具有如下有益效果:

    本发明实施例中的日志收集方法以及系统,在日志收集过程中,通过在配置文件中添加注解,将对应的配置文件更新到pod控制器中,从而能够根据日志路径以及日志需求针对性的收集日志,能够减轻系统资源负担,实现日志的自动收集,并且能够支持pod中容器多路径的收集需求以及单路径使用日志的需求。

    附图说明

    为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

    图1为本发明实施例提供的一种应用于kubernetes集群的日志收集方法一种实施方式的实施环境图。

    图2为本发明实施例提供的一种应用于kubernetes集群的日志收集方法的第一实施例的方法流程图。

    图3为本发明实施例提供的一种应用于kubernetes集群的日志收集方法的第二实施例的方法流程图。

    图4为本发明实施例提供的一种应用于kubernetes集群的日志收集系统的第一实施例的结构示意图。

    图5为本发明实施例提供的一种应用于kubernetes集群的日志收集系统的第二实施例的结构示意图。

    图6为本发明实施例提供的一种应用于kubernetes集群的日志收集方法的应用示意图。

    具体实施方式

    下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本公开,而非对本公开的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本公开相关的部分而非全部结构。

    在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图中将各步骤描述成顺序的处理,但是其中的许多步骤可以并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排,当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图内的其它步骤。处理可以对应于方法、函数、规程、子例程、子程序等。

    图1为本发明实施例提供的一种应用于kubernetes集群的日志收集方法一种实施方式的实施环境图。需要说明的是,图1中的架构只是为了举例说明,本发明实施例同样可以应用于采用其他架构的kubernetes集群。

    如图1所示,所述kubernetes集群包括主节点10以及工作节点20,所述工作节点20的数量可以为多个。开发者30对应主节点10,开发者30通过主节点中的apiserver101操作kubernetes集群,此外主节点10中还包括有控制器102,可用于实现针对工作节点的多种配置。在工作节点20中,包括有多个pod201,pod201是kubernetes集群的最小可部署单元,一个pod201代表了集群中运行的一个工作负载,可以包括一个或多个docker容器、挂载需要的存储,并拥有唯一的ip地址,pod201中的多个容器将始终在同一个节点上运行。可以理解的是,图1中只实例性的给出了kubernetes集群的部分组件,本领域技术人员可以理解kubernetes集群还包括其他组件,本发明实施例并不以此为限。

    本发明实施例中,通过采用daemonset方式配置pod,能够保证在每一个节点上都有一个pod副本,此时,通过根据日志收集需求,在pod控制器配置文件中配置日志收集注解,通过控制器将配置日志收集注解安装到kubernetes集群中,从而使得每个节点的pod获取到对应的注解更新,进而改写自身的注解以及挂载相应的统一日志存放路径,便于后续根据配置进行日志的保存,从而实现日志的自动保存,减轻系统资源负担。

    图2为本发明实施例提供的一种应用于kubernetes集群的日志收集方法的第一实施例的方法流程图。本实施例中,该日志收集方法可应用于如图1所示的kubernetes集群中,所述方法包括步骤s201-s204。

    在步骤s201中,根据日志收集需求,在pod控制器配置文件中配置日志收集注解。

    具体的,当前技术中,在日志收集过程中,pod内的容器在需要更改日志收集路径时,需要开发人员手动配置,无法自动更新;此外,pod内的容器采集的日志文件也只能采用标准格式进行输出,如果需要进行多个不同目录日志文件输出,则需要进行非常繁琐的配置,并且会造成日志冗余,严重浪费磁盘空间。

    基于当前技术中的上述问题,本发明实施例创造性的提出通过利用kubernetes集群的注解功能,灵活的声明需要被收集的容器内日志路径。

    本实施例中,根据日志收集需求,在pod控制器配置文件中配置日志收集注解,注解(annotation)可以用来向kubernetes对象的metadata.annotations字段添加任意的信息。kubernetes的客户端或者自动化工具可以存取这些信息以实现其自定义的逻辑。在其他实施方式中,注解可以包括:声明式配置层用到的状态信息;build、release、image信息,例如timestamp、releaseid、gitbranch、prnumber、imagehash、registryaddress;日志、监控、分析、审计系统的参数;第三方工具所需要的信息,例如name、version、buildinformation、url;轻量级的发布工具用到的信息,例如,config、checkpoint;负责人的联系方式,例如,电话号码、网址、电子信箱等;用户用来记录备忘信息的说明,例如,对标准镜像做了什么样的修改、维护过程中有什么特殊信息。通过在pod控制器配置文件中配置日志收集注解,可以便于后续通过读取注解了解对日志的针对性采集需求。

    在其他实施方式中,所述日志收集注解具体包括:指定每一个容器内需要收集的日志目录、日志目录对应的收集配置以及日志是否可丢失。

    在第一种方式中,指定每一个容器内需要被收集的日志目录,从而可以更加自由的定义每个容器收集的日志内容,便于优化系统资源,防止浪费。

    在第二种方式中,指定每一个容器内需要被收集的日志目录对应的日志收集配置,从而可以针对不同的日志收集采取不同的配置,提高收集效率。

    在第三种方式中,指定日志是否允许丢失。在此方式中,如果配置成不允许丢失,则原始日志最终一定会被采集到。从而可以实现原始日志与pod生命周期解绑,即使pod被删除,对应的原始日志同样可以保存下来,便于后续查看,避免了日志丢失,提高了系统的稳定性。

    在步骤s202中,将所述pod控制器配置文件安装到所述kubernetes集群中。

    具体的,通过应用程序将所述pod控制器配置文件安装到所述kubernetes集群中。在配置文件中配置了日志收集注解了之后,将pod控制器配置文件进行安装,本实施例中,安装到kubernetes集群可以采用通过应用程序的形式进行安装。开发人员通过api调用对应的应用程序,将pod控制器配置文件进行安装,便于后续的读取。

    在步骤s203中,根据所述pod控制器配置文件更新pod注解以及挂载pod所在宿主机上的统一日志存放路径。

    具体的,kubernetes集群中的相应模块会读取所述pod控制器配置文件,当解析到pod控制器配置文件中包括日志收集注解时,会根据该日志收集注解对应的声明来改写pod控制器配置文件。

    在一种实施方式中,所述改写pod控制器配置文件,包括:将pod控制器的多个注解转换合并为所述pod自身的注解。本实施方式中,是直接根据配置文件中的日志收集注解来更新pod自身的注解。

    在另一种实施方式中,所述改写pod控制器配置文件,包括:通过kubernetes集群的hostpath方式,挂载pod所在宿主机上的统一日志存放路径,在所述统一日志存放路径下配置子目录,按照预设格式作为所述子目录文件名,根据所述日志收集注解配置所述子目录结构。

    具体的,挂载pod所在宿主机上的统一日志存放路径,并通过kubernetes的subpathexpr特性,在统一日志存放路径下按照<namespace>_<pod_name>_<pod_uid>的格式作为子目录的文件名,同时该子目录的结构会按照pod内的容器对应的需要被收集的多个日志路径来进行配置。

    本发明实施例中,日志采集模块和日志管理模块还需要以daemonset方式部署在kubernetes集群的每一个集群中,daemonset控制器会确保kubernetes集群中的每一个节点都有一个pod副本。由于每个kubernetes集群中的节点都会对应的查看pod控制器配置文件,当有这类pod第一次出现或者发生更新时,会根据pod中日志收集注解的内容在节点上进行更新,比如挂载统一日志存放路径,并按照namespace_pod_name_pod_uid的格式作为子目录,并把pod内的每个收集单元所使用到的日志收集配置文件写到该子目录下。

    在步骤s204中,采用更新后的配置文件收集pod内的日志。

    具体的,在更新了配置文件之后,由于每个kubernetes集群中的节点都会进行日志采集,都会自动加载节点上新出现或者被更新过的日志收集配置文件,每一个配置文件就是一个收集单元,会根据配置文件中指定的收集路径去读取原始日志文件,由于该路径也被pod容器挂载,所以该路径下的日志文件也是pod容器实际所产生的日志文件。

    本发明实施例中的日志收集方法,在日志收集过程中,通过在配置文件中添加注解,将对应的配置文件更新到pod控制器中,从而能够根据日志路径以及日志需求针对性的收集日志,能够减轻系统资源负担,实现日志的自动收集,并且能够支持pod中容器多路径的收集需求以及单路径使用日志的需求。

    图3为本发明实施例提供的一种应用于kubernetes集群的日志收集方法的第二实施例的方法流程图。本实施例中,该日志收集方法可应用于如图1所示的kubernetes集群中,所述方法包括步骤s301-s305。相对于图2所示的第一实施例,本实施例中进一步包括了如何查询日志的步骤。

    在步骤s301中,根据日志收集需求,在pod控制器配置文件中配置日志收集注解。

    在步骤s302中,将所述pod控制器配置文件安装到所述kubernetes集群中。

    在步骤s303中,根据所述pod控制器配置文件更新pod注解以及挂载pod所在宿主机上的统一日志存放路径。

    在步骤s304中,采用更新后的配置文件收集pod内的日志。

    在步骤s305中,生成并提供日志查询接口,所述日志查询接口用于检索所述收集的日志。

    具体的,在收集日志之后,对所述日志进行管理,按照不同维度、标签进行分类,并提供日志查询接口,从而可以便于开发人员按照不同维度或者标签对日志进行检索。

    本发明实施例中的日志收集方法,在日志收集过程中,通过在配置文件中添加注解,将对应的配置文件更新到pod控制器中,从而能够根据日志路径以及日志需求针对性的收集日志,能够减轻系统资源负担,实现日志的自动收集,并且能够支持pod中容器多路径的收集需求以及单路径使用日志的需求。

    图4为本发明实施例提供的一种应用于kubernetes集群的日志收集系统的第一实施例的结构示意图。本实施例中,该日志收集系统40包括注解模块401、配置模块402、容器配置改写模块403以及日志采集模块404。

    其中,注解模块401用于根据日志收集需求,在pod控制器配置文件中配置日志收集注解。

    具体的,所述日志收集注解具体包括:指定每一个容器内需要收集的日志目录、日志目录对应的收集配置以及日志是否可丢失。

    在第一种方式中,指定每一个容器内需要被收集的日志目录,从而可以更加自由的定义每个容器收集的日志内容,便于优化系统资源,防止浪费。

    在第二种方式中,指定每一个容器内需要被收集的日志目录对应的日志收集配置,从而可以针对不同的日志收集采取不同的配置,提高收集效率。

    在第三种方式中,指定日志是否允许丢失。在此方式中,如果配置成不允许丢失,则原始日志最终一定会被采集到。从而可以实现原始日志与pod生命周期解绑,即使pod被删除,对应的原始日志同样可以保存下来,便于后续查看,避免了日志丢失,提高了系统的稳定性。

    配置模块402用于将所述pod控制器配置文件安装到所述kubernetes集群中。

    具体的,配置模块402通过应用程序将所述pod控制器配置文件安装到所述kubernetes集群中。在配置文件中配置了日志收集注解了之后,将pod控制器配置文件进行安装,本实施例中,安装到kubernetes集群可以采用通过应用程序的形式进行安装。开发人员通过api调用对应的应用程序,将pod控制器配置文件进行安装,便于后续的读取。

    容器配置改写模块403用于根据所述pod控制器配置文件更新pod注解以及挂载pod所在宿主机上的统一日志存放路径。

    具体的,容器配置改写模块403读取所述pod控制器配置文件,当解析到pod控制器配置文件中包括日志收集注解时,会根据该日志收集注解对应的声明来改写pod控制器配置文件。

    在一种实施方式中,所述改写pod控制器配置文件,包括:将pod控制器的多个注解转换合并为所述pod自身的注解。本实施方式中,是直接根据配置文件中的日志收集注解来更新pod自身的注解。

    在另一种实施方式中,所述改写pod控制器配置文件,包括:通过kubernetes集群的hostpath方式,挂载pod所在宿主机上的统一日志存放路径,在所述统一日志存放路径下配置子目录,按照预设格式作为所述子目录文件名,根据所述日志收集注解配置所述子目录结构。

    具体的,容器配置改写模块403挂载pod所在宿主机上的统一日志存放路径,并通过kubernetes的subpathexpr特性,在统一日志存放路径下按照namespace_pod_name_pod_uid的格式作为子目录的文件名,同时该子目录的结构会按照pod内的容器对应的需要被收集的多个日志路径来进行配置。

    本发明实施例中,还需要以daemonset方式部署在kubernetes集群的每一个集群中,daemonset控制器会确保kubernetes集群中的每一个节点都有一个pod副本。由于每个kubernetes集群中的节点都会对应的查看pod控制器配置文件,当有这类pod第一次出现或者发生更新时,会根据pod中日志收集注解的内容在节点上进行更新,比如挂载统一日志存放路径,并按照namespace_pod_name_pod_uid的格式作为子目录,并把pod内的每个收集单元所使用到的日志收集配置文件写到该子目录下。

    日志采集模块404用于采用更新后的配置文件收集pod内的日志。

    具体的,在更新了配置文件之后,由于每个kubernetes集群中的节点都会进行日志采集,日志采集模块404会自动加载节点上新出现或者被更新过的日志收集配置文件,每一个配置文件就是一个收集单元,会根据配置文件中指定的收集路径去读取原始日志文件,由于该路径也被pod容器挂载,所以该路径下的日志文件也是pod容器实际所产生的日志文件。

    本发明实施例中的日志收集系统,在日志收集过程中,通过在配置文件中添加注解,将对应的配置文件更新到pod控制器中,从而能够根据日志路径以及日志需求针对性的收集日志,能够减轻系统资源负担,实现日志的自动收集,并且能够支持pod中容器多路径的收集需求以及单路径使用日志的需求。

    图5为本发明实施例提供的一种应用于kubernetes集群的日志收集系统的第二实施例的结构示意图。对比图4所示第一实施例,本实施例中,该日志收集系统40进一步包括:日志管理模块405以及日志检索模块406。

    日志管理模块405用于管理日志收集配置和日志文件;

    日志检索模块406用于提供日志查询接口。

    具体的,日志检索模块406生成并提供日志查询接口,所述日志查询接口用于检索所述收集的日志。

    本发明实施例中的日志收集系统,在日志收集过程中,通过在配置文件中添加注解,将对应的配置文件更新到pod控制器中,从而能够根据日志路径以及日志需求针对性的收集日志,能够减轻系统资源负担,实现日志的自动收集,并且能够支持pod中容器多路径的收集需求以及单路径使用日志的需求。

    图6为本发明实施例提供的一种应用于kubernetes集群的日志收集方法的应用示意图。如图6所示的日志收集服务,通过配置对应的配置文件,能够实现针对业务端的日志收集。

    上述实施例中提供各模块两两之间均可实现通讯连接,且各模块均可与平台的中心控制装置通讯连接,上述实施例中提供的通过指纹识别快速录音装置可执行本公开中任意实施例中所提供的通过指纹识别快速录音的方法,具备执行该方法相应的功能模块和有益效果,未在上述实施例中详细描述的技术细节,可参见本公开任意实施例中所提供的快速录音的方法。

    将意识到的是,本公开也扩展到适合于将本公开付诸实践的计算机程序,特别是载体上或者载体中的计算机程序。程序可以以源代码、目标代码、代码中间源和诸如部分编译的形式的目标代码的形式,或者以任何其它适合在按照本公开的方法的实现中使用的形式。也将注意的是,这样的程序可能具有许多不同的构架设计。例如,实现按照本公开的方法或者系统的功能性的程序代码可能被再分为一个或者多个子例程。

    用于在这些子例程中间分布功能性的许多不同方式将对技术人员而言是明显的。子例程可以一起存储在一个可执行文件中,从而形成自含式的程序。这样的可执行文件可以包括计算机可执行指令,例如处理器指令和/或解释器指令(例如,java解释器指令)。可替换地,子例程的一个或者多个或者所有子例程都可以存储在至少一个外部库文件中,并且与主程序静态地或者动态地(例如在运行时间)链接。主程序含有对子例程中的至少一个的至少一个调用。子例程也可以包括对彼此的函数调用。涉及计算机程序产品的实施例包括对应于所阐明方法中至少一种方法的处理步骤的每一步骤的计算机可执行指令。这些指令可以被再分成子例程和/或被存储在一个或者多个可能静态或者动态链接的文件中。

    另一个涉及计算机程序产品的实施例包括对应于所阐明的系统和/或产品中至少一个的装置中每个装置的计算机可执行指令。这些指令可以被再分成子例程和/或被存储在一个或者多个可能静态或者动态链接的文件中。

    计算机程序的载体可以是能够运载程序的任何实体或者装置。例如,载体可以包含存储介质,诸如(rom例如cdrom或者半导体rom)或者磁记录介质(例如软盘或者硬盘)。进一步地,载体可以是可传输的载体,诸如电学或者光学信号,其可以经由电缆或者光缆,或者通过无线电或者其它手段传递。当程序具体化为这样的信号时,载体可以由这样的线缆或者装置组成。可替换地,载体可以是其中嵌入有程序的集成电路,所述集成电路适合于执行相关方法,或者供相关方法的执行所用。

    应该留意的是,上文提到的实施例是举例说明本公开,而不是限制本公开,并且本领域的技术人员将能够设计许多可替换的实施例,而不会偏离所附权利要求的范围。在权利要求中,任何放置在圆括号之间的参考符号不应被解读为是对权利要求的限制。动词“包括”和其词形变化的使用不排除除了在权利要求中记载的那些之外的元素或者步骤的存在。在元素之前的冠词“一”或者“一个”不排除复数个这样的元素的存在。本公开可以通过包括几个明显不同的组件的硬件,以及通过适当编程的计算机而实现。在列举几种装置的装置权利要求中,这些装置中的几种可以通过硬件的同一项来体现。在相互不同的从属权利要求中陈述某些措施的单纯事实并不表明这些措施的组合不能被用来获益。

    如果期望的话,这里所讨论的不同功能可以以不同顺序执行和/或彼此同时执行。此外,如果期望的话,以上所描述的一个或多个功能可以是可选的或者可以进行组合。

    如果期望的话,上文所讨论的各步骤并不限于各实施例中的执行顺序,不同步骤可以以不同顺序执行和/或彼此同时执行。此外,在其他实施例中,以上所描述的一个或多个步骤可以是可选的或者可以进行组合。

    虽然本公开的各个方面在独立权利要求中给出,但是本公开的其它方面包括来自所描述实施方式的特征和/或具有独立权利要求的特征的从属权利要求的组合,而并非仅是权利要求中所明确给出的组合。

    这里所要注意的是,虽然以上描述了本公开的示例实施方式,但是这些描述并不应当以限制的含义进行理解。相反,可以进行若干种变化和修改而并不背离如所附权利要求中所限定的本公开的范围。

    本领域普通技术人员应该明白,本公开实施例的装置中的各模块可以用通用的计算装置来实现,各模块可以集中在单个计算装置或者计算装置组成的网络组中,本公开实施例中的装置对应于前述实施例中的方法,其可以通过可执行的程序代码实现,也可以通过集成电路组合的方式来实现,因此本公开并不局限于特定的硬件或者软件及其结合。

    本领域普通技术人员应该明白,本公开实施例的装置中的各模块可以用通用的移动终端来实现,各模块可以集中在单个移动终端或者移动终端组成的装置组合中,本公开实施例中的装置对应于前述实施例中的方法,其可以通过编辑可执行的程序代码实现,也可以通过集成电路组合的方式来实现,因此本公开并不局限于特定的硬件或者软件及其结合。


    技术特征:

    1.一种应用于kubernetes集群的日志收集方法,其特征在于,包括:

    根据日志收集需求,在pod控制器配置文件中配置日志收集注解;

    将所述pod控制器配置文件安装到所述kubernetes集群中;

    根据所述pod控制器配置文件更新pod注解以及挂载pod所在宿主机上的统一日志存放路径;

    采用更新后的配置文件收集pod内的日志。

    2.如权利要求1所述的日志收集方法,其特征在于,所述根据日志收集需求,在pod控制器配置文件中配置日志收集注解,包括:

    指定每一个容器内需要收集的日志目录、日志目录对应的收集配置以及日志是否可丢失。

    3.如权利要求2所述的日志收集方法,其特征在于,所述将所述pod控制器配置文件安装到所述kubernetes集群中,包括:

    通过应用程序将所述pod控制器配置文件安装到所述kubernetes集群中。

    4.如权利要求3所述的日志收集方法,其特征在于,所述根据所述pod控制器配置文件更新pod注解以及挂载pod所在宿主机上的统一日志存放路径,包括:

    读取所述pod控制器配置文件中的日志收集注解,根据所述日志收集注解将所述pod控制器的多个注解合并为所述pod自身的注解。

    5.如权利要求3所述的日志收集方法,其特征在于,所述根据所述pod控制器配置文件更新pod注解以及挂载pod所在宿主机上的统一日志存放路径,包括:

    通过kubernetes集群的hostpath方式,挂载pod所在宿主机上的统一日志存放路径,在所述统一日志存放路径下配置子目录,按照预设格式作为所述子目录文件名,根据所述日志收集注解配置所述子目录结构。

    6.一种应用于kubernetes集群的日志收集系统,其特征在于,包括:

    注解模块,用于根据日志收集需求,在pod控制器配置文件中配置日志收集注解;

    配置模块,用于将所述pod控制器配置文件安装到所述kubernetes集群中;

    容器配置改写模块,用于根据所述pod控制器配置文件更新pod注解以及挂载pod所在宿主机上的统一日志存放路径;

    日志管理模块,用于管理日志收集配置和日志文件;

    日志采集模块,用于采用更新后的配置文件收集pod内的日志。

    7.如权利要求6所述的日志收集系统,其特征在于,所述注解模块根据日志收集需求,在pod控制器配置文件中配置日志收集注解,包括:

    指定每一个容器内需要收集的日志目录、日志目录对应的收集配置以及日志是否可丢失。

    8.如权利要求7所述的日志收集系统,其特征在于,所述配置模块用于:

    通过应用程序将所述pod控制器配置文件安装到所述kubernetes集群中。

    9.如权利要求8所述的日志收集系统,其特征在于,所述容器配置改写模块用于:

    读取所述pod控制器配置文件中的日志收集注解,根据所述日志收集注解将所述pod控制器的多个注解合并为所述pod自身的注解。

    10.如权利要求8所述的日志收集系统,其特征在于,所述容器配置改写模块用于:

    通过kubernetes集群的hostpath方式,挂载pod所在宿主机上的统一日志存放路径,在所述统一日志存放路径下配置子目录,按照预设格式作为所述子目录文件名,根据所述日志收集注解配置所述子目录结构。

    技术总结
    本发明实施例提供了一种应用于kubernetes集群的日志收集方法以及系统,所述方法包括:根据日志收集需求,在pod控制器配置文件中配置日志收集注解;将所述pod控制器配置文件安装到所述kubernetes集群中;根据所述pod控制器配置文件更新pod注解以及挂载pod所在宿主机上的统一日志存放路径;采用更新后的配置文件收集pod内的日志。本发明实施例能够根据日志路径以及日志需求针对性的收集日志,能够减轻系统资源负担,实现日志的自动收集。

    技术研发人员:温武汉
    受保护的技术使用者:上海七牛信息技术有限公司
    技术研发日:2020.12.28
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-22274.html

    最新回复(0)