CN111651523B - 一种Kubernetes容器平台的MySQL数据同步方法及系统 - Google Patents

一种Kubernetes容器平台的MySQL数据同步方法及系统 Download PDF

Info

Publication number
CN111651523B
CN111651523B CN202010476505.0A CN202010476505A CN111651523B CN 111651523 B CN111651523 B CN 111651523B CN 202010476505 A CN202010476505 A CN 202010476505A CN 111651523 B CN111651523 B CN 111651523B
Authority
CN
China
Prior art keywords
mysql database
mysql
pod
database
service
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.)
Active
Application number
CN202010476505.0A
Other languages
English (en)
Other versions
CN111651523A (zh
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.)
Fiberhome Telecommunication Technologies Co Ltd
Original Assignee
Fiberhome Telecommunication Technologies 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 Fiberhome Telecommunication Technologies Co Ltd filed Critical Fiberhome Telecommunication Technologies Co Ltd
Priority to CN202010476505.0A priority Critical patent/CN111651523B/zh
Publication of CN111651523A publication Critical patent/CN111651523A/zh
Application granted granted Critical
Publication of CN111651523B publication Critical patent/CN111651523B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1464Management of the backup or restore process for networked environments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/128Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Abstract

本发明公开了一种Kubernetes容器平台的MySQL数据同步方法及系统,涉及MySQL数据同步领域,该方法包括以下步骤:以容器方式在第一POD中配置作为外部MySQL数据库从库的第一MySQL数据库,且第一POD被配置为:当第一MySQL数据库停止服务时,第一POD自动重启;创建MySQL Service,在MySQL Service中下挂多个第二POD,每个第二POD中以容器方式配置有作为第一MySQL数据库从库的第二MySQL数据库;启动第一POD,利用第一MySQL数据库从外部MySQL数据库中同步数据;启动第二POD,将第一MySQL数据库中的数据同步至第二MySQL数据库,利用第二MySQL数据库对Kubernetes容器平台提供只读服务。本发明中的Kubernetes容器平台的MySQL数据同步方法,可靠性高,崩溃后修复所需代价较小。

Description

