Kubernetes容器平台的MySQL数据同步方法及系统.pdf

上传人:凯文 文档编号:10427249 上传时间:2021-06-21 格式:PDF 页数:13 大小:541.85KB
收藏 版权申诉 举报 下载
Kubernetes容器平台的MySQL数据同步方法及系统.pdf_第1页
第1页 / 共13页
Kubernetes容器平台的MySQL数据同步方法及系统.pdf_第2页
第2页 / 共13页
Kubernetes容器平台的MySQL数据同步方法及系统.pdf_第3页
第3页 / 共13页
文档描述:

《Kubernetes容器平台的MySQL数据同步方法及系统.pdf》由会员分享,可在线阅读,更多相关《Kubernetes容器平台的MySQL数据同步方法及系统.pdf(13页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 202010476505.0 (22)申请日 2020.05.29 (71)申请人 烽火通信科技股份有限公司 地址 430000 湖北省武汉市东湖高新技术 开发区高新四路6号 (72)发明人 徐渡刘磊 (74)专利代理机构 武汉智权专利代理事务所 (特殊普通合伙) 42225 代理人 兰岚 (51)Int.Cl. G06F 16/27(2019.01) G06F 16/11(2019.01) G06F 16/182(2019.01) G06F 9/455(2006.01) G06。

2、F 11/14(2006.01) (54)发明名称 一种Kubernetes容器平台的MySQL数据同步 方法及系统 (57)摘要 本发明公开了一种Kubernetes容器平台的 MySQL数据同步方法及系统, 涉及MySQL数据同步 领域, 该方法包括以下步骤: 以容器方式在第一 POD中配置作为外部MySQL数据库从库的第一 MySQL数据库, 且第一POD被配置为: 当第一MySQL 数据库停止服务时, 第一POD自动重启; 创建 MySQLService, 在MySQLService中下挂多个第 二POD, 每个第二POD中以容器方式配置有作为第 一MySQL数据库从库的第二MySQL。

3、数据库; 启动第 一POD, 利用第一MySQL数据库从外部MySQL数据 库中同步数据; 启动第二POD, 将第一MySQL数据 库中的数据同步至第二MySQL数据库, 利用第二 MySQL数据库对Kubernetes容器平台提供只读服 务。 本发明中的Kubernetes容器平台的MySQL数 据同步方法, 可靠性高, 崩溃后修复所需代价较 小。 权利要求书2页 说明书7页 附图3页 CN 111651523 A 2020.09.11 CN 111651523 A 1.一种Kubernetes容器平台的MySQL数据同步方法, 其特征在于, 该方法包括以下步 骤: 以容器方式在第一POD中。

4、配置作为外部MySQL数据库从库的第一MySQL数据库, 且第一 POD被配置为: 当第一MySQL数据库停止服务时, 第一POD自动重启; 创建MySQL Service, 在MySQL Service中下挂多个第二POD, 每个第二POD中以容器方 式配置有作为第一MySQL数据库从库的第二MySQL数据库; 启动第一POD, 利用第一MySQL数据库从外部MySQL数据库中同步数据, 并使能持久化数 据; 启动第二POD, 将第一MySQL数据库中的数据同步至第二MySQL数据库, 并使能持久化数 据, 利用第二MySQL数据库对Kubernetes容器平台提供只读服务。 2.如权利要求。

5、1所述的一种Kubernetes容器平台的MySQL数据同步方法, 其特征在于, 启动第一POD, 利用第一MySQL数据库从外部MySQL数据库中同步数据, 具体包括: 启动第一POD, 以同时启动第一POD中的第一sidecar容器和第一MySQL数据库; 利用第一sidecar容器监测第一MySQL数据库, 判定第一MySQL数据库中的MySQL服务启 动且正常服务后, 登录第一MySQL数据库, 启动数据库的同步线程, 从外部MySQL数据库中同 步数据, 并开启快照服务。 3.如权利要求2所述的一种Kubernetes容器平台的MySQL数据同步方法, 其特征在于, 启动第二POD,。

6、 将第一MySQL数据库中的数据同步至第二MySQL数据库, 具体包括: 启动第二POD, 以同时启动该第二POD中的第二sidecar容器和第二MySQL数据库; 第二sidecar容器判断指定目录下是否存在快照文件; 在不存在快照文件时, 向第一POD发送快照请求, 下载第一MySQL数据库的全备份快照 文件到本地指定目录; 在存在快照文件时, 确定第二MySQL数据库的同步起始位置, 利用第二sidecar容器对 同一第二POD中的第二MySQL数据库中的MySQL服务进行监测, 判定第二MySQL数据库中的 MySQL服务启动且正常服务后, 登录第二MySQL数据库, 基于同步起始位置。

7、, 启动同步线程从 第一MySQL数据库数据库中同步数据。 4.如权利要求1所述的一种Kubernetes容器平台的MySQL数据同步方法, 其特征在于: 采用StatefulSet的方式管理第二POD, 以实现第二MySQL数据库的弹性伸缩。 5.如权利要求1所述的一种Kubernetes容器平台的MySQL数据同步方法, 其特征在于: 采用NodePort的方式提供第二MySQL数据库的访问地址, 并通过负载均衡算法, 将服务请求 转发至下挂的第二POD。 6.一种Kubernetes容器平台的MySQL数据同步系统, 其特征在于, 包括: 配置模块, 其用于以容器方式在第一POD中配置作。

8、为外部MySQL数据库从库的第一 MySQL数据库, 并以容器方式在第二POD中配置作为第一MySQL数据库从库的第二MySQL数据 库, 且第一POD被所述配置模块配置为: 当第一MySQL数据库停止服务时, 第一POD自动重启; 创建模块, 其用于创建MySQL Service, 且所述MySQL Service中下挂有多个所述第二 POD, ; 启动同步模块, 其用于启动第一POD, 利用第一MySQL数据库从外部MySQL数据库中同步 数据; 还用于启动第二POD, 将第一MySQL数据库中的数据同步至第二MySQL数据库, 利用第 权利要求书 1/2 页 2 CN 111651523。

9、 A 2 二MySQL数据库对Kubernetes容器平台提供只读服务。 7.如权利要求6所述的一种Kubernetes容器平台的MySQL数据同步系统, 其特征在于, 所述启动同步模块启动第一POD, 利用第一MySQL数据库从外部MySQL数据库中同步数据, 具 体包括: 启动第一POD, 以同时启动第一sidecar容器和第一MySQL数据库; 利用第一sidecar容器监测第一MySQL数据库, 判定第一MySQL数据库中的MySQL服务启 动且正常服务后, 登录第一MySQL数据库, 启动数据库的同步线程, 从外部MySQL数据库中同 步数据, 并开启快照服务。 8.如权利要求7所述。

10、的一种Kubernetes容器平台的MySQL数据同步系统, 其特征在于, 所述启动同步模块启动第二POD, 将第一MySQL数据库中的数据同步至第二MySQL数据库, 具 体包括: 启动第二POD, 以同时启动该第二POD中的第二sidecar容器和第二MySQL数据库; 第二sidecar容器判断指定目录下是否存在快照文件; 在不存在快照文件时, 向第一POD发送快照请求, 下载第一MySQL数据库的全备份快照 文件到本地指定目录; 在存在快照文件时, 确定第二MySQL数据库的同步起始位置, 利用第二sidecar容器对 同一第二POD中的第二MySQL数据库中的MySQL服务进行监测,。

11、 判定第二MySQL数据库中的 MySQL服务启动且正常服务后, 登录第二MySQL数据库, 基于同步起始位置, 启动同步线程从 第一MySQL数据库数据库中同步数据。 9.如权利要求6所述的一种Kubernetes容器平台的MySQL数据同步系统, 其特征在于: 所述配置模块采用StatefulSet的方式管理第二POD, 以实现第二MySQL数据库的弹性伸缩。 10.如权利要求6所述的一种Kubernetes容器平台的MySQL数据同步系统, 其特征在于: 所述配置模块采用NodePort的方式提供第二MySQL数据库的访问地址, 并通过负载均衡算 法, 将服务请求转发至下挂的第二POD。。

12、 权利要求书 2/2 页 3 CN 111651523 A 3 一种Kubernetes容器平台的MySQL数据同步方法及系统 技术领域 0001 本发明涉及MySQL数据同步领域, 具体涉及一种Kubernetes容器平台的MySQL数据 同步方法及系统。 背景技术 0002 随着云计算、 SOA(Service-Oriented Architecture, 面向服务的架构)架构、 微服 务、 容器等技术的不断发展, EPG(Electronic ProgramGuide, 电子节目向导)平台也开始采 用微服务架构部署业务服务, 为应用开发提供规范、 可靠与高效的运行环境, 实现新业务的 安。

13、全部署与快速迭代; 同时平台基于Kubernetes容器部署, 具备高稳定行和很强的弹性扩 展能力, 单台服务的上下线和升降级、 平台扩容或减容等操作, 将不影响用户的不间断服 务, 同时能应对用户的突发访问和快速增长。 0003 EPG平台需要从外部系统的MySQL数据库, 同步数据到Kubernetes容器平台中, 向 部署在平台上的微服务提供只读服务。 但是目前的同步方案没有使用Kubernetes容器平台 特性, 可靠性不高, 崩溃后修复所需要的代价较大, 而且不能实现数据库的弹性伸缩。 发明内容 0004 针对现有技术中存在的缺陷, 本发明第一方面在于提供一种可靠性高, 崩溃后修 复。

14、所需代价较小的Kubernetes容器平台的MySQL数据同步方法。 0005 为达到以上目的, 本发明采取的技术方案是: 0006 一种Kubernetes容器平台的MySQL数据同步方法, 其特征在于, 该方法包括以下步 骤: 0007 以容器方式在第一POD中配置作为外部MySQL数据库从库的第一MySQL数据库, 且 第一POD被配置为: 当第一MySQL数据库停止服务时, 第一POD自动重启; 0008 创建MySQL Service, 在MySQL Service中下挂多个第二POD, 每个第二POD中以容 器方式配置有作为第一MySQL数据库从库的第二MySQL数据库; 0009。

15、 启动第一POD, 利用第一MySQL数据库从外部MySQL数据库中同步数据, 并使能持久 化数据; 0010 启动第二POD, 将第一MySQL数据库中的数据同步至第二MySQL数据库, 并使能持久 化数据, 利用第二MySQL数据库对Kubernetes容器平台提供只读服务; 0011 一些实施例中, 启动第一POD, 利用第一MySQL数据库从外部MySQL数据库中同步数 据, 具体包括: 0012 启动第一POD, 以同时启动第一POD中的第一sidecar容器和第一MySQL数据库; 0013 利用第一sidecar容器监测第一MySQL数据库, 判定第一MySQL数据库中的MySQ。

16、L服 务启动且正常服务后, 登录第一MySQL数据库, 启动数据库的同步线程, 从外部MySQL数据库 中同步数据, 并开启快照服务。 0014 一些实施例中, 启动第二POD, 将第一MySQL数据库中的数据同步至第二MySQL数据 说明书 1/7 页 4 CN 111651523 A 4 库, 具体包括: 0015 启动第二POD, 以同时启动该第二POD中的第二sidecar容器和第二MySQL数据库; 0016 第二sidecar容器判断指定目录下是否存在快照文件; 0017 在不存在快照文件时, 向第一POD发送快照请求, 下载第一MySQL数据库的全备份 快照文件到本地指定目录; 。

17、0018 在存在快照文件时, 确定第二MySQL数据库的同步起始位置, 利用第二sidecar容 器对同一第二POD中的第二MySQL数据库中的MySQL服务进行监测, 判定第二MySQL数据库中 的MySQL服务启动且正常服务后, 登录第二MySQL数据库, 基于同步起始位置, 启动同步线程 从第一MySQL数据库数据库中同步数据。 0019 一些实施例中, 采用StatefulSet的方式管理第二POD, 以实现第二MySQL数据库的 弹性伸缩。 0020 一些实施例中, 采用NodePort的方式提供第二MySQL数据库的访问地址, 并通过负 载均衡算法, 将服务请求转发至下挂的第二PO。

18、D。 0021 本发明第二方面在于提供一种可靠性高, 崩溃后修复所需代价较小的Kubernetes 容器平台的MySQL数据同步系统。 0022 为达到以上目的, 本发明采取的技术方案是: 0023 一种Kubernetes容器平台的MySQL数据同步系统, 包括: 0024 配置模块, 其用于以容器方式在第一POD中配置作为外部MySQL数据库从库的第一 MySQL数据库, 并以容器方式在第二POD中配置作为第一MySQL数据库从库的第二MySQL数据 库, 且第一POD被所述配置模块配置为: 当第一MySQL数据库停止服务时, 第一POD自动重启; 0025 创建模块, 其用于创建MySQ。

19、L Service, 且所述MySQL Service中下挂有多个所述 第二POD, ; 0026 启动同步模块, 其用于启动第一POD, 利用第一MySQL数据库从外部MySQL数据库中 同步数据; 还用于启动第二POD, 将第一MySQL数据库中的数据同步至第二MySQL数据库, 利 用第二MySQL数据库对Kubernetes容器平台提供只读服务。 0027 一些实施例中, 所述启动同步模块启动第一POD, 利用第一MySQL数据库从外部 MySQL数据库中同步数据, 具体包括: 0028 启动第一POD, 以同时启动第一sidecar容器和第一MySQL数据库; 0029 利用第一si。

20、decar容器监测第一MySQL数据库, 判定第一MySQL数据库中的MySQL服 务启动且正常服务后, 登录第一MySQL数据库, 启动数据库的同步线程, 从外部MySQL数据库 中同步数据, 并开启快照服务。 0030 一些实施例中, 所述启动同步模块启动第二POD, 将第一MySQL数据库中的数据同 步至第二MySQL数据库, 具体包括: 0031 启动第二POD, 以同时启动该第二POD中的第二sidecar容器和第二MySQL数据库; 0032 第二sidecar容器判断指定目录下是否存在快照文件; 0033 在不存在快照文件时, 向第一POD发送快照请求, 下载第一MySQL数据库。

21、的全备份 快照文件到本地指定目录; 0034 在存在快照文件时, 确定第二MySQL数据库的同步起始位置, 利用第二sidecar容 器对同一第二POD中的第二MySQL数据库中的MySQL服务进行监测, 判定第二MySQL数据库中 说明书 2/7 页 5 CN 111651523 A 5 的MySQL服务启动且正常服务后, 登录第二MySQL数据库, 基于同步起始位置, 启动同步线程 从第一MySQL数据库数据库中同步数据。 0035 一些实施例中, 所述配置模块采用StatefulSet的方式管理第二POD, 以实现第二 MySQL数据库的弹性伸缩。 0036 一些实施例中, 所述配置模块。

22、采用NodePort的方式提供第二MySQL数据库的访问 地址, 并通过负载均衡算法, 将服务请求转发至下挂的第二POD。 0037 与现有技术相比, 本发明的优点在于: 0038 本发明中的Kubernetes容器平台的MySQL数据同步方法, 由于L2-DB POD提供了冷 备的能力, 其可靠性由Kubernetes平台保证, 在检测到L2-DB停止服务后, 即可在其他节点 重启服务。 充分利用了Kubernetes容器平台的特性, 崩溃后修复所需要的代价小。 通过 MySQL Service下挂多个第二POD的方法, 只要存在一个正常第二POD, MySQL Service就可 以正常提。

23、供服务, 进一步保证了可靠性。 0039 此外L3-DB POD可以在单物理主机上部署多个实例, 即单主机上可以承载多个 MySQL实例, 能够最大限度的复用物理资源。 而且L3-DB集群可以灵活扩展, 在不影响原业务 的情况下, 增加新的L3-DB的实例, 可以提高访问性能。 附图说明 0040 图1为本发明实施例中Kubernetes容器平台的MySQL数据同步方法的流程图; 0041 图2为本发明实施例中Kubernetes容器平台的MySQL数据同步方法的示意图; 0042 图3为本发明实施例中L2-DB POD启动过程的示意图; 0043 图4为本发明实施例中L3-DB POD启动过。

24、程的示意图。 具体实施方式 0044 以下结合附图及实施例对本发明作进一步详细说明。 0045 参见图1所示, 本发明实施例提供一种Kubernetes容器平台的MySQL数据同步方 法, 该方法包括以下步骤: 0046 S1.以容器方式在第一POD中配置作为外部MySQL数据库从库的第一MySQL数据库, 且第一POD被配置为: 当第一MySQL数据库停止服务时, 第一POD自动重启。 0047 S2.创建MySQL Service, 在MySQL Service中下挂多个第二POD, 每个第二POD中以 容器方式配置有作为第一MySQL数据库从库的第二MySQL数据库。 0048 S3.启。

25、动第一POD, 利用第一MySQL数据库从外部MySQL数据库中同步数据, 并使能 持久化数据。 0049 S4.启动第二POD, 将第一MySQL数据库中的数据同步至第二MySQL数据库, 并使能 持久化数据, 利用第二MySQL数据库对Kubernetes容器平台提供只读服务。 0050 参见图2所示, POD是Kubernetes容器平台上的原子调度单位, 在本实施例中, 采用 的是三层方案, 第一层是外部MySQL数据库, 以下记为L1-DB; 第二层是第一MySQL数据库, 以 下记为L2-DB, L2-DB为L1-DB的从库; 第三层是第二MySQL数据库, 以下记为L3-DB, 。

26、L3-DB为 L2-DB的从库, 其中L2-DB和L3-DB均为容器方式实现。 0051 为了实现POD内数据的存储管理, Kubernetes容器平台引入了两个API资源: 说明书 3/7 页 6 CN 111651523 A 6 Persistent Volume(持久卷, PV)和Persistent VolumeClaim(持久卷申请, PVC)。 0052 Volume可以被多个容器访问的共享目录, 其指代的是外挂的持久化, 存储的抽象。 PV是Kubernetes容器平台中某个网络存储中对应的一块存储, 独立于POD之外定义。 POD想 申请某种条件的PV, 必须先定义一个PVC对。

27、象。 0053 在本实施例中, L2-DB实时以备库形式、 备份L1-DB的数据到第一POD(图中记为L2- DB POD)对应的持久化存储中, 具体而言, 可通过在第一POD外挂存储PVC, 使能持久化其数 据, 以保证在POD崩溃重启后, 可以快速恢复数据。 本实施例中可以是挂载到Ceph RBD上。 Ceph是一种分布式文件系统, RBD是Ceph系统中抽象的块设备, 挂载的RBD可以当磁盘使用。 0054 L2-DB对外不提供读写服务, 不对外暴露服务。 且当L2-DB停止服务时, 第一POD自 动重启。 在Kubernetes容器平台中, 第一POD的重启策略设定为Always, 保。

28、证L2-DB容器持续 运行。 0055 本实施例中的L2-DB服务提供冷备能力, 其可靠性由Kubernetes集群保证, 在检测 到L2-DB死亡后, 可以即刻拉起, 因此极端情况下会有秒级的数据同步延迟, 但不会丢失。 具 体而言, 通过在第一POD的配置文件(比如yaml格式)中, 定义各容器的探针(如读取指定的 端口, 看是否有数据返回)。 第一POD启动后, Kubernetes平台会定时探测这些容器是否工作 正常, 如果不正常第一POD则会自动进行重启。 0056 在本实施例中, 通过MySQL Service下挂多个第二POD(图中记为L3-DB POD)的方 法, 只要存在一个。

29、正常L3-DB POD, MySQLService就可以正常提供服务。 0057 此外L3-DB POD可以在单物理主机上部署多个实例, 即单主机上可以承载多个 MySQL实例, 能够最大限度的复用物理资源。 而且L3-DB集群可以灵活扩展, 在不影响原业务 的情况下, 增加新的L3-DB的实例, 可以提高访问性能。 0058 对于步骤S3, 参见图3所示, 其包括如下步骤: 0059 S31.启动L2-DB POD; 0060 S32.监测L2-DB POD的L2-DB; 0061 S33.判断L2-DB是否启动, 若否, 执行步骤S34, 若是, 执行步骤S35; 0062 S34.经等待。

30、后返回步骤S32; 0063 S35.启动备份服务, 从L1-DB中同步数据; 0064 S36.启动L2-DB的快照服务。 0065 具体而言, 在本实施例中第一POD包括第一sidecar容器(以下记为sidecar2容器) 和L2-DB两个容器, sidecar容器主要用来完成一些辅助的工作, 比如网络连通性、 下载拷贝 文件等。 0066 第一POD启动或重启时, 会同时启动sidecar2和L2-DB这两个容器。 sidecar2容器 在启动后, 立即对第一POD中的L2-DB容器中的MySQL服务进行监测。 MySQL服务被判定为启 动且正常服务后, 登录L2-DB, 启动数据库的。

31、同步线程, 从L1-DB中同步数据。 0067 随后, sidecar2容器将会开启针对L2-DB的快照服务, 当服务请求到达时, 利用 xtrabackup工具生成L2-DB当前的全备份快照文件, 然后将文件推送给请求者。 0068 对于步骤S4, 参见图4所示, 其包括如下步骤: 0069 S41.启动L3-DB POD; 0070 S42.检查指定目录下的快照文件; 说明书 4/7 页 7 CN 111651523 A 7 0071 S43.判断指定目录下是否存在快照文件, 若否, 执行步骤S44, 若是, 执行步骤S46; 0072 S44.向L2-DB POD发送快照请求; 0073。

32、 S45.根据快照文件恢复全量备份; 0074 S46.读取同步起始位置; 0075 S47.监测L3-DB POD的L3-DB; 0076 S48.判断L3-DB是否启动, 若否, 执行步骤S49a, 若是, 执行步骤S49b; 0077 S49a.经等待后返回步骤S47; 0078 S49b.启动备份服务, 从L2-DB中同步数据。 0079 具体而言, 在本实施例中第二POD包括第二sidecar容器(以下记为sidecar3容器) 和L3-DB两个容器。 0080 L3-DB中的数据初始化, 由sidecar3完成。 然后, L3-DB实时以备库形式、 增量备份 L2-DB的数据到第二。

33、POD对应的持久化存储中。 具体而言, 可通过在第二POD外挂存储PVC, 使 能持久化其数据, 以保证在POD崩溃重启后, 可以快速恢复数据。 本实施例中可以是挂载到 Ceph RBD上。 L3-DB集群采用Ceph RDB进行读取, 可以支持高并发。 在本实施例中L3-DB为 Kubernetes容器平台上的其他微服务提供只读服务。 0081 第二POD启动或重启时, 会同时启动sidecar3和L3-DB这两个容器。 sidecar3容器 启动时, 会判断指定目录下是否存在快照文件, 存在则认为已完成全量恢复, 此后需要进行 增量备份。 否则, 向L2-DBPOD发送快照请求, 下载L2。

34、-DB的全备份快照文件到本地指定目录。 下载完成后, 利用xtrabackup工具恢复全量备份到L3-DB容器中的MySQL数据库中。 0082 无论是进行全量恢复还是进行增量备份, L3-DB POD中的sidecar3容器启动成功 后, 读取xtrabackup的备份恢复日志, 确定L3-DB的同步起始位置。 然后对同一第二POD的 L3-DB容器中的MySQL服务进行监测。 MySQL服务被判定为启动及功能正常后, 登录第二 MySQL数据库, 基于同步起始位置, 启动同步线程从L2-DB数据库中同步数据。 0083 在本实施例中, 通过快照全备份恢复的方式, 减少了数据重构的时间, 最。

35、大限度的 提升了新L3-DB实例的启动时间和故障恢复时间。 0084 作为一个优选地实施方式, 本实施例中采用StatefulSet的方式管理第二POD, 以 实现第二MySQL数据库的弹性伸缩。 0085 StatefulSet是Kubernetes平台提供的一种服务(编排和管理POD), 为了解决有状 态服务的问题。 0086 StatefulSet的弹性伸缩可以通过Kubernetes容器平台的命令 “kubectl scale statefulset XXX-replicasX” 来实现。 0087 作为一个优选地实施方式, 本实施例中采用NodePort的方式提供第二MySQL数据 。

36、库的访问地址, 并通过负载均衡算法, 将服务请求转发至下挂的第二POD。 负载均衡的前提 是创建一个Service服务即本实施例中的MySQL Service, 此服务指定了NodePort, 外部请 求访问的是服务, 然后服务通过负载均衡算法(默认是逐个轮询), 把服务请求转发给下挂 的第二POD。 0088 NodePort方式是Kubernetes容器平台提供的访问服务方式, 可以引导外部流量到 服务。 其原理是在所有节点上开放一个特定端口, 任何发送到该端口的流量都会被转发到 对应的服务。 说明书 5/7 页 8 CN 111651523 A 8 0089 负载均衡的前提是创建一个Se。

37、rvice服务, 即本实施例中创建的MySQL Service, 此服务指定了NodePort。 外部请求访问的是服务, 然后服务通过负载均衡算法(默认是逐个 轮询), 把服务请求转发给下挂的POD。 0090 综上所述, 本发明中的Kubernetes容器平台的MySQL数据同步方法, 由于L2-DB POD提供了冷备的能力, 其可靠性由Kubernetes平台保证, 在检测到L2-DB停止服务后, 即可 在其他节点重启服务。 充分利用了Kubernetes容器平台的特性, 崩溃后修复所需要的代价 小。 通过MySQL Service下挂多个第二POD的方法, 只要存在一个正常第二POD, 。

38、MySQL Service就可以正常提供服务, 进一步保证了可靠性。 0091 此外L3-DB POD可以在单物理主机上部署多个实例, 即单主机上可以承载多个 MySQL实例, 能够最大限度的复用物理资源。 而且L3-DB集群可以灵活扩展, 在不影响原业务 的情况下, 增加新的L3-DB的实例, 可以提高访问性能。 0092 本发明实施例提供一种Kubernetes容器平台的MySQL数据同步系统, 其包括配置 模块、 创建模块和启动同步模块。 0093 其中, 配置模块, 其用于以容器方式在第一POD中配置作为外部MySQL数据库从库 的第一MySQL数据库, 并以容器方式在第二POD中配置。

39、作为第一MySQL数据库从库的第二 MySQL数据库, 且第一POD被所述配置模块配置为: 当第一MySQL数据库停止服务时, 第一POD 自动重启; 0094 创建模块, 其用于创建MySQL Service, 且所述MySQL Service中下挂有多个所述 第二POD, ; 0095 启动同步模块, 其用于启动第一POD, 利用第一MySQL数据库从外部MySQL数据库中 同步数据; 还用于启动第二POD, 将第一MySQL数据库中的数据同步至第二MySQL数据库, 利 用第二MySQL数据库对Kubernetes容器平台提供只读服务。 0096 进一步地, 所述启动同步模块启动第一PO。

40、D, 利用第一MySQL数据库从外部MySQL数 据库中同步数据, 具体包括: 0097 启动第一POD, 以同时启动第一sidecar容器和第一MySQL数据库; 0098 利用第一sidecar容器监测第一MySQL数据库, 判定第一MySQL数据库中的MySQL服 务启动且正常服务后, 登录第一MySQL数据库, 启动数据库的同步线程, 从外部MySQL数据库 中同步数据, 并开启快照服务。 0099 进一步地, 所述启动同步模块启动第二POD, 将第一MySQL数据库中的数据同步至 第二MySQL数据库, 具体包括: 0100 启动第二POD, 以同时启动第二POD中的第二sideca。

41、r容器和第二MySQL数据库; 0101 第二sidecar容器判断指定目录下是否存在快照文件; 0102 在不存在快照文件时, 向第一POD发送快照请求, 下载第一MySQL数据库的全备份 快照文件到本地指定目录; 0103 在存在快照文件时, 确定第二MySQL数据库的同步起始位置, 利用第二sidecar容 器对同一第二POD中的第二MySQL数据库中的MySQL服务进行监测, 判定第二MySQL数据库中 的MySQL服务启动且正常服务后, 登录第二MySQL数据库, 基于同步起始位置, 启动同步线程 从第一MySQL数据库数据库中同步数据。 0104 进一步地, 所述配置模块采用Sta。

42、tefulSet的方式管理第二POD, 以实现第二MySQL 说明书 6/7 页 9 CN 111651523 A 9 数据库的弹性伸缩。 0105 进一步地, 所述配置模块采用NodePort的方式提供第二MySQL数据库的访问地址, 并通过负载均衡算法, 将服务请求转发至下挂的第二POD。 0106 本发明不局限于上述实施方式, 对于本技术领域的普通技术人员来说, 在不脱离 本发明原理的前提下, 还可以做出若干改进和润饰, 这些改进和润饰也视为本发明的保护 范围之内。 本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。 说明书 7/7 页 10 CN 111651523 A 10 图1 图2 说明书附图 1/3 页 11 CN 111651523 A 11 图3 说明书附图 2/3 页 12 CN 111651523 A 12 图4 说明书附图 3/3 页 13 CN 111651523 A 13 。

展开阅读全文
内容关键字: Kubernetes 容器 平台 MySQL 数据 同步 方法 系统
关于本文
本文标题:Kubernetes容器平台的MySQL数据同步方法及系统.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10427249.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1