Kafka集群故障恢复方法、装置、设备及介质制造方法及图纸

技术编号:25890123 阅读:19 留言:0更新日期:2020-10-09 23:30
本申请提供一种Kafka集群故障恢复方法、装置、设备及介质,该方法包括:根据预设的配置文件利用Kubernetes平台创建备份的本地存储卷;获取Kubernetes集群内所有Kafka Pod名称、所述Kafka Pod对应节点以及Kafka Pod所使用的PVC;检测每个Kafka Pod所属节点和Kafka Pod关联的本地存储卷的状态生成状态异常的节点或/和状态异常的本地存储卷;解除状态异常的Kafka Pod所使用的PVC与关联的本地存储卷之间的绑定关系,并与备份的本地存储卷建立绑定关系;将状态异常的节点或/和状态异常的本地存储卷的数据同步到备份的本地存储卷。在Kubernetes平台内设置自动检测Kafka集群故障和自动恢复Kafka集群故障的机制,一方面,提升了Kafka集群使用LocalPV存储系统可靠性和稳定性;另一方面,也提高了维护效率,节省了维护成本。

【技术实现步骤摘要】
Kafka集群故障恢复方法、装置、设备及介质
本申请涉及计算机领域,特别是涉及一种基于Kubernetes平台LocalPV的Kafka集群故障恢复方法、装置、设备及介质。
技术介绍
Kafka是由Apache软件基金会开发的一个开源消息处理平台,由Scala和Java编写。Kafka是一种高吞吐量的分布式发布/订阅消息系统,能够支撑海量数据的数据传递。Kafka将信息持久化到磁盘中,其优良的性能和数据稳定性,使Kafka得到了广泛的使用。Kubernetes平台是用于自动部署、扩展和管理容器化应用程序的开源系统。以Pod的形式运行在Kubernetes平台中的Kafka集群,其数据持久化在LocalPV中。LocalPV(LocalPersistentVolume)即本地存储卷,是Kubernetes平台的组件,其本质是使用节点的本地存储。相比于共享存储提升数据存储的性能,使用LocalPV意味着一旦节点或者磁盘发生异常,使用该LocalPV的KafkaPod也会异常。KafkaPod异常必然影响Kafka集群的可用性、集群的性能以及降低集群的可靠性,甚至会出现数据丢失的严重后果。因此,亟需一种基于Kubernetes平台针对localPV异常的自动恢复机制来解决上述问题。
技术实现思路
鉴于以上所述现有技术的缺点,本申请的目的在于提供一种Kafka集群故障恢复方法、装置、设备及介质,用于解决现有技术中Kubernetes平台内LocalPV异常导致Kafka集群问题。为实现上述目的及其他相关目的,本申请提供一种Kafka集群故障恢复方法,包括:根据预设的配置文件利用Kubernetes平台创建备份的本地存储卷;获取Kubernetes集群内所有KafkaPod名称、所述KafkaPod对应节点以及所述KafkaPod所使用的PVC;检测每个所述KafkaPod所属节点和所述KafkaPod关联的本地存储卷的状态生成状态异常的节点或/和状态异常的本地存储卷;解除状态异常的所述KafkaPod所使用的PVC与关联的本地存储卷之间的绑定关系,并与备份的本地存储卷建立绑定关系;将状态异常的节点或/和状态异常的本地存储卷的数据同步到备份的本地存储卷用以恢复Kafka集群故障。在本申请的另一目的在于提供一种Kafka集群故障恢复装置,包括:辅助模块,用于根据预设的配置文件利用Kubernetes平台创建备份的本地存储卷;查询模块,用于获取Kubernetes集群内所有KafkaPod名称、所述KafkaPod对应节点以及所述KafkaPod所使用的PVC;检测模块,用于检测每个所述KafkaPod所属节点和所述KafkaPod关联的本地存储卷的状态生成状态异常的节点或/和状态异常的本地存储卷;控制模块,用于解除状态异常的所述KafkaPod所使用的PVC与关联的本地存储卷之间的绑定关系,并与备份的本地存储卷建立绑定关系;数据恢复模块,用于将状态异常的节点或/和状态异常的本地存储卷的数据同步到备份的本地存储卷用以恢复Kafka集群故障。在本申请的另一目的在于提供一种电子设备,包括:一个或多个处理装置;存储器,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置执行所述Kafka集群故障恢复方法。在本申请的还一目的在于提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序用于使所述计算机执行所述Kafka集群故障恢复方法。如上所述,本申请的Kafka集群故障恢复方法、装置、设备及介质,具有以下有益效果:本申请在Kubernetes平台内设置自动检测Kafka集群故障和自动恢复Kafka集群故障的机制,一方面,提升了Kafka集群使用LocalPV存储系统可靠性和稳定性;另一方面,也提高了维护效率,节省了维护成本。附图说明图1显示为本申请提供的一种Kafka集群故障恢复方法流程图;图2显示为本申请提供的一种Kafka集群故障恢复方法另一流程图;图3显示为本申请提供的一种Kafka集群故障恢复方法完整流程图;图4显示为本申请提供的一种Kafka集群故障恢复原理框架图;图5显示为本申请提供的一种Kafka集群故障恢复装置结构框图;图6显示为本申请一实施例提供的一种Kafka集群正常状态图;图7显示为本申请一实施例提供的一种Kafka集群节点故障状态图;图8显示本申请一实施例提供的一种Kafka集群节点恢复后的状态图;图9显示为本申请另一实施例提供的一种Kafka集群正常状态图;图10显示为本申请另一实施例提供的一种Kafka集群localpv故障状态图;图11显示本申请另一实施例提供的一种Kafka集群localpv恢复后的状态图;图12显示为本申请一实施例提供的一种电子设备的结构示意图。具体实施方式以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,遂图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。请参阅图1,为本申请提供的一种Kafka集群故障恢复方法流程图,包括:步骤S1,根据预设的配置文件利用Kubernetes平台创建备份的本地存储卷(localpv);其中,对本地存储设备的空间进行计算、分区、格式化和挂载分区到配置目录,通过传入配置文件,输出挂载到配置目录下实现分区,辅助Kubernetes平台创建LocalPV(本地存储卷),例如:sgdisk(分区工具)、fdisk(硬盘分区)、mount(命令工具)等。步骤S2,获取Kubernetes集群内所有KafkaPod名称、所述KafkaPod对应节点以及所述KafkaPod所使用的PVC;其中,通过抓取目标和关键词输出抓取信息,具体地实施工具包括但不限于kubectl(命令行工具)、docker(引擎),API客户端库和python客户端库等。步骤S3,检测每个所述KafkaPod所属节点和所述KafkaPod关联的本地存储卷的状态生成状态异常的节点或/和状态异常的本地存储卷;其中,对传入的节点和localpv进行故障检测,生成故障检测结果,其中,通过状态异常的节点也能够查询到节点内的本地存储卷,即,最终检测结果都能以本地存储卷进本文档来自技高网...