一种Kubernetes容器平台的MySQL数据同步方法及系统
技术领域
本发明涉及MySQL数据同步领域,具体涉及一种Kubernetes容器平台的MySQL数据同步方法及系统。
背景技术
随着云计算、SOA(Service-Oriented Architecture,面向服务的架构)架构、微服务、容器等技术的不断发展,EPG(Electronic ProgramGuide,电子节目向导)平台也开始采用微服务架构部署业务服务,为应用开发提供规范、可靠与高效的运行环境,实现新业务的安全部署与快速迭代;同时平台基于Kubernetes容器部署,具备高稳定行和很强的弹性扩展能力,单台服务的上下线和升降级、平台扩容或减容等操作,将不影响用户的不间断服务,同时能应对用户的突发访问和快速增长。
EPG平台需要从外部系统的MySQL数据库,同步数据到Kubernetes容器平台中,向部署在平台上的微服务提供只读服务。但是目前的同步方案没有使用Kubernetes容器平台特性,可靠性不高,崩溃后修复所需要的代价较大,而且不能实现数据库的弹性伸缩。
发明内容
针对现有技术中存在的缺陷,本发明第一方面在于提供一种可靠性高,崩溃后修复所需代价较小的Kubernetes容器平台的MySQL数据同步方法。
为达到以上目的,本发明采取的技术方案是:
一种Kubernetes容器平台的MySQL数据同步方法,其特征在于,该方法包括以下步骤:
以容器方式在第一POD中配置作为外部MySQL数据库从库的第一MySQL数据库,且第一POD被配置为:当第一MySQL数据库停止服务时,第一POD自动重启;
创建MySQL Service,在MySQL Service中下挂多个第二POD,每个第二POD中以容器方式配置有作为第一MySQL数据库从库的第二MySQL数据库;
启动第一POD,利用第一MySQL数据库从外部MySQL数据库中同步数据,并使能持久化数据;
启动第二POD,将第一MySQL数据库中的数据同步至第二MySQL数据库,并使能持久化数据,利用第二MySQL数据库对Kubernetes容器平台提供只读服务;
一些实施例中,启动第一POD,利用第一MySQL数据库从外部MySQL数据库中同步数据,具体包括:
启动第一POD,以同时启动第一POD中的第一sidecar容器和第一MySQL数据库;
利用第一sidecar容器监测第一MySQL数据库,判定第一MySQL数据库中的MySQL服务启动且正常服务后,登录第一MySQL数据库,启动数据库的同步线程,从外部MySQL数据库中同步数据,并开启快照服务。
一些实施例中,启动第二POD,将第一MySQL数据库中的数据同步至第二MySQL数据库,具体包括:
启动第二POD,以同时启动该第二POD中的第二sidecar容器和第二MySQL数据库;
第二sidecar容器判断指定目录下是否存在快照文件;
在不存在快照文件时,向第一POD发送快照请求,下载第一MySQL数据库的全备份快照文件到本地指定目录;
在存在快照文件时,确定第二MySQL数据库的同步起始位置,利用第二sidecar容器对同一第二POD中的第二MySQL数据库中的MySQL服务进行监测,判定第二MySQL数据库中的MySQL服务启动且正常服务后,登录第二MySQL数据库,基于同步起始位置,启动同步线程从第一MySQL数据库数据库中同步数据。
一些实施例中,采用StatefulSet的方式管理第二POD,以实现第二MySQL数据库的弹性伸缩。
一些实施例中,采用NodePort的方式提供第二MySQL数据库的访问地址,并通过负载均衡算法,将服务请求转发至下挂的第二POD。
本发明第二方面在于提供一种可靠性高,崩溃后修复所需代价较小的Kubernetes容器平台的MySQL数据同步系统。
为达到以上目的,本发明采取的技术方案是:
一种Kubernetes容器平台的MySQL数据同步系统,包括:
配置模块,其用于以容器方式在第一POD中配置作为外部MySQL数据库从库的第一MySQL数据库,并以容器方式在第二POD中配置作为第一MySQL数据库从库的第二MySQL数据库,且第一POD被所述配置模块配置为:当第一MySQL数据库停止服务时,第一POD自动重启;
创建模块,其用于创建MySQL Service,且所述MySQL Service中下挂有多个所述第二POD,;
启动同步模块,其用于启动第一POD,利用第一MySQL数据库从外部MySQL数据库中同步数据;还用于启动第二POD,将第一MySQL数据库中的数据同步至第二MySQL数据库,利用第二MySQL数据库对Kubernetes容器平台提供只读服务。
一些实施例中,所述启动同步模块启动第一POD,利用第一MySQL数据库从外部MySQL数据库中同步数据,具体包括:
启动第一POD,以同时启动第一sidecar容器和第一MySQL数据库;
利用第一sidecar容器监测第一MySQL数据库,判定第一MySQL数据库中的MySQL服务启动且正常服务后,登录第一MySQL数据库,启动数据库的同步线程,从外部MySQL数据库中同步数据,并开启快照服务。
一些实施例中,所述启动同步模块启动第二POD,将第一MySQL数据库中的数据同步至第二MySQL数据库,具体包括:
启动第二POD,以同时启动该第二POD中的第二sidecar容器和第二MySQL数据库;
第二sidecar容器判断指定目录下是否存在快照文件;
在不存在快照文件时,向第一POD发送快照请求,下载第一MySQL数据库的全备份快照文件到本地指定目录;
在存在快照文件时,确定第二MySQL数据库的同步起始位置,利用第二sidecar容器对同一第二POD中的第二MySQL数据库中的MySQL服务进行监测,判定第二MySQL数据库中的MySQL服务启动且正常服务后,登录第二MySQL数据库,基于同步起始位置,启动同步线程从第一MySQL数据库数据库中同步数据。
一些实施例中,所述配置模块采用StatefulSet的方式管理第二POD,以实现第二MySQL数据库的弹性伸缩。
一些实施例中,所述配置模块采用NodePort的方式提供第二MySQL数据库的访问地址,并通过负载均衡算法,将服务请求转发至下挂的第二POD。
与现有技术相比,本发明的优点在于:
本发明中的Kubernetes容器平台的MySQL数据同步方法,由于L2-DB POD提供了冷备的能力,其可靠性由Kubernetes平台保证,在检测到L2-DB停止服务后,即可在其他节点重启服务。充分利用了Kubernetes容器平台的特性,崩溃后修复所需要的代价小。通过MySQL Service下挂多个第二POD的方法,只要存在一个正常第二POD,MySQL Service就可以正常提供服务,进一步保证了可靠性。
此外L3-DB POD可以在单物理主机上部署多个实例,即单主机上可以承载多个MySQL实例,能够最大限度的复用物理资源。而且L3-DB集群可以灵活扩展,在不影响原业务的情况下,增加新的L3-DB的实例,可以提高访问性能。
附图说明
图1为本发明实施例中Kubernetes容器平台的MySQL数据同步方法的流程图;
图2为本发明实施例中Kubernetes容器平台的MySQL数据同步方法的示意图;
图3为本发明实施例中L2-DB POD启动过程的示意图;
图4为本发明实施例中L3-DB POD启动过程的示意图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
参见图1所示,本发明实施例提供一种Kubernetes容器平台的MySQL数据同步方法,该方法包括以下步骤:
S1.以容器方式在第一POD中配置作为外部MySQL数据库从库的第一MySQL数据库,且第一POD被配置为:当第一MySQL数据库停止服务时,第一POD自动重启。
S2.创建MySQL Service,在MySQL Service中下挂多个第二POD,每个第二POD中以容器方式配置有作为第一MySQL数据库从库的第二MySQL数据库。
S3.启动第一POD,利用第一MySQL数据库从外部MySQL数据库中同步数据,并使能持久化数据。
S4.启动第二POD,将第一MySQL数据库中的数据同步至第二MySQL数据库,并使能持久化数据,利用第二MySQL数据库对Kubernetes容器平台提供只读服务。
参见图2所示,POD是Kubernetes容器平台上的原子调度单位,在本实施例中,采用的是三层方案,第一层是外部MySQL数据库,以下记为L1-DB;第二层是第一MySQL数据库,以下记为L2-DB,L2-DB为L1-DB的从库;第三层是第二MySQL数据库,以下记为L3-DB,L3-DB为L2-DB的从库,其中L2-DB和L3-DB均为容器方式实现。
为了实现POD内数据的存储管理,Kubernetes容器平台引入了两个API资源:Persistent Volume(持久卷,PV)和Persistent VolumeClaim(持久卷申请,PVC)。
Volume可以被多个容器访问的共享目录,其指代的是外挂的持久化,存储的抽象。PV是Kubernetes容器平台中某个网络存储中对应的一块存储,独立于POD之外定义。POD想申请某种条件的PV,必须先定义一个PVC对象。
在本实施例中,L2-DB实时以备库形式、备份L1-DB的数据到第一POD(图中记为L2-DB POD)对应的持久化存储中,具体而言,可通过在第一POD外挂存储PVC,使能持久化其数据,以保证在POD崩溃重启后,可以快速恢复数据。本实施例中可以是挂载到Ceph RBD上。Ceph是一种分布式文件系统,RBD是Ceph系统中抽象的块设备,挂载的RBD可以当磁盘使用。
L2-DB对外不提供读写服务,不对外暴露服务。且当L2-DB停止服务时,第一POD自动重启。在Kubernetes容器平台中,第一POD的重启策略设定为Always,保证L2-DB容器持续运行。
本实施例中的L2-DB服务提供冷备能力,其可靠性由Kubernetes集群保证,在检测到L2-DB死亡后,可以即刻拉起,因此极端情况下会有秒级的数据同步延迟,但不会丢失。具体而言,通过在第一POD的配置文件(比如yaml格式)中,定义各容器的探针(如读取指定的端口,看是否有数据返回)。第一POD启动后,Kubernetes平台会定时探测这些容器是否工作正常,如果不正常第一POD则会自动进行重启。
在本实施例中,通过MySQL Service下挂多个第二POD(图中记为L3-DB POD)的方法,只要存在一个正常L3-DB POD,MySQLService就可以正常提供服务。
此外L3-DB POD可以在单物理主机上部署多个实例,即单主机上可以承载多个MySQL实例,能够最大限度的复用物理资源。而且L3-DB集群可以灵活扩展,在不影响原业务的情况下,增加新的L3-DB的实例,可以提高访问性能。
对于步骤S3,参见图3所示,其包括如下步骤:
S31.启动L2-DB POD;
S32.监测L2-DB POD的L2-DB;
S33.判断L2-DB是否启动,若否,执行步骤S34,若是,执行步骤S35;
S34.经等待后返回步骤S32;
S35.启动备份服务,从L1-DB中同步数据;
S36.启动L2-DB的快照服务。
具体而言,在本实施例中第一POD包括第一sidecar容器(以下记为sidecar2容器)和L2-DB两个容器,sidecar容器主要用来完成一些辅助的工作,比如网络连通性、下载拷贝文件等。
第一POD启动或重启时,会同时启动sidecar2和L2-DB这两个容器。sidecar2容器在启动后,立即对第一POD中的L2-DB容器中的MySQL服务进行监测。MySQL服务被判定为启动且正常服务后,登录L2-DB,启动数据库的同步线程,从L1-DB中同步数据。
随后,sidecar2容器将会开启针对L2-DB的快照服务,当服务请求到达时,利用xtrabackup工具生成L2-DB当前的全备份快照文件,然后将文件推送给请求者。
对于步骤S4,参见图4所示,其包括如下步骤:
S41.启动L3-DB POD;
S42.检查指定目录下的快照文件;
S43.判断指定目录下是否存在快照文件,若否,执行步骤S44,若是,执行步骤S46;
S44.向L2-DB POD发送快照请求;
S45.根据快照文件恢复全量备份;
S46.读取同步起始位置;
S47.监测L3-DB POD的L3-DB;
S48.判断L3-DB是否启动,若否,执行步骤S49a,若是,执行步骤S49b;
S49a.经等待后返回步骤S47;
S49b.启动备份服务,从L2-DB中同步数据。
具体而言,在本实施例中第二POD包括第二sidecar容器(以下记为sidecar3容器)和L3-DB两个容器。
L3-DB中的数据初始化,由sidecar3完成。然后,L3-DB实时以备库形式、增量备份L2-DB的数据到第二POD对应的持久化存储中。具体而言,可通过在第二POD外挂存储PVC,使能持久化其数据,以保证在POD崩溃重启后,可以快速恢复数据。本实施例中可以是挂载到Ceph RBD上。L3-DB集群采用Ceph RDB进行读取,可以支持高并发。在本实施例中L3-DB为Kubernetes容器平台上的其他微服务提供只读服务。
第二POD启动或重启时,会同时启动sidecar3和L3-DB这两个容器。sidecar3容器启动时,会判断指定目录下是否存在快照文件,存在则认为已完成全量恢复,此后需要进行增量备份。否则,向L2-DBPOD发送快照请求,下载L2-DB的全备份快照文件到本地指定目录。下载完成后,利用xtrabackup工具恢复全量备份到L3-DB容器中的MySQL数据库中。
无论是进行全量恢复还是进行增量备份,L3-DB POD中的sidecar3容器启动成功后,读取xtrabackup的备份恢复日志,确定L3-DB的同步起始位置。然后对同一第二POD的L3-DB容器中的MySQL服务进行监测。MySQL服务被判定为启动及功能正常后,登录第二MySQL数据库,基于同步起始位置,启动同步线程从L2-DB数据库中同步数据。
在本实施例中,通过快照全备份恢复的方式,减少了数据重构的时间,最大限度的提升了新L3-DB实例的启动时间和故障恢复时间。
作为一个优选地实施方式,本实施例中采用StatefulSet的方式管理第二POD,以实现第二MySQL数据库的弹性伸缩。
StatefulSet是Kubernetes平台提供的一种服务(编排和管理POD),为了解决有状态服务的问题。
StatefulSet的弹性伸缩可以通过Kubernetes容器平台的命令“kubectl scalestatefulset XXX--replicas=X”来实现。
作为一个优选地实施方式,本实施例中采用NodePort的方式提供第二MySQL数据库的访问地址,并通过负载均衡算法,将服务请求转发至下挂的第二POD。负载均衡的前提是创建一个Service服务即本实施例中的MySQL Service,此服务指定了NodePort,外部请求访问的是服务,然后服务通过负载均衡算法(默认是逐个轮询),把服务请求转发给下挂的第二POD。
NodePort方式是Kubernetes容器平台提供的访问服务方式,可以引导外部流量到服务。其原理是在所有节点上开放一个特定端口,任何发送到该端口的流量都会被转发到对应的服务。
负载均衡的前提是创建一个Service服务,即本实施例中创建的MySQL Service,此服务指定了NodePort。外部请求访问的是服务,然后服务通过负载均衡算法(默认是逐个轮询),把服务请求转发给下挂的POD。
综上所述,本发明中的Kubernetes容器平台的MySQL数据同步方法,由于L2-DBPOD提供了冷备的能力,其可靠性由Kubernetes平台保证,在检测到L2-DB停止服务后,即可在其他节点重启服务。充分利用了Kubernetes容器平台的特性,崩溃后修复所需要的代价小。通过MySQL Service下挂多个第二POD的方法,只要存在一个正常第二POD,MySQLService就可以正常提供服务,进一步保证了可靠性。
此外L3-DB POD可以在单物理主机上部署多个实例,即单主机上可以承载多个MySQL实例,能够最大限度的复用物理资源。而且L3-DB集群可以灵活扩展,在不影响原业务的情况下,增加新的L3-DB的实例,可以提高访问性能。
本发明实施例提供一种Kubernetes容器平台的MySQL数据同步系统,其包括配置模块、创建模块和启动同步模块。
其中,配置模块,其用于以容器方式在第一POD中配置作为外部MySQL数据库从库的第一MySQL数据库,并以容器方式在第二POD中配置作为第一MySQL数据库从库的第二MySQL数据库,且第一POD被所述配置模块配置为:当第一MySQL数据库停止服务时,第一POD自动重启;
创建模块,其用于创建MySQL Service,且所述MySQL Service中下挂有多个所述第二POD,;
启动同步模块,其用于启动第一POD,利用第一MySQL数据库从外部MySQL数据库中同步数据;还用于启动第二POD,将第一MySQL数据库中的数据同步至第二MySQL数据库,利用第二MySQL数据库对Kubernetes容器平台提供只读服务。
进一步地,所述启动同步模块启动第一POD,利用第一MySQL数据库从外部MySQL数据库中同步数据,具体包括:
启动第一POD,以同时启动第一sidecar容器和第一MySQL数据库;
利用第一sidecar容器监测第一MySQL数据库,判定第一MySQL数据库中的MySQL服务启动且正常服务后,登录第一MySQL数据库,启动数据库的同步线程,从外部MySQL数据库中同步数据,并开启快照服务。
进一步地,所述启动同步模块启动第二POD,将第一MySQL数据库中的数据同步至第二MySQL数据库,具体包括:
启动第二POD,以同时启动第二POD中的第二sidecar容器和第二MySQL数据库;
第二sidecar容器判断指定目录下是否存在快照文件;
在不存在快照文件时,向第一POD发送快照请求,下载第一MySQL数据库的全备份快照文件到本地指定目录;
在存在快照文件时,确定第二MySQL数据库的同步起始位置,利用第二sidecar容器对同一第二POD中的第二MySQL数据库中的MySQL服务进行监测,判定第二MySQL数据库中的MySQL服务启动且正常服务后,登录第二MySQL数据库,基于同步起始位置,启动同步线程从第一MySQL数据库数据库中同步数据。
进一步地,所述配置模块采用StatefulSet的方式管理第二POD,以实现第二MySQL数据库的弹性伸缩。
进一步地,所述配置模块采用NodePort的方式提供第二MySQL数据库的访问地址,并通过负载均衡算法,将服务请求转发至下挂的第二POD。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (6)

