一种集群系统部署方法、装置、设备以及可读存储介质制造方法及图纸

技术编号:39438486 阅读:9 留言:0更新日期:2023-11-19 16:21
本申请提供了一种集群系统部署方法、装置、设备以及可读存储介质,该方法包括:创建并启动Redis进程和Sentinel进程。然后,对Redis进程进行数据配置,使得配置后的Redis进程中包括所述Redis进程对应Redis分片中主Redis进程所在容器Pod的IP地址。在对Redis进程进行数据配置后,对Sentinel进程进行数据配置,使得配置后的Sentinel进程中包括各Redis分片中主Redis进程所在Pod的IP地址。在对Redis进程和Sentinel进程配置完成后,创建路由进程,并对路由进程进行配置。使得配置后的Router进程中包括所述Sentinel进程所在Pod的IP地址。通过这种方式,可以在Redis架构部署之初,可以灵活创建Sentinel进程和Router进程,解决Redis地集群化部署的同时,不能兼容企业内部多分片的Redis集群架构的问题。Redis集群架构的问题。Redis集群架构的问题。

【技术实现步骤摘要】
一种集群系统部署方法、装置、设备以及可读存储介质


[0001]本申请涉及集群系统的
,尤其涉及一种集群系统部署的方法、装置、设备以及计算机可读存储介质。

技术介绍

[0002]远程字典服务(Remote Dictionary Server,Redis)是一中高性能的关键值(key

value)存储系统,具有极高的读写性能,被广泛应用于缓存服务、分布式锁、计数器等。
[0003]传统物理机部署Redis集群,需要运维人员手动搭建,部署时间较长,也不利于后期维护,无法满足业务快速发展的需求。Kubernetes(本申请实施例简称K8s)云原生相较于传统IT,可以助力业务快速开发、稳定运维,大幅降低技术成本,节约硬件资源。K8s云原生是依托容器化、微服务等技术,构建可扩展的基础设施,持续交付用于生产系统的基础软件,在功能不变的前提下,提高了应用的可用性与稳定性。因此,受到各云服务商地青睐,并将其作为容器编排解决方案,实现Redis集群化部署。但是开源的解决方案无法兼容企业内部多分片Redis集群架构、权限管控方案等。
[0004]因此,如何在使用K8s系统实现Redis地集群化部署的同时,兼容企业内部多分片的Redis集群架构,是技术人员日益关注的问题。

技术实现思路

