CN113760638A - 一种基于kubernetes集群的日志服务方法和装置 - Google Patents

一种基于kubernetes集群的日志服务方法和装置 Download PDF

Info

Publication number
CN113760638A
CN113760638A CN202011103286.8A CN202011103286A CN113760638A CN 113760638 A CN113760638 A CN 113760638A CN 202011103286 A CN202011103286 A CN 202011103286A CN 113760638 A CN113760638 A CN 113760638A
Authority
CN
China
Prior art keywords
application
log
running
local
application log
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
Application number
CN202011103286.8A
Other languages
English (en)
Inventor
马瑞磊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Wodong Tianjun Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Wodong Tianjun Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN202011103286.8A priority Critical patent/CN113760638A/zh
Publication of CN113760638A publication Critical patent/CN113760638A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computational Linguistics (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种基于kubernetes集群的日志服务方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:获取运行在kubernetes集群上的应用的运行状态;其中,应用对应的运行节点将应用在运行过程中生成的应用日志进行本地存储,得到本地应用日志集合;根据运行状态确定运行完成的应用,并将运行完成的应用对应的本地存储的应用日志进行云存储,得到云应用日志集合;响应于用户发起的应用日志查询请求,根据应用日志查询请求中包括的应用编号,依次查询本地应用日志集合和云应用日志集合,以确定目标应用日志,并将目标应用日志发送至用户。该实施方式节约了存储资源,简化了日志查询流程,提高了日志查询效率,提升了用户体验。

Description

一种基于kubernetes集群的日志服务方法和装置
技术领域
本发明涉及计算机技术领域,尤其涉及一种基于kubernetes集群的日志服务方法和装置。
背景技术
kubernetes,是一个开源的,用于管理云平台中多个主机上的容器化的应用,Kubernetes集群作为一种资源调度框架,常用于调度在线服务,其目标是让部署容器化的应用简单并且高效(powerful),Kubernetes提供了应用部署,规划,更新,维护的一种机制。当前Kubernetes集群中通常采用如ElK(Elasticsearch、Logstash、Kibana,是三种开源框架搭建的日志采集管理***)等传统分布式日志解决方案。
Spark,是一个流行的大数据计算框架,能更好地适用于数据挖掘和机器学习等需要迭代的算法,现有的Spark通常使用传统的Yarn调度程序来进行资源调度。
在实现本发明过程中,发明人发现现有技术中至少存在如下问题:
1、现有的在kubernetes集群中运行应用的日志服务方法主要采用传统分布式日志解决方案,耗费了存储资源,日志查询效率低;
2、Spark应用在kubernetes集群运行时,日志需要通过特定页面、搜索、查询、展示等组件进行查询并展示,日志查询流程复杂,导致用户体验差。
发明内容
有鉴于此,本发明实施例提供一种基于kubernetes集群的日志服务方法和装置,能够节约存储资源,简化日志查询流程,提高日志查询效率,提升用户体验。
为实现上述目的,根据本发明实施例的第一方面,提供了一种基于kubernetes集群的日志服务方法,包括:
获取运行在kubernetes集群上的应用的运行状态;其中,应用对应的运行节点将应用在运行过程中生成的应用日志进行本地存储,得到本地应用日志集合;
根据运行状态确定运行完成的应用,并将运行完成的应用对应的本地存储的应用日志进行云存储,得到云应用日志集合;
响应于用户发起的应用日志查询请求,根据应用日志查询请求中包括的应用编号,依次查询本地应用日志集合和云应用日志集合,以确定目标应用日志,并将目标应用日志发送至用户。
进一步地,获取运行在kubernetes集群上的应用的运行状态的步骤包括:
定时从kubernetes集群中获取应用编号列表,其中,应用编号列表中各应用编号对应的运行状态均为正在kubernetes集群上运行。
进一步地,根据运行状态确定运行完成的应用的步骤包括:
将应用编号列表和本地列表进行比对,对于应用编号列表与本地列表的补集内的应用,确定为运行完成的应用,其中,本地列表包括在kubernetes集群上申请运行的应用对应的应用编号。
进一步地,在将运行完成的应用对应的本地存储的应用日志进行云存储,得到本地应用日志集合的步骤之后,还包括:
从本地应用日志集合中,将运行完成的应用对应的应用日志进行删除。
进一步地,应用为Spark应用,运行节点为多个,各运行节点将Spark应用在运行过程中生成的应用日志分别进行本地存储,得到各运行节点对应的本地应用日志集合。
进一步地,应用日志查询请求中还包括运行节点编号;
根据应用日志查询请求中包括的应用编号,依次查询本地应用日志集合和云应用日志集合,以确定目标应用日志的步骤还包括:
根据日志查询请求中包括的应用编号和运行节点编号,依次查询运行节点编号对应的进行本地应用日志集合和云应用日志集合,以确定目标应用日志。
根据本发明实施例的第二方面,提供了一种基于kubernetes集群的日志服务装置,包括运行状态获取模块、日志存储模块和日志查询模块;其中,
运行状态获取模块,用于获取运行在kubernetes集群上的应用的运行状态,并将获取到的运行状态发送至日志存储模块,其中,应用对应的运行节点将应用在运行过程中生成的应用日志进行本地存储,得到本地应用日志集合;
日志存储模块,用于根据运行状态确定运行完成的应用,并将运行完成的应用对应的本地存储的应用日志进行云存储,得到云应用日志集合;
日志查询模块,用于响应于用户发起的应用日志查询请求,根据应用日志查询请求中包括的应用编号,依次查询本地应用日志集合和云应用日志集合,以确定目标应用日志,并将目标应用日志发送至用户。
进一步地,应用为Spark应用,运行节点为多个,各运行节点将Spark应用在运行过程中生成的应用日志分别进行本地存储,得到各运行节点对应的本地应用日志集合。
根据本发明实施例的第三方面,提供了一种电子设备,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当一个或多个程序被一个或多个处理器执行,使得一个或多个处理器实现如上述任一种基于kubernetes集群的日志服务方法。
根据本发明实施例的第四方面,提供了一种计算机可读介质,其上存储有计算机程序,该程序被处理器执行时实现如上述任一种基于kubernetes集群的日志服务方法。
上述发明中的一个实施例具有如下优点或有益效果:因为采用获取运行在kubernetes集群上的应用的运行状态;其中,应用对应的运行节点将应用在运行过程中生成的应用日志进行本地存储,得到本地应用日志集合;根据运行状态确定运行完成的应用,并将运行完成的应用对应的本地存储的应用日志进行云存储,得到云应用日志集合;响应于用户发起的应用日志查询请求,根据应用日志查询请求中包括的应用编号,依次查询本地应用日志集合和云应用日志集合,以确定目标应用日志,并将目标应用日志发送至用户的技术手段,所以克服了现有的在kubernetes集群中运行应用的日志服务方法由于主要采用传统分布式日志解决方案,耗费了存储资源,日志查询效率低的技术问题,进而达到节约存储资源,简化日志查询流程,提高日志查询效率,提升用户体验的技术效果;进一步地,上述应用为Spark应用,解决了现有技术中Spark应用在kubernetes集群运行时,日志需要通过特定页面、搜索、查询、展示等组件进行查询并展示,日志查询流程复杂,导致用户体验差的技术问题,进而达到提升用户体验的技术效果。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明第一实施例提供的基于kubernetes集群的日志服务方法的主要流程的示意图;
图2是根据本发明第二实施例提供的基于kubernetes集群的日志服务方法的主要流程的示意图;
图3是图2所述方法对应的一具体实施方式的流程示意图;
图4是根据本发明实施例提供的基于kubernetes集群的日志服务装置的主要模块的示意图;
图5是本发明实施例可以应用于其中的示例性***架构图;
图6是适于用来实现本发明实施例的终端设备或服务器的计算机***的结构示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明第一实施例提供的基于kubernetes集群的日志服务方法的主要流程的示意图;本发明实施例的日志服务方法主要涉及对应用日志的收集(存储)、查询及展示。如图1所示,本发明实施例提供的基于kubernetes集群的日志服务方法主要包括:
步骤S101,获取运行在kubernetes集群上的应用的运行状态;其中,应用对应的运行节点将应用在运行过程中生成的应用日志进行本地存储,得到本地应用日志集合。
现有技术中,对于运行在kubernetes集群上应用的应用日志的收集,主要是通过ELK等传统的分布式日志采集方案,即重新搭建一套挂载多个组件(包含日志收集组件、日志存储管理组件、日志分析展示组件等,各组件之间架构复杂、耦合度较高)的日志服务***,如针对日志的存储,通过将运行在kubernetes集群上的应用生成的应用日志挂载在网络存储上进行存储,常在应用运行时导致应用启动延时,还使得应用启动失败率较高。
本发明实施中,针对应用对应的运行节点,挂载本地存储装置,使得运行节点能够将应用运行过程中生成的应用日志,直接进行本地存储。由于本地存储的速度较快,提高了日志存储效率,解决kubernetes集群多个应用同时运行导致的存储故障问题。
进一步地,根据本发明实施例,上述获取运行在kubernetes集群上的应用的运行状态的步骤包括:
定时从kubernetes集群中获取应用编号列表,其中,应用编号列表中各应用编号对应的运行状态均为正在kubernetes集群上运行。
在实际运行过程中,运行状态包括“正在运行”(running,运行中)、“运行重试中”、“运行失败”、“提交中”、“运行成功”(其中,后四种状态均表示在一定阶段或者全部运行完成),以及其他中间状态,并不仅仅是“正在运行”和“运行完成”两种状态,通过上述设置,获取运行状态为“正在运行”的应用编号列表,能够准确获取正在运行的应用,进而可以确定没有在运行的应用。有利于对“未处于运行状态”的应用对应的应用日志进行收集,有利于避免应用日志的丢失。
步骤S102,根据运行状态确定运行完成的应用,并将运行完成的应用对应的本地存储的应用日志进行云存储,得到云应用日志集合。
具体地,根据本发明实施例,上述根据运行状态确定运行完成的应用的步骤包括:
将应用编号列表和本地列表进行比对,对于应用编号列表与本地列表的补集内的应用,确定为运行完成的应用,其中,本地列表包括在kubernetes集群上申请运行的应用对应的应用编号。
本地列表中记载了在kubernetes集群提交申请运行的全部应用编号,通过将正在运行的应用对应的应用编号列表与本地列表进行比对,两者的补集为“未处于正在运行状态”的应用,即运行完成的应用,对于该类型应用所对应的应用日志,从本地存储装置中将其转移至云存储装置中,以便于后续进行日志查询。
进一步地,根据本发明实施例的一具体实施方式,还可以从本地列表中确定一个第一应用编号,查看接收到的“正在运行的应用对应的应用编号列表”中是否存在该第一应用编号,若存在,则表示该第一应用编号对应的应用处于“正在运行”状态;若不存在,则可将该第一应用编号在本地存储装置对应的应用日志进行云存储。
进一步地,根据本发明实施例,在将运行完成的应用对应的本地存储的应用日志进行云存储,得到本地应用日志集合的步骤之后,还包括:从本地应用日志集合中,将运行完成的应用对应的应用日志进行删除。
通过上述设置,本地存储装置内相应的应用日志进行云存储后,将本地存储装置内相应的应用日志进行删除,能够释放本地存储装置的存储空间,降低运行节点的负担,以避免由于本地存储空间不足,影响了运行节点的运行效率。
步骤S103,响应于用户发起的应用日志查询请求,根据应用日志查询请求中包括的应用编号,依次查询本地应用日志集合和云应用日志集合,以确定目标应用日志,并将目标应用日志发送至用户。
具体地,根据本发明实施例,应用日志查询请求中还可以包括应用运行时间(对于以运行时间作为存储文件命名的应用日志而言,可以提高查询到目标应用日志的效率和准确率)。
进一步地,根据本发明实施例,上述应用为Spark应用,运行节点为多个,各运行节点将应用在运行过程中生成的应用日志分别进行本地存储,得到各运行节点对应的本地应用日志集合。
根据本发明实施例,上述应用为分布式计算程序,优选为Spark应用。分布式计算程序涉及的计算量大,需要多个运行节点协同作用,更适用在kubernetes集群上运行。
Spark应用作为是一个流行的大数据计算框架,应用范围十分广泛,由于现有技术中,Spark应用运行在Yarn(另一种调度框架)集群中,但由于Yarn的扩展性不足,灵活性较低,资源利用率不高,不能很好的实现离线和在线的混合部署。通过Spark应用与kubernetes集群(管理云平台中多个主机上的容器化的应用)的结合,既可以统一调度框架、优化计算流程,又可以实现在线服务与离线服务的混合部署。
优选地,根据本发明实施例,应用日志查询请求中还包括运行节点编号;上述根据应用日志查询请求中包括的应用编号,依次查询本地应用日志集合和云应用日志集合,以确定目标应用日志的步骤还包括:
根据日志查询请求中包括的应用编号和运行节点编号,依次查询运行节点编号对应的进行本地应用日志集合和云应用日志集合,以确定目标应用日志。
具体地,应用启动后,会分配为多个运行节点分别分配task(任务),由该多个运行节点分别执行部分运行任务,在应用日志查询请求中进一步指定运行节点编号,可以获取该运行节点对应的目标应用日志,进而可根据该目标应用日志确定应用在该运行节点上的运行状况、资源使用状况等,实现对应用在各运行节点的运行健康状况的监控和排查。
根据本发明实施例的技术方案,因为采用获取运行在kubernetes集群上的应用的运行状态;其中,应用对应的运行节点将应用在运行过程中生成的应用日志进行本地存储,得到本地应用日志集合;根据运行状态确定运行完成的应用,并将运行完成的应用对应的本地存储的应用日志进行云存储,得到云应用日志集合;响应于用户发起的应用日志查询请求,根据应用日志查询请求中包括的应用编号,依次查询本地应用日志集合和云应用日志集合,以确定目标应用日志,并将目标应用日志发送至用户的技术手段,所以克服了现有的在kubernetes集群中运行应用的日志服务方法由于主要采用传统分布式日志解决方案,耗费了存储资源,日志查询效率低的技术问题,进而达到节约存储资源,简化日志查询流程,提高日志查询效率,提升用户体验的技术效果;进一步地,上述应用为Spark应用,解决了现有技术中Spark应用在kubernetes集群运行时,日志需要通过特定页面、搜索、查询、展示等组件进行查询并展示,日志查询流程复杂,导致用户体验差的技术问题,进而达到提升用户体验的技术效果。
图2是根据本发明第二实施例提供的基于kubernetes集群的日志服务方法的主要流程的示意图;本发明实施例的应用场景是运行在kubernetes集群的Spark的日志服务方法,如图2所示,主要包括:
步骤S201,定时从kubernetes集群中获取应用编号列表,其中,应用编号列表中各应用编号对应的运行状态均为正在kubernetes集群上运行。
具体地,Spark应用运行在kubernetes集群上,Spark应用在多个运行节点上运行,各运行节点将运行过程中生成的应用日志进行本地存储,得到本地应用日志集合。具体地,根据本发明实施例的一具体实施方式,如图3所示,Spark通过submit(提交程序)向kubernetes集群提交运行申请后,通过driver(驱动程序)为多个运行节点(对于Spark为计算节点,executor,计算程序)分别分配多个task(任务),由各运行节点执行task的处理(即运行应用),并将运行过程中产生的应用日志存储至本地磁盘(localvolume),即进行本地存储。kubernetes集群通过SparkTaskSvc(运行状态获取模块),用于查询应用(可以具体到各运行节点)的运行状态。
由于Spark在运行过程中存在多个中间状态,并不仅仅是“正在运行”和“运行完成”两种状态,通过上述设置,获取运行状态为“正在运行”的应用编号列表,能够准确获取正在运行的应用,进而可以确定没有在运行的应用。
进一步地,根据本发明实施例,上述应用不仅适用于Spark应用,对于分布式计算程序,由于其运行过程中涉及的计算量大,需要多个运行节点协同作用,均适用在kubernetes集群上运行。
Spark应用作为是一个流行的大数据计算框架,应用范围十分广泛。由于现有技术中,Spark应用运行在Yarn(另一种调度框架)集群中,但由于Yarn的扩展性不足,灵活性较低,资源利用率不高,不能很好的实现离线和在线的混合部署。通过Spark应用与kubernetes集群(管理云平台中多个主机上的容器化的应用)的结合,既可以统一调度框架、优化计算流程,又可以实现在线服务与离线服务的混合部署。
步骤S202,根据应用编号列表和第一应用编号,判断第一应用编号对应的应用是否运行完成。若是,即第一应用编号对应的应用运行完成,则执行步骤S203;若否,即第一应用编号对应的运行状态为“正在运行”,转到步骤S201。
进一步地,根据本发明实施例,还可直接利用本地列表与上述应用编号列表进行比对,对于应用编号列表与本地列表的交集内的应用,确定为未运行完成的应用;对于应用编号列表与本地列表的补集内的应用,确定为运行完成的应用。由于本地列表中记载了在kubernetes集群提交申请运行的全部应用编号,通过将正在运行的应用对应的应用编号列表与本地列表进行比对,两者的补集为“未处于正在运行状态”的应用,对于该类型应用所对应的应用日志,从本地存储装置中将其转移至云存储装置中,以便于后续进行日志查询。
步骤S203,确定第一应用编号在本地存储装置对应的应用日志,对其进行云存储,并将本地存储装置中相应的应用日志进行删除。
通过上述设置,本地存储装置内相应的应用日志进行云存储后,将本地存储装置内的相应应用日志进行删除,能够释放本地存储装置的存储空间,降低运行节点的负担,以避免由于本地存储空间不足,影响了运行节点的运行效率。具体地,根据本发明实施例的一具体实施方式,通过设置cleaner(清洗模块,相当于后文中的日志存储模块,可在kubernetes集群的每个node节点中进行设置),cleaner(日志存储模块)从SparkTaskSvc(运行状态获取模块)处获取运行状态,并将“运行完成”的应用对应的应用日志进行云存储(存储至CS,cloud storage,云存储),同时,将本地磁盘(localvolume)中的相应应用日志进行删除。
步骤S204,响应于用户发起的应用日志查询请求,根据日志查询请求中包括的应用编号和运行节点编号,依次查询运行节点编号对应的进行本地应用日志集合和云应用日志集合,以确定目标应用日志。
具体地,根据本发明实施例,应用日志查询请求中还可以包括应用运行时间(对于以运行时间作为存储文件命名的应用日志而言,可以提高查询到目标应用日志的效率和准确率)。
通过上述设置,可以获取该运行节点对应的目标应用日志,进而可根据该目标应用日志确定应用在该运行节点上的运行状况、资源使用状况等,实现对应用在各运行节点的运行健康状况的监控和排查。具体地,如图3所示,根据本发明实施例的一具体实施方式,通过设置log service(日志查询模块,提供日志查询服务),其接收到用户发起的日志查询请求后,根据日志查询请求中指示的信息(包括的应用编号和运行节点编号),依次查询本地磁盘和云存储装置,以确定目标应用日志。
步骤S205,将目标应用日志发送至用户。
具体地,如图3所示,根据本发明实施例的一具体实施方式,用户可以通过Spark应用的SparkUI或HistoryServer(历史服务程序)发起日志查询请求(HistoryServer和SparkUI页面提供了一套可供用户使用的web ui用户界面(该界面提供了各运行节点的日志查询链接),用于监控Spark应用的运行状态和kubernetes集群的资源消耗等,一般地,针对运行中的应用任务使用SparkUI,针对已完成的应用任务使用Histo ryServer)。用户可通过页面发起包括应用运行时间、应用编号、运行节点编号的日志查询请求至log service(日志查询模块),接收log ser vice返回的目标应用日志,最终SparkUI或HistoryServer页面向用户展示该目标应用日志。通过上述设置,应用日志的查询过程对用户是隐藏的,保留了用户以往在Yarn等调度框架下,通过SparkUI或HistoryServe r页面查看应用日志的习惯,提升了用户体验。
根据本发明实施例的技术方案,因为采用获取运行在kubernetes集群上的应用的运行状态;其中,应用对应的运行节点将应用在运行过程中生成的应用日志进行本地存储,得到本地应用日志集合;根据运行状态确定运行完成的应用,并将运行完成的应用对应的本地存储的应用日志进行云存储,得到云应用日志集合;响应于用户发起的应用日志查询请求,根据应用日志查询请求中包括的应用编号,依次查询本地应用日志集合和云应用日志集合,以确定目标应用日志,并将目标应用日志发送至用户的技术手段,所以克服了现有的在kubernetes集群中运行应用的日志服务方法由于主要采用传统分布式日志解决方案,耗费了存储资源,日志查询效率低的技术问题,进而达到节约存储资源,简化日志查询流程,提高日志查询效率,提升用户体验的技术效果;进一步地,上述应用为Spark应用,解决了现有技术中Spark应用在kubernetes集群运行时,日志需要通过特定页面、搜索、查询、展示等组件进行查询并展示,日志查询流程复杂,导致用户体验差的技术问题,进而达到提升用户体验的技术效果。
图4是根据本发明实施例提供的基于kubernetes集群的日志服务装置的主要模块的示意图;如图4所示,本发明实施例提供的基于kuber netes集群的日志服务装置400主要包括:
运行状态获取模块401,用于获取运行在kubernetes集群上的应用的运行状态;其中,应用对应的运行节点将应用在运行过程中生成的应用日志进行本地存储,得到本地应用日志集合。
本发明实施中,针对应用对应的运行节点,挂载本地存储装置,使得运行节点能够将应用运行过程中生成的应用日志,直接进行本地存储。由于本地存储的速度较快,提高了日志存储效率,解决kubernet es集群多个应用同时运行导致的存储故障问题。
进一步地,根据本发明实施例,上述运行状态获取模块401还用于:定时从kubernetes集群中获取应用编号列表,其中,应用编号列表中各应用编号对应的运行状态均为正在kubernetes集群上运行。
在实际运行过程中,运行状态并不仅仅是“正在运行”和“运行成功”两种状态,通过上述设置,获取运行状态为“正在运行”的应用编号列表,能够准确获取正在运行的应用,进而可以确定没有在运行的应用。有利于对“未处于运行状态”的应用对应的应用日志进行收集,有利于避免应用日志的丢失。
日志存储模块402,用于根据运行状态确定运行完成的应用,并将运行完成的应用对应的本地存储的应用日志进行云存储,得到云应用日志集合。
具体地,根据本发明实施例,上述日志存储模块402还用于:
将应用编号列表和本地列表进行比对,对于应用编号列表与本地列表的补集内的应用,确定为运行完成的应用,其中,本地列表包括在kubernetes集群上申请运行的应用对应的应用编号。
本地列表中记载了在kubernetes集群提交申请运行的全部应用编号,通过将正在运行的应用对应的应用编号列表与本地列表进行比对,两者的补集为“未处于正在运行状态”的应用,对于该类型应用所对应的应用日志,从本地存储装置中将其转移至云存储装置中,以便于后续进行日志查询。
进一步地,根据本发明实施例,在将运行完成的应用对应的本地存储的应用日志进行云存储,得到本地应用日志集合的步骤之后,上述日志存储模块402还用于:
从本地应用日志集合中,将运行完成的应用对应的应用日志进行删除。
通过上述设置,本地存储装置内相应的应用日志进行云存储后,将本地存储装置内相应的应用日志进行删除,能够释放本地存储装置的存储空间,降低运行节点的负担,以避免由于本地存储空间不足,影响了运行节点的运行效率。
日志查询模块403,用于响应于用户发起的应用日志查询请求,根据应用日志查询请求中包括的应用编号,依次查询本地应用日志集合和云应用日志集合,以确定目标应用日志,并将目标应用日志发送至用户。
具体地,根据本发明实施例,应用日志查询请求中还可以包括应用运行时间(对于以运行时间作为存储文件命名的应用日志而言,可以提高查询到目标应用日志的效率和准确率)。
进一步地,根据本发明实施例,上述应用为Spark应用,运行节点为多个,各运行节点将应用在运行过程中生成的应用日志分别进行本地存储,得到各运行节点对应的本地应用日志集合。
根据本发明实施例,上述应用为分布式计算程序,优选为Spark应用。分布式计算程序设计的计算量大,需要多个运行节点协同作用,更适用在kubernetes集群上运行。
Spark应用作为是一个流行的大数据计算框架,应用范围十分广泛,现有技术中,Spark应用运行在Yarn(另一种调度框架)集群中,由于Yarn的扩展性不足,灵活性较低,资源利用率不高,不能很好的实现离线和在线的混合部署。通过Spark应用与kubernetes集群(管理云平台中多个主机上的容器化的应用)的结合,既可以统一调度框架、优化计算流程,又可以实现在线服务与离线服务的混合部署。
优选地,根据本发明实施例,应用日志查询请求中还包括运行节点编号;上述日志查询模块403还用于:
根据日志查询请求中包括的应用编号和运行节点编号,依次查询运行节点编号对应的进行本地应用日志集合和云应用日志集合,以确定目标应用日志。
具体地,应用启动后,会分配为多个运行节点分别分配task(任务),由该多个运行节点分别执行部分运行任务,在应用日志查询请求中进一步指定运行节点编号,可以获取该运行节点对应的目标应用日志,进而可根据该目标应用日志确定应用在该运行节点上的运行状况、资源使用状况等,实现对应用在各运行节点的运行健康状况的监控和排查。
根据本发明实施例的技术方案,因为采用获取运行在kubernetes集群上的应用的运行状态;其中,应用对应的运行节点将应用在运行过程中生成的应用日志进行本地存储,得到本地应用日志集合;根据运行状态确定运行完成的应用,并将运行完成的应用对应的本地存储的应用日志进行云存储,得到云应用日志集合;响应于用户发起的应用日志查询请求,根据应用日志查询请求中包括的应用编号,依次查询本地应用日志集合和云应用日志集合,以确定目标应用日志,并将目标应用日志发送至用户的技术手段,所以克服了现有的在kubernetes集群中运行应用的日志服务方法由于主要采用传统分布式日志解决方案,耗费了存储资源,日志查询效率低的技术问题,进而达到节约存储资源,简化日志查询流程,提高日志查询效率,提升用户体验的技术效果;进一步地,上述应用为Spark应用,解决了现有技术中Spark应用在kubernetes集群运行时,日志需要通过特定页面、搜索、查询、展示等组件进行查询并展示,日志查询流程复杂,导致用户体验差的技术问题,进而达到提升用户体验的技术效果。
图5示出了可以应用本发明实施例的基于kubernetes集群的日志服务方法或基于kubernetes集群的日志服务装置的示例性***架构500。
如图5所示,***架构500可以包括终端设备501、502、503,网络504和服务器505(此架构仅仅是示例,具体架构中包含的组件可以根据申请具体情况调整)。网络504用以在终端设备501、502、503和服务器505之间提供通信链路的介质。网络504可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备501、502、503通过网络504与服务器505交互,以接收或发送消息等。终端设备501、502、503上可以安装有各种通讯客户端应用,例如大数据计算类应用、数据处理类应用、日志服务类应用等(仅为示例)。
终端设备501、502、503可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器505可以是提供各种服务的服务器,例如对用户利用终端设备501、502、503所浏览的购物类网站提供支持的后台管理服务器(仅为示例)。后台管理服务器可以对接收到的应用日志查询请求等数据进行分析等处理,并将处理结果(例如目标应用日志--仅为示例)反馈给终端设备。
需要说明的是,本发明实施例所提供的基于kubernetes集群的日志服务方法一般由服务器505执行,相应地,基于kubernetes集群的日志服务装置一般设置于服务器505中。
应该理解,图5中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
下面参考图6,其示出了适于用来实现本发明实施例的终端设备或服务器的计算机***600的结构示意图。图6示出的终端设备或服务器仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图6所示,计算机***600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM)603中的程序而执行各种适当的动作和处理。在RAM 603中,还存储有***600操作所需的各种程序和数据。CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装入存储部分608。
特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括运行状态获取模块、日志存储模块和日志查询模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,运行状态获取模块还可以被描述为“用于获取运行在kubernetes集群上的应用的运行状态,并将获取到的运行状态发送至日志存储模块,其中,应用对应的运行节点将应用在运行过程中生成的应用日志进行本地存储,得到本地应用日志集合的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:获取运行在kubernetes集群上的应用的运行状态;其中,应用对应的运行节点将应用在运行过程中生成的应用日志进行本地存储,得到本地应用日志集合;根据运行状态确定运行完成的应用,并将运行完成的应用对应的本地存储的应用日志进行云存储,得到云应用日志集合;响应于用户发起的应用日志查询请求,根据应用日志查询请求中包括的应用编号,依次查询本地应用日志集合和云应用日志集合,以确定目标应用日志,并将目标应用日志发送至用户。
根据本发明实施例的技术方案,因为采用获取运行在kubernetes集群上的应用的运行状态;其中,应用对应的运行节点将应用在运行过程中生成的应用日志进行本地存储,得到本地应用日志集合;根据运行状态确定运行完成的应用,并将运行完成的应用对应的本地存储的应用日志进行云存储,得到云应用日志集合;响应于用户发起的应用日志查询请求,根据应用日志查询请求中包括的应用编号,依次查询本地应用日志集合和云应用日志集合,以确定目标应用日志,并将目标应用日志发送至用户的技术手段,所以克服了现有的在kubernetes集群中运行应用的日志服务方法由于主要采用传统分布式日志解决方案,耗费了存储资源,日志查询效率低的技术问题,进而达到节约存储资源,简化日志查询流程,提高日志查询效率,提升用户体验的技术效果;进一步地,上述应用为Spark应用,解决了现有技术中Spark应用在kubernetes集群运行时,日志需要通过特定页面、搜索、查询、展示等组件进行查询并展示,日志查询流程复杂,导致用户体验差的技术问题,进而达到提升用户体验的技术效果。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