1.一种Kubernetes容器平台的MySQL数据同步方法,其特征在于,该方法包括以下步骤:
以容器方式在第一POD中配置作为外部MySQL数据库从库的第一MySQL数据库,且第一POD被配置为:当第一MySQL数据库停止服务时,第一POD自动重启;
创建MySQL Service,在MySQL Service中下挂多个第二POD,每个第二POD中以容器方式配置有作为第一MySQL数据库从库的第二MySQL数据库;
启动第一POD,利用第一MySQL数据库从外部MySQL数据库中同步数据,并使能持久化数据;
启动第二POD,将第一MySQL数据库中的数据同步至第二MySQL数据库,并使能持久化数据,利用第二MySQL数据库对Kubernetes容器平台提供只读服务;
其中,启动第一POD,利用第一MySQL数据库从外部MySQL数据库中同步数据,具体包括:
启动第一POD,以同时启动第一POD中的第一sidecar容器和第一MySQL数据库;
利用第一sidecar容器监测第一MySQL数据库,判定第一MySQL数据库中的MySQL服务启动且正常服务后,登录第一MySQL数据库,启动数据库的同步线程,从外部MySQL数据库中同步数据,并开启快照服务;
启动第二POD,将第一MySQL数据库中的数据同步至第二MySQL数据库,具体包括:
启动第二POD,以同时启动该第二POD中的第二sidecar容器和第二MySQL数据库;
第二sidecar容器判断指定目录下是否存在快照文件;
在不存在快照文件时,向第一POD发送快照请求,下载第一MySQL数据库的全备份快照文件到本地指定目录;
在存在快照文件时,确定第二MySQL数据库的同步起始位置,利用第二sidecar容器对同一第二POD中的第二MySQL数据库中的MySQL服务进行监测,判定第二MySQL数据库中的MySQL服务启动且正常服务后,登录第二MySQL数据库,基于同步起始位置,启动同步线程从第一MySQL数据库中同步数据。
2.如权利要求1所述的一种Kubernetes容器平台的MySQL数据同步方法,其特征在于:采用StatefulSet的方式管理第二POD,以实现第二MySQL数据库的弹性伸缩。
3.如权利要求1所述的一种Kubernetes容器平台的MySQL数据同步方法,其特征在于:采用NodePort的方式提供第二MySQL数据库的访问地址,并通过负载均衡算法,将服务请求转发至下挂的第二POD。
4.一种Kubernetes容器平台的MySQL数据同步系统,其特征在于,包括:
配置模块,其用于以容器方式在第一POD中配置作为外部MySQL数据库从库的第一MySQL数据库,并以容器方式在第二POD中配置作为第一MySQL数据库从库的第二MySQL数据库,且第一POD被所述配置模块配置为:当第一MySQL数据库停止服务时,第一POD自动重启;
创建模块,其用于创建MySQL Service,且所述MySQL Service中下挂有多个所述第二POD;
启动同步模块,其用于启动第一POD,利用第一MySQL数据库从外部MySQL数据库中同步数据;还用于启动第二POD,将第一MySQL数据库中的数据同步至第二MySQL数据库,利用第二MySQL数据库对Kubernetes容器平台提供只读服务;
其中,所述启动同步模块启动第一POD,利用第一MySQL数据库从外部MySQL数据库中同步数据,具体包括:
启动第一POD,以同时启动第一sidecar容器和第一MySQL数据库;
利用第一sidecar容器监测第一MySQL数据库,判定第一MySQL数据库中的MySQL服务启动且正常服务后,登录第一MySQL数据库,启动数据库的同步线程,从外部MySQL数据库中同步数据,并开启快照服务;
所述启动同步模块启动第二POD,将第一MySQL数据库中的数据同步至第二MySQL数据库,具体包括:
启动第二POD,以同时启动该第二POD中的第二sidecar容器和第二MySQL数据库;
第二sidecar容器判断指定目录下是否存在快照文件;
在不存在快照文件时,向第一POD发送快照请求,下载第一MySQL数据库的全备份快照文件到本地指定目录;
在存在快照文件时,确定第二MySQL数据库的同步起始位置,利用第二sidecar容器对同一第二POD中的第二MySQL数据库中的MySQL服务进行监测,判定第二MySQL数据库中的MySQL服务启动且正常服务后,登录第二MySQL数据库,基于同步起始位置,启动同步线程从第一MySQL数据库中同步数据。
5.如权利要求4所述的一种Kubernetes容器平台的MySQL数据同步系统,其特征在于:所述配置模块采用StatefulSet的方式管理第二POD,以实现第二MySQL数据库的弹性伸缩。
6.如权利要求4所述的一种Kubernetes容器平台的MySQL数据同步系统,其特征在于:所述配置模块采用NodePort的方式提供第二MySQL数据库的访问地址,并通过负载均衡算法,将服务请求转发至下挂的第二POD。
CN202010476505.0A 2020-05-29 2020-05-29 一种Kubernetes容器平台的MySQL数据同步方法及系统 Active CN111651523B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010476505.0A CN111651523B (zh) 2020-05-29 2020-05-29 一种Kubernetes容器平台的MySQL数据同步方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010476505.0A CN111651523B (zh) 2020-05-29 2020-05-29 一种Kubernetes容器平台的MySQL数据同步方法及系统

