一种容器日志启动的方法、系统、设备及介质技术方案

技术编号:25755941 阅读:30 留言:0更新日期:2020-09-25 21:05
本发明专利技术公开了一种容器日志启动的方法、系统、设备和存储介质,方法包括以下步骤:响应于容器日志启动,加载对应的远程日志驱动器;响应于加载远程日志驱动器出现异常,获取异常的原因并基于原因确定采用本地驱动或恢复驱动;响应于采用本地驱动,中断远程驱动器的加载,调用本地日志驱动器继续启动容器日志;响应于采用恢复驱动,将容器日志缓存到本地,并向远程日志驱动器发送连接请求,以及基于远程日志驱动器的反馈信息将本地缓存的容器日志发送给远程日志驱动器。本发明专利技术提出的方案通过对加载日志驱动器过程中可能的异常信息进行判断,采用不同的替代方式,从而使得容器在启动时不会因远程日志驱动器连接失败而阻塞。

【技术实现步骤摘要】
一种容器日志启动的方法、系统、设备及介质
本专利技术涉及容器领域,更具体地,特别是指一种容器日志启动的方法、系统、计算机设备及可读介质。
技术介绍
在云计算时代,大量应用服务通过容器化的方式进行部署和运行。容器运行时需要对外输出服务运行过程的各种日志信息,这些日志输出是通过容器的日志驱动器实现的。Docker是当前最为流行的开源应用容器引擎,其默认使用的本地日志驱动器将容器日志输出到容器所在服务器的本地存储上。本地日志驱动器不便于日志的统一管理和进一步的收集分析,因此Docker也提供了众多的远程日志驱动器,可以通过远程日志驱动器对容器日志实施多样化的管理。但目前的情况是,如果远程日志驱动器出现网络波动或宕机的问题,会导致容器出现无法启动的严重故障,这对于用户来说是不可接受的。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提出一种容器日志启动的方法、系统、计算机设备及计算机可读存储介质,通过对加载日志驱动器过程中可能的异常信息进行判断,采用不同的替代方式,从而使得容器在启动时不会因远程日志驱动器连接失败而阻塞。基于上述目的,本专利技术实施例的一方面提供了一种容器日志启动的方法,包括如下步骤:响应于容器日志启动,加载对应的远程日志驱动器;响应于加载所述远程日志驱动器出现异常,获取异常的原因并基于所述原因确定采用本地驱动或恢复驱动;响应于采用本地驱动,中断所述远程驱动器的加载,调用本地日志驱动器继续启动容器日志;响应于采用恢复驱动,将容器日志缓存到本地,并向所述远程日志驱动器发送连接请求,以及基于所述远程日志驱动器的反馈信息将本地缓存的容器日志发送给所述远程日志驱动器。在一些实施方式中,所述向所述远程日志驱动器发送连接请求包括:经过固定间隔时间或递增间隔时间向所述远程日志驱动器发送连接请求。在一些实施方式中,还包括:根据发送连接请求的方式设置向所述远程日志驱动器发送连接请求的阈值,并判断当前发送连接请求的方式下向所述远程日志驱动器发送连接请求的次数是否达到对应的阈值。在一些实施方式中,还包括:响应于向所述远程日志驱动器发送连接请求的次数达到对应的阈值,停止向所述远程日志驱动器发送连接请求,并调用本地日志驱动器继续启动容器日志。本专利技术实施例的另一方面,还提供了一种容器日志启动系统,包括:加载模块,配置用于响应于容器日志启动,加载对应的远程日志驱动器;采集模块,配置用于响应于加载所述远程日志驱动器出现异常,获取异常的原因并基于所述原因确定采用本地驱动或恢复驱动;本地模块,配置用于响应于采用本地驱动,中断所述远程驱动器的加载,调用本地日志驱动器继续启动容器日志;恢复模块,配置用于响应于采用恢复驱动,将容器日志缓存到本地,并向所述远程日志驱动器发送连接请求,以及基于所述远程日志驱动器的反馈信息将本地缓存的容器日志发送给所述远程日志驱动器。在一些实施方式中,所述恢复模块还配置用于:经过固定间隔时间或递增间隔时间向所述远程日志驱动器发送连接请求。在一些实施方式中,还包括:判断模块,配置用于根据发送连接请求的方式设置向所述远程日志驱动器发送连接请求的阈值,并判断当前发送连接请求的方式下向所述远程日志驱动器发送连接请求的次数是否达到对应的阈值。在一些实施方式中,还包括:执行模块,配置用于响应于向所述远程日志驱动器发送连接请求的次数达到对应的阈值,停止向所述远程日志驱动器发送连接请求,并调用本地日志驱动器继续启动容器日志。本专利技术实施例的又一方面,还提供了一种计算机设备,包括:至少一个处理器;以及存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现如上方法的步骤。本专利技术实施例的再一方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有被处理器执行时实现如上方法步骤的计算机程序。本专利技术具有以下有益技术效果:通过对加载日志驱动器过程中可能的异常信息进行判断,采用不同的替代方式,从而使得容器在启动时不会因远程日志驱动器连接失败而阻塞。附图说明为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。图1为本专利技术提供的容器日志启动的方法的实施例的示意图;图2为本专利技术提供的容器日志启动的计算机设备的实施例的硬件结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本专利技术实施例进一步详细说明。需要说明的是,本专利技术实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本专利技术实施例的限定,后续实施例对此不再一一说明。基于上述目的,本专利技术实施例的第一个方面,提出了一种容器日志启动的方法的实施例。图2示出的是本专利技术提供的容器日志启动的方法的实施例的示意图。如图2所示,本专利技术实施例包括如下步骤:S1、响应于容器日志启动,加载对应的远程日志驱动器;S2、响应于加载远程日志驱动器出现异常,获取异常的原因并基于原因确定采用本地驱动或恢复驱动;S3、响应于采用本地驱动,中断远程驱动器的加载,调用本地日志驱动器继续启动容器日志;以及S4、响应于采用恢复驱动,将容器日志缓存到本地,并向远程日志驱动器发送连接请求,以及基于远程日志驱动器的反馈信息将本地缓存的容器日志发送给远程日志驱动器。一个容器包含了程序的完整运行时环境——除了应用程序本身之外,这个应用所需的全部依赖、类库、其他二进制文件、配置文件等,都统一被打入了一个称为容器镜像的包中。一般情况下,“容器”都是指“Linux容器”。Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化。在本专利技术实施例中,远程日志驱动器特指Docker提供的具有远程服务节点的日志驱动器(logdriver),比如rsyslog或者fluentd等,顾名思义,这类远程日志驱动器一般都有一个远程的服务器用于接收和处理发给它的日志消息。本专利技术实施例可以实现当远程日志服务器出现连接故障时,容器的启动不会被阻止,而是给予相应的警告信息并正常启动,同时将容器日志转入缓存队列,或者直接将容器日志写到本地存储文件;进一步地,可以通过一定的策略检查远程日志服务器的运行状态,在可用的时机重新将容器日志发送到原定的远程日志服务器中。本专利技术实施例可以解决因远程日志驱动器连接失败而导致的阻塞容器启动的问题,有效地提高容器服务的可用性和日志驱动器的健壮性。具体的,响应于容器日志启动,加载对应的远程日志驱动器。用户启动容器时可以根据用户的配置文件或配置项加载指定的远程日本文档来自技高网...