[0005]本申请实施例提供一种集群系统部署方法、装置、设备以及可读存储介质,该方法解决了在集群系统部署过程中,不能够兼容企业内部多分片的Redis架构的问题。
[0006]第一方面,本申请实施例提供一种集群系统部署方法,包括:接收远程字典Redis集群的部署信息,该部署信息包括Redis进程的数量N2、哨兵Sentinel进程的数量N4以及路由Router进程的数量N6;向第二网络设备发送第一创建指令,第一创建指令包括部署信息,第一创建指令用于指示第二网络设备创建并启动N2个Redis进程和N4个Sentinel进程;在已创建好的Redis进程和Sentinel进程正常工作的情况下,配置Redis进程;配置Sentinel进程;向第二网络设备发送第二创建指令,第二创建指令包括部署信息,第二创建指令用于指示第二网络设备创建并启动N6个Router进程;在已创建好的Router进程、Redis进程和Sentinel进程正常工作的情况下,配置Router进程。
[0007]在本申请实施例中,通过先建立Redis集群系统的拓扑结构,即:创建并启动Redis进程和Sentinel进程。然后,对Redis进程进行数据配置,使得配置后的Redis进程中包括所述Redis进程对应Redis分片中主Redis进程所在容器Pod的IP地址。在对Redis进程进行数据配置后,对Sentinel进程进行数据配置,使得配置后的Sentinel进程中包括各Redis分片中主Redis进程所在Pod的IP地址。在对Redis进程和Sentinel进程配置完成后,创建路由进程,并对路由进程进行配置。使得配置后的Router进程中包括所述Sentinel进程所在Pod的IP地址。这样,路由进程可以通过Sentinel进程所在Pod的IP地址访问Sentinel进程,从而获取Sentinel进程中各Redis分片中主Redis进程所在Pod的IP地址,并根据主Redis进程所
在Pod的IP地址访问主Redis进程,实现对主Redis进程中数据的读或写。通过这种方式,可以在Redis架构部署之初,可以灵活创建Sentinel进程和Router进程,解决Redis地集群化部署的同时,不能兼容企业内部多分片的Redis集群架构的问题。
[0008]结合第一方面,在一种可能实现的方式中,向第二网络设备发送第一创建指令之前,还包括:向第二网络设备发送第三创建指令,第三创建指令用于指示第二网络设备创建Redis应用对象、Sentinel应用对象以及Router应用对象;其中,Redis应用对象用于管理Redis进程的第一实例信息,Sentinel应用对象用于管理Sentinel进程的第二实例信息,Router应用对象用于管理Router进程的第三实例信息,第一实例信息包括每个Redis进程所在容器Pod的IP地址和分片标识信息,第二实例信息包括每个Sentinel进程所在容器Pod的IP地址和分片标识信息,第三实例信息包括每个Router进程所在容器Pod的IP地址和分片标识信息。这样,通过建立应用对象,有利于存储和管理Redis进程、Sentinel进程和Router进程的实例信息。
[0009]结合第一方面,在一种可能实现的方式中,配置Redis进程,包括:检测N2个Redis进程所在Pod的IP地址是否均在第一实例信息中存在;在均存在的情况下,检测每个Redis分片中主Redis进程的数量是否小于或等于1;若存在Redis分片中的主Redis进程的数量为0、其它Redis分片中的主Redis进程的数量为1,在Redis分片中将一个Redis进程设置为主Redis进程;将Redis分片中的其它Redis进程设置为从Redis进程。
[0010]这样,在Redis分片中不存在主Redis进程的情况下,可以在该Redis分片中设置主Redis进程,保证在该Redis分片中存在Redis进程进行数据的存储和管理。
[0011]结合第一方面,在一种可能实现的方式中,在每个Redis分片中的主Redis进程的数量均为1的情况下,检测每个分片中从Redis进程中的第一IP地址是否与Redis分片中主Redis进程所在Pod的IP地址是否一致;第一IP地址为从Redis进程中的主Redis进程所在Pod的IP地址;若不一致,将从Redis进程中的第一IP地址更新为从Redis进程所在分片中主Redis进程所在Pod的IP地址。
[0012]这样,检查从Redis进程中的主Redis进程所在Pod的IP地址是否正确,并对错误地址进行更正,有利于避免从Redis进程复制其它分片的主Redis进程的数据,导致数据复制错误的问题。
[0013]结合第一方面,在一种可能实现的方式中,配置Sentinel进程,包括:若在Sentinel进程中不存在第一Redis进程信息,在Sentinel进程中写入第二Redis进程信息;第一Redis进程信息和第二Redis进程信息中均包括Redis进程所在Pod的IP地址和Redis进程所在分片的标识信息,第二Redis进程信息是基于通过Redis应用对象获取的第一实例信息得到的;若在Sentinel进程中存在第一Redis进程信息,检测第一Redis信息与第二Redis进程信息是否一致;若不一致,将第一Redis进程信息中与第二Redis进程信息不一致的部分进行修正。这样,及时修改哨兵进程中不正确的第一Redis信息,能够保证之后Router进程从哨兵进程中获取的主Redis信息正确,保证其能够正常访问主Redis进程,进行数据的读写操作。
[0014]结合第一方面,在一种可能实本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种集群系统部署方法,其特征在于,包括:接收远程字典Redis集群的部署信息,所述部署信息包括Redis进程的数量N2、哨兵Sentinel进程的数量N4以及路由Router进程的数量N6;向第二网络设备发送第一创建指令,所述第一创建指令包括所述部署信息,所述第一创建指令用于指示所述第二网络设备创建并启动N2个Redis进程和N4个Sentinel进程;在已创建好的Redis进程和Sentinel进程正常工作的情况下,配置所述Redis进程;配置后的Redis进程中包括所述Redis进程对应Redis分片中主Redis进程所在容器Pod的IP地址;配置所述Sentinel进程;配置后的Sentinel进程中包括各Redis分片中主Redis进程所在Pod的IP地址;向所述第二网络设备发送第二创建指令,所述第二创建指令包括所述部署信息,所述第二创建指令用于指示所述第二网络设备创建并启动N6个Router进程;在已创建好的Router进程、所述Redis进程和所述Sentinel进程正常工作的情况下,配置所述Router进程;配置后的Router进程中包括所述Sentinel进程所在Pod的IP地址。2.如权利要求1所述的方法,其特征在于,所述向第二网络设备发送第一创建指令之前,还包括:向所述第二网络设备发送第三创建指令,所述第三创建指令用于指示所述第二网络设备创建Redis应用对象、Sentinel应用对象以及Router应用对象;其中,所述Redis应用对象用于管理所述Redis进程的第一实例信息,所述Sentinel应用对象用于管理所述Sentinel进程的第二实例信息,所述Router应用对象用于管理所述Router进程的第三实例信息,所述第一实例信息包括每个Redis进程所在Pod的IP地址和分片标识信息,所述第二实例信息包括每个Sentinel进程所在Pod的IP地址和分片标识信息,所述第三实例信息包括每个Router进程所在Pod的IP地址和分片标识信息。3.如权利要求2所述的方法,其特征在于,所述配置所述Redis进程,包括:检测所述N2个Redis进程所在Pod的IP地址是否均在所述第一实例信息中存在;在均存在的情况下,检测每个Redis分片中主Redis进程的数量是否小于或等于1;若存在Redis分片中的主Redis进程的数量为0、其它Redis分片中的主Redis进程的数量为1,在所述Redis分片中将一个Redis进程设置为主Redis进程;将所述Redis分片中的其它Redis进程设置为从Redis进程。4.如权利要求3所述的方法,其特征在于,所述检测所述N2个Redis进程所在Pod的IP地址是否均在所述第一实例信息中存在之后,还包括:在每个Redis分片中的主Redis进程的数量均为1的情况下,检测每个分片中从Redis进程中的第一IP地址是否与所述Redis分片中主Redis进程所在Pod的IP地址是否一致;所述第一IP地址为所述从Redis进程中的主Redis进程所在Pod的IP地址;若不一致,将所述从Redis进程中的第一IP地址更新为所述从Redis进程所在分片中主Redis进程所在Pod的IP地址。5.如权利要求2所述的方法,其特征在于,所述配置所述Sentinel进程,包括:若在所述Sentinel进程中不存在第一Redis进程信息,在所述Sentinel进程中写入第二Redis进程信息;所述第一Redis进程信息和所述第二Redis进程信息中均包括所述Redis
进程所在Pod的IP地址和所述Redis进程所在分片的标识信息,所述第二Redis进程信息是基于通过所述Redis应用对象获取的第一实例信息得到的;若在所述Sentinel进程中存在第一Redis进程信息,检测所述第一Redis信息与所述第二Redis进程信息是否一致;若不一致,将所述第一Redis进程信息中与所述第二Redis进程信息不一致的部分进行修正。6.如权利要求3所述的方法,其特征在于,所述配置所述Sentinel进程,还包括:在所述Sentinel应用对象管理的第二实例信息处于屏蔽状态的情况下,访问所述Sentinel应用对象;将所述第二实例信息中的实例标识由第一屏蔽标识修改为第二屏蔽标识;其中,所述实例标识为所述第一屏蔽标识,表征所述第二实例信息处于屏蔽状态,所述实例标识为所述第二屏蔽标识,表征所述第二实例信息处于非屏蔽状态。7.如权利要求1所述的方法,其特征在于,所述配置所述Router进程,包括:在根据容器Pod状态数据确定所有进程的Pod均处于正常工作状态的情况下,检测所述Router进程中存储的各Redis分片中主Redis进程...

【专利技术属性】
技术研发人员:杨爽南方剑刘畅胡东旭骆维陈存利
申请(专利权)人:度小满科技北京有限公司
类型:发明
国别省市:

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

1