Publications (2)

Publication Number Publication Date
CN111651523A CN111651523A (zh) 2020-09-11
CN111651523B true CN111651523B (zh) 2022-09-16

Family

ID=72346919

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010476505.0A Active CN111651523B (zh) 2020-05-29 2020-05-29 一种Kubernetes容器平台的MySQL数据同步方法及系统

Country Status (1)

Country Link
CN (1) CN111651523B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112765122B (zh) * 2021-01-19 2022-10-04 深圳软通动力信息技术有限公司 一种在kubernetes中数据库的导入方法和系统
CN112925852B (zh) * 2021-03-03 2022-04-12 浪潮云信息技术股份公司 一种分布式数据库指定节点缩容方法
CN113347043B (zh) * 2021-06-25 2022-11-22 武汉悦学帮网络技术有限公司 网关的管理方法、装置、网关管理平台及存储介质
CN113572838B (zh) * 2021-07-22 2023-04-07 北京金山云网络技术有限公司 基于Kubernetes的网络访问方法、装置、设备及介质
CN117294723A (zh) * 2022-06-17 2023-12-26 中兴通讯股份有限公司 容灾系统控制方法、容灾系统、电子装置及可读存储介质
CN117807045A (zh) * 2024-03-01 2024-04-02 星云海数字科技股份有限公司 一种多级文件系统及其构建方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107947961A (zh) * 2017-10-17 2018-04-20 上海数讯信息技术有限公司 基于SDN的Kubernetes网络管理系统与方法
CN109189860A (zh) * 2018-10-19 2019-01-11 山东浪潮云信息技术有限公司 一种基于Kubernetes系统的MySQL主备增量同步方法
CN110765203A (zh) * 2019-09-29 2020-02-07 烽火通信科技股份有限公司 一种容器MySQL主从同步及性能采集实现方法及系统
GB202001210D0 (en) * 2020-01-29 2020-03-11 Samsung Electronics Co Ltd Improvements in and relating to microservices for mec networks
CN111200532A (zh) * 2020-01-02 2020-05-26 广州虎牙科技有限公司 数据库集群节点主从切换的方法、装置、设备和介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107947961A (zh) * 2017-10-17 2018-04-20 上海数讯信息技术有限公司 基于SDN的Kubernetes网络管理系统与方法
CN109189860A (zh) * 2018-10-19 2019-01-11 山东浪潮云信息技术有限公司 一种基于Kubernetes系统的MySQL主备增量同步方法
CN110765203A (zh) * 2019-09-29 2020-02-07 烽火通信科技股份有限公司 一种容器MySQL主从同步及性能采集实现方法及系统
CN111200532A (zh) * 2020-01-02 2020-05-26 广州虎牙科技有限公司 数据库集群节点主从切换的方法、装置、设备和介质
GB202001210D0 (en) * 2020-01-29 2020-03-11 Samsung Electronics Co Ltd Improvements in and relating to microservices for mec networks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于Kubernetes的容器化数据库及其集群方案;严丽云等;《电信科学》;20181231;第163-171页 *