Claims (10)

1.一种基于kubernetes集群的日志服务方法,其特征在于,包括:
获取运行在所述kubernetes集群上的应用的运行状态;其中,所述应用对应的运行节点将所述应用在运行过程中生成的应用日志进行本地存储,得到本地应用日志集合;
根据所述运行状态确定运行完成的应用,并将所述运行完成的应用对应的本地存储的应用日志进行云存储,得到云应用日志集合;
响应于用户发起的应用日志查询请求,根据所述应用日志查询请求中包括的应用编号,依次查询所述本地应用日志集合和所述云应用日志集合,以确定目标应用日志,并将所述目标应用日志发送至所述用户。
2.根据权利要求1所述的基于kubernetes集群的日志服务方法,其特征在于,所述获取运行在所述kubernetes集群上的应用的运行状态的步骤包括:
定时从所述kubernetes集群中获取应用编号列表,其中,所述应用编号列表中各应用编号对应的运行状态均为正在所述kubernetes集群上运行。
3.根据权利要求2所述的基于kubernetes集群的日志服务方法,其特征在于,所述根据运行状态确定运行完成的应用的步骤包括:
将所述应用编号列表和本地列表进行比对,对于所述应用编号列表与所述本地列表的补集内的应用,确定为运行完成的应用,其中,所述本地列表包括在所述kubernetes集群上申请运行的应用对应的应用编号。
4.根据权利要求1所述的基于kubernetes集群的日志服务方法,其特征在于,在所述将运行完成的应用对应的本地存储的应用日志进行云存储,得到本地应用日志集合的步骤之后,还包括:
从所述本地应用日志集合中,将所述运行完成的应用对应的应用日志进行删除。
5.根据权利要求1所述的基于kubernetes集群的日志服务方法,其特征在于,所述应用为Spark应用,所述运行节点为多个,各运行节点将所述Spark应用在运行过程中生成的应用日志分别进行本地存储,得到各运行节点对应的本地应用日志集合。
6.根据权利要求5所述的基于kubernetes集群的日志服务方法,其特征在于,所述应用日志查询请求中还包括运行节点编号;
所述根据所述应用日志查询请求中包括的应用编号,依次查询所述本地应用日志集合和所述云应用日志集合,以确定目标应用日志的步骤还包括:
根据所述日志查询请求中包括的应用编号和运行节点编号,依次查询所述运行节点编号对应的进行本地应用日志集合和所述云应用日志集合,以确定目标应用日志。
7.一种基于kubernetes集群的日志服务装置,其特征在于,包括运行状态获取模块、日志存储模块和日志查询模块;其中,
所述运行状态获取模块,用于获取运行在所述kubernetes集群上的应用的运行状态,并将获取到的运行状态发送至所述日志存储模块,其中,所述应用对应的运行节点将所述应用在运行过程中生成的应用日志进行本地存储,得到本地应用日志集合;
所述日志存储模块,用于根据所述运行状态确定运行完成的应用,并将所述运行完成的应用对应的本地存储的应用日志进行云存储,得到云应用日志集合;
所述日志查询模块,用于响应于用户发起的应用日志查询请求,根据所述应用日志查询请求中包括的应用编号,依次查询所述本地应用日志集合和所述云应用日志集合,以确定目标应用日志,并将所述目标应用日志发送至所述用户。
8.根据权利要求7所述的基于kubernetes集群的日志服务装置,其特征在于,所述应用为Spark应用,所述运行节点为多个,各运行节点将所述Spark应用在运行过程中生成的应用日志分别进行本地存储,得到各运行节点对应的本地应用日志集合。
9.一种电子设备,其特征在于,包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-6中任一所述的方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-6中任一所述的方法。
CN202011103286.8A 2020-10-15 2020-10-15 一种基于kubernetes集群的日志服务方法和装置 Pending CN113760638A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011103286.8A CN113760638A (zh) 2020-10-15 2020-10-15 一种基于kubernetes集群的日志服务方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011103286.8A CN113760638A (zh) 2020-10-15 2020-10-15 一种基于kubernetes集群的日志服务方法和装置