【技术保护点】
1.一种Kafka集群故障恢复方法,其特征在于,所述方法包括以下步骤:/n根据预设的配置文件利用Kubernetes平台创建备份的本地存储卷;/n获取Kubernetes集群内所有Kafka Pod名称、所述Kafka Pod对应节点以及所述KafkaPod所使用的PVC;/n检测每个所述Kafka Pod所属节点和所述Kafka Pod关联的本地存储卷的状态生成状态异常的节点或/和状态异常的本地存储卷;/n解除状态异常的所述Kafka Pod所使用的PVC与关联的本地存储卷之间的绑定关系,并与备份的本地存储卷建立绑定关系;/n将状态异常的节点或/和状态异常的本地存储卷的数据同步到备份的本地存储卷用以恢复Kafka集群故障。/n

【技术特征摘要】
1.一种Kafka集群故障恢复方法,其特征在于,所述方法包括以下步骤:
根据预设的配置文件利用Kubernetes平台创建备份的本地存储卷;
获取Kubernetes集群内所有KafkaPod名称、所述KafkaPod对应节点以及所述KafkaPod所使用的PVC;
检测每个所述KafkaPod所属节点和所述KafkaPod关联的本地存储卷的状态生成状态异常的节点或/和状态异常的本地存储卷;
解除状态异常的所述KafkaPod所使用的PVC与关联的本地存储卷之间的绑定关系,并与备份的本地存储卷建立绑定关系;
将状态异常的节点或/和状态异常的本地存储卷的数据同步到备份的本地存储卷用以恢复Kafka集群故障。


2.根据权利要求1所述的Kafka集群故障恢复方法,其特征在于,所述解除状态异常的所述KafkaPod所使用的PVC与关联的本地存储卷之间的绑定关系,并与备份的本地存储卷建立绑定关系的步骤之前,还包括:
根据所述状态异常的节点或/和状态异常的本地存储卷核查备份的本地存储卷的空间与所属节点是否满足恢复的硬性需求。


3.根据权利要求2所述的Kafka集群故障恢复方法,其特征在于,所述根据所述状态异常的节点或/和状态异常的本地存储卷核查备份的本地存储卷的空间与所属节点是否满足恢复的硬件需求步骤,包括:
检查备份的本地存储卷的空间是否大于等于状态异常的节点上KafkaPod所使用的PVC声明空间;如果备份的本地存储卷的空间大于等于状态异常的节点上KafkaPod所使用的PVC声明空间,且该备份的本地存储卷所属节点与状态异常的节点不同,则将状态异常的节点上的KafkaPod与所述KafkaPod所使用的PVC标记为删除;否则,不标记。


4.根据权利要求2或3所述的Kafka集群故障恢复方法,其特征在于,所述根据所述状态异常的节点或/和状态异常的本地存储卷核查备份的本地存储卷的空间与所属节点是否满足恢复的硬件需求步骤,包括:
检查备份的本地存储卷的空间是否大于等于状态异常的本地存储卷对应PVC声明空间;
如果备份的本地存储卷的空间大于等于状态异常的本地存储卷对应PVC声明空间,且备份的本地存储卷与状态异常的本地存储卷属于同一节点,则将状态异常的本地存储卷与其关联的PVC标记为删除;否则,不标记;
如果备份的本地存储卷的空间大于等于状态异常的本地存储卷对应PVC声明空间,且备份的本地存储卷与状态异常的本地存储卷属于不同节点,则将状态异常的本地存储卷所属节点上KafkaPod和所述KafkaPod使用的PVC和状态异常的本地存储卷标记为删除;否则,不标记。


5.根据权利要求1所述的Kafka集群故障恢复方法,其特征在于,所述解...

【专利技术属性】
技术研发人员:王伟松
申请(专利权)人:重庆紫光华山智安科技有限公司
类型:发明
国别省市:重庆;50

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

1