Also Published As

Publication number Publication date
CN111651523A (zh) 2020-09-11

Similar Documents

Publication Publication Date Title
CN111651523B (zh) 一种Kubernetes容器平台的MySQL数据同步方法及系统
CN110119377B (zh) 面向Docker容器的在线迁移系统实现和优化方法
CN107357688B (zh) 分布式系统及其故障恢复方法和装置
CN102158540A (zh) 分布式数据库实现系统及方法
CN103176831A (zh) 一种虚拟机系统及其管理方法
CN105159795A (zh) 数据同步方法、装置和系统
CN102681917A (zh) 一种操作系统及其修复方法
CN108595119B (zh) 一种数据同步方法及分布式系统
CN110765203B (zh) 一种容器MySQL主从同步及性能采集实现方法及系统
US20220335011A1 (en) System and Method for Eliminating Full Rescan Synchronizations on Service Restarts
CN106911802A (zh) 分布式块存储系统的管理平台的部署方法和装置
CN110351313B (zh) 数据缓存方法、装置、设备及存储介质
CN116400855A (zh) 一种数据处理方法和数据存储系统
CN111917588B (zh) 边缘设备管理方法、装置、边缘网关设备和存储介质
CN105323271B (zh) 一种云计算系统以及云计算系统的处理方法和装置
CN113190619A (zh) 分布式kv数据库的数据读写方法、系统、设备和介质
JP5154843B2 (ja) クラスタシステム、計算機、および障害回復方法
CN111061537A (zh) 一种虚拟机Tools更新方法、系统、装置及可读存储介质
CN115878361A (zh) 数据库集群的节点管理方法、装置及电子设备
CN114297182A (zh) 一种工业模型数据管理方法、装置、设备及可读存储介质
CN111124763B (zh) 一种通讯设备启动配置数据备份同步方法
CN114666201A (zh) 一种高可用的分布式微服务架构
CN110018796B (zh) 一种存储系统处理数据请求的方法、装置
CN111176886A (zh) 一种数据库模式的切换方法、装置及电子设备
CN103838639A (zh) 一种恢复虚拟磁盘元数据的方法、装置及系统

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
GR01 Patent grant
GR01 Patent grant