Publications (1)

Publication Number Publication Date
CN113760638A true CN113760638A (zh) 2021-12-07

Family

ID=78786036

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011103286.8A Pending CN113760638A (zh) 2020-10-15 2020-10-15 一种基于kubernetes集群的日志服务方法和装置

Country Status (1)

Country Link
CN (1) CN113760638A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500254A (zh) * 2022-02-16 2022-05-13 平安科技(深圳)有限公司 历史日志收集方法、装置与存储介质
WO2023226197A1 (zh) * 2022-05-26 2023-11-30 深圳前海环融联易信息科技服务有限公司 基于kubernetes的云原生存储方法、装置、设备及介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108153532A (zh) * 2017-12-26 2018-06-12 江苏润和软件股份有限公司 一种基于日志挖掘的云应用部署方法
CN109245931A (zh) * 2018-09-19 2019-01-18 四川长虹电器股份有限公司 基于kubernetes的容器云平台的日志管理和监控报警的实现方法
CN110311817A (zh) * 2019-06-28 2019-10-08 四川长虹电器股份有限公司 用于Kubernetes集群的容器日志处理***
WO2020055905A1 (en) * 2018-09-13 2020-03-19 Pivotal Software, Inc. Logging of events in a computing system hosting multiple applications
CN110955578A (zh) * 2019-11-26 2020-04-03 深圳市信联征信有限公司 基于宿主机的日志收集方法、装置、计算机设备及存储介质
CN111104368A (zh) * 2019-12-16 2020-05-05 浪潮云信息技术有限公司 一种实现容器存储扩容的方法及***

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108153532A (zh) * 2017-12-26 2018-06-12 江苏润和软件股份有限公司 一种基于日志挖掘的云应用部署方法
WO2020055905A1 (en) * 2018-09-13 2020-03-19 Pivotal Software, Inc. Logging of events in a computing system hosting multiple applications
CN109245931A (zh) * 2018-09-19 2019-01-18 四川长虹电器股份有限公司 基于kubernetes的容器云平台的日志管理和监控报警的实现方法
CN110311817A (zh) * 2019-06-28 2019-10-08 四川长虹电器股份有限公司 用于Kubernetes集群的容器日志处理***
CN110955578A (zh) * 2019-11-26 2020-04-03 深圳市信联征信有限公司 基于宿主机的日志收集方法、装置、计算机设备及存储介质
CN111104368A (zh) * 2019-12-16 2020-05-05 浪潮云信息技术有限公司 一种实现容器存储扩容的方法及***

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
翟雅荣;于金刚;: "基于Filebeat自动收集Kubernetes日志的分析***", 计算机***应用, no. 09, 15 September 2018 (2018-09-15) *
郭建磊;董蕾;邱忠杰;: "一种工业云PaaS平台统一日志服务***", 信息技术与信息化, no. 03, 28 March 2020 (2020-03-28) *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500254A (zh) * 2022-02-16 2022-05-13 平安科技(深圳)有限公司 历史日志收集方法、装置与存储介质
CN114500254B (zh) * 2022-02-16 2023-08-22 平安科技(深圳)有限公司 历史日志收集方法、装置与存储介质
WO2023226197A1 (zh) * 2022-05-26 2023-11-30 深圳前海环融联易信息科技服务有限公司 基于kubernetes的云原生存储方法、装置、设备及介质