【技术保护点】
1.一种容器日志启动的方法,其特征在于,包括以下步骤:/n响应于容器日志启动,加载对应的远程日志驱动器;/n响应于加载所述远程日志驱动器出现异常,获取异常的原因并基于所述原因确定采用本地驱动或恢复驱动;/n响应于采用本地驱动,中断所述远程驱动器的加载,调用本地日志驱动器继续启动容器日志;/n响应于采用恢复驱动,将容器日志缓存到本地,并向所述远程日志驱动器发送连接请求,以及基于所述远程日志驱动器的反馈信息将本地缓存的容器日志发送给所述远程日志驱动器。/n

【技术特征摘要】
1.一种容器日志启动的方法,其特征在于,包括以下步骤:
响应于容器日志启动,加载对应的远程日志驱动器;
响应于加载所述远程日志驱动器出现异常,获取异常的原因并基于所述原因确定采用本地驱动或恢复驱动;
响应于采用本地驱动,中断所述远程驱动器的加载,调用本地日志驱动器继续启动容器日志;
响应于采用恢复驱动,将容器日志缓存到本地,并向所述远程日志驱动器发送连接请求,以及基于所述远程日志驱动器的反馈信息将本地缓存的容器日志发送给所述远程日志驱动器。


2.根据权利要求1所述的方法,其特征在于,所述向所述远程日志驱动器发送连接请求包括:
经过固定间隔时间或递增间隔时间向所述远程日志驱动器发送连接请求。


3.根据权利要求1所述的方法,其特征在,还包括:
根据发送连接请求的方式设置向所述远程日志驱动器发送连接请求的阈值,并判断当前发送连接请求的方式下向所述远程日志驱动器发送连接请求的次数是否达到对应的阈值。


4.根据权利要求3所述的方法,其特征在于,还包括:
响应于向所述远程日志驱动器发送连接请求的次数达到对应的阈值,停止向所述远程日志驱动器发送连接请求,并调用本地日志驱动器继续启动容器日志。


5.一种容器日志启动的系统,其特征在于,包括:
加载模块,配置用于响应于容器日志启动,加载对应的远程日志驱动器;
采集模块,配置用于响应于加载所述远程日志驱动器出现异常,获取异常的原因并基于所述原因确定采用本地驱动或恢...

【专利技术属性】
技术研发人员:秦朝阳
申请(专利权)人:苏州浪潮智能科技有限公司
类型:发明
国别省市:江苏;32

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

1