Similar Documents

Publication Publication Date Title
US10171377B2 (en) Orchestrating computing resources between different computing environments
CN107590001B (zh) 负载均衡方法及装置、存储介质、电子设备
CN111897638B (zh) 分布式任务调度方法及***
CN109245908B (zh) 一种主从集群切换的方法和装置
CN109117252B (zh) 基于容器的任务处理的方法、***及容器集群管理***
CN113934464A (zh) Linux***中启动安卓应用的方法、装置和电子设备
CN115373835A (zh) Flink集群的任务资源调整方法、装置及电子设备
CN113760638A (zh) 一种基于kubernetes集群的日志服务方法和装置
CN111488492A (zh) 用于检索图数据库的方法和装置
CN115640110A (zh) 分布式云计算***调度方法和装置
CN112181942A (zh) 时序数据库***和数据处理方法及装置
CN115454972A (zh) 一种数据处理方法、装置、设备及存储介质
CN112398669A (zh) 一种Hadoop部署方法和装置
CN114116682A (zh) 卫星遥测数据的迁移方法、装置、***、设备及介质
CN111782341B (zh) 用于管理集群的方法和装置
CN113672671A (zh) 一种实现数据加工的方法和装置
CN111767126A (zh) 分布式批量处理的***和方法
CN116185578A (zh) 计算任务的调度方法和计算任务的执行方法
CN115454666A (zh) 消息队列集群间的数据同步方法和装置
JP2021118004A (ja) グラフ計算の処理方法、装置、電子機器及び記憶媒体
CN114647686A (zh) 数据处理方法、装置、设备、介质及产品
CN110765136A (zh) 标识符的管理方法、装置、介质及设备
CN111078736A (zh) 一种数据聚合处理方法、装置、终端及存储介质
CN114268558B (zh) 监控图的生成方法、装置、设备、介质
WO2023193609A1 (en) Selective privileged container augmentation

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