加入收藏 | 设为首页 | 会员中心 | 我要投稿 站长网 (https://www.zhandada.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

一种基于云平台的高可用MySQL部署方法及系统与流程

发布时间:2022-10-20 15:02:51 所属栏目:MySql教程 来源:互联网
导读:
一种基于云平台的高可用mysql部署方法及系统
技术领域
1.本发明公开一种基于云平台的高可用mysql部署方法及系统,涉及云计算技术领域。
背景技术:
2.随着信息技术的广泛应用和快速发展,

一种基于云平台的高可用MySQL部署方法及系统与流程

一种基于云平台的高可用mysql部署方法及系统

技术领域

1.本发明公开一种基于云平台的高可用mysql部署方法及系统,涉及云计算技术领域。

背景技术:

2.随着信息技术的广泛应用和快速发展,云计算作为一种新兴的计算模型日益受到人们的广泛关注,科研、生产、商业、政府工作职能等多个领域开始越来越多地应用云计算技术,云计算技术日渐成熟,不断完善,不管是云平台自身的支持平台运行的服务组件还是云计算平台上面向用户部署的服务组件数量与日俱增。

3.kubernetes是容器集群管理系统,是云计算时代新型的技术和产物,可以实现容器集群的自动化部署、自动扩缩容、维护等功能。具体来说,通过kubernetes可以快速部署应用、快速扩展应用、无缝对接新的应用功能、节省资源并优化硬件资源的使用。

4.基于kubernetes技术部署和管理mysql主从集群,从节点(slave)可以动态的监听主节点(master)变化,并且可以水平扩展slave节点数量,从而提高服务的可用性。针对传统mysql主从模式中mysql集群,如果想增加数据库的读能力,需要手动部署服务器进行数据同步然后接入到mysql主从集群当中。这样做效率低下,而且出错率较高,并且安全性较低。

5.传统的数据库集群一般都是由多个虚拟机或者物理机,由运维人员手动搭建完成,不仅搭建过程费时费力,当业务多样化需要数据库集群水平扩展时,数据库集群节点数增加或者减少极不灵活。为了解决传统主从数据库集群的水平扩展不灵活问题,以及在kubernetes系统下如何让数据库集群进行安全的通信的问题,现发明一种基于云平台的高可用mysql部署方法及系统。

技术实现要素:

6.本发明针对现有技术的问题,提供一种基于云平台的高可用mysql部署方法及系统,所采用的技术方案为:一种基于云平台的高可用mysql部署方法,所述的方法具体步骤如下:

7.s1向kubernetes集群提交mysql高可用集群的的crd资源声明;

8.s2提供mysql高可用集群部署逻辑的组件mysql-operator watch到所述资源声明,从chart仓库中获取mysql高可用集群的chart部署到kubernetes集群中;

9.s3mysql高可用集群搭建完成,通过kubernetes系统提供的service服务对外提供服务。

10.所述s1的具体步骤如下:

11.s101使用operator-sdk创建项目工程,并添加crd资源;

12.s102定义所述crd资源的status结构体和spec结构体;

13.s103针对所述crd资源的status结构体和spec结构体的定义生成框架代码。

14.所述status结构体包括:mysql集群的状态。

15.所述spec结构体包括:mysql节点cpu规格、mysql节点memory规格、mysql节点存储类型、mysql节点存储规格、mysql集群配置文件、mysql集群的root密码、部署mysql集群所需chart包名称、mysql节点副本数。

16.所述s2的具体步骤如下:

17.s201创建0节点为主节点,每个节点分别创建mysql服务容器和用于备份数据的xtrabackup容器,将备份数据写入3307端口;

18.s202初始化从节点,监听上一个节点的3307端口,将接收到的数据放在指定的目录下;并且xtrabackup容器恢复从上一节点接收到的数据文件;

19.s203创建从节点,创建从节点的mysql容器,并接入主节点,从主节点同步数据;创建从节点的xtrabackup容器,将数据文件写入3307端口,提供下一个从节点接收;

20.s204判断节点数目,若节点数目小于设定节点数,重复步骤s202和s203,否则结束。

21.所述s3的具体步骤如下:

22.s301在kubernetes环境下部署mysql集群cr资源;

23.s302mysql-operator监听到cr资源创建,根据mysql集群cr资源,从指定chart包部署到kubernetes环境中;

24.s303mysql集群部署完成后,mysql-operator更新mysql集群cr资源状态为running。

25.一种基于云平台的高可用mysql部署系统,所述的系统具体包括声明提交模块、集群部署模块和服务部署模块:

26.声明提交模块:向kubernetes集群提交mysql高可用集群的的crd资源声明;

27.集群部署模块:提供mysql高可用集群部署逻辑的组件mysql-operator watch到所述资源声明,从chart仓库中获取mysql高可用集群的chart部署到kubernetes集群中;

28.服务部署模块:mysql高可用集群搭建完成,通过kubernetes系统提供的service服务对外提供服务。

29.所述声明提交模块具体包括工程创建模块、结构定义模块和代码生成模块:

30.工程创建模块:使用operator-sdk创建项目工程,并添加crd资源;

31.结构定义模块:定义所述crd资源的status结构体和spec结构体;

32.代码生成模块:针对所述crd资源的status结构体和spec结构体的定义生成框架代码。

33.所述集群部署模块具体包括节点处理模块、从节点初始化模块、从节点创建模块和节点判断模块:

34.节点处理模块:创建0节点为主节点,每个节点分别创建mysql服务容器和用于备份数据的xtrabackup容器,将备份数据写入3307端口;

35.从节点初始化模块:初始化从节点,监听上一个节点的3307端口,将接收到的数据放在指定的目录下;并且xtrabackup容器恢复从上一节点接收到的数据文件;

36.从节点创建模块:创建从节点,创建从节点的mysql容器,并接入主节点,从主节点同步数据;创建从节点的xtrabackup容器,将数据文件写入3307端口,提供下一个从节点接收;

37.节点判断模块:判断节点数目,若节点数目小于设定节点数,重复从节点初始化模块和从节点创建模块操作。

38.所述服务部署模块具体包括资源部署模块、环境部署模块和状态更新模块:

39.资源部署模块:在kubernetes环境下部署mysql集群cr资源;

40.环境部署模块:mysql-operator监听到cr资源创建,根据mysql集群cr资源,从指定chart包部署到kubernetes环境中;

41.状态更新模块:mysql集群部署完成后,mysql-operator更新mysql集群cr资源状态为running。

42.本发明的有益效果为:本发明方法能够实现集群动态水平扩展,在kubernetes系统中自动调整部署脚本的副本数量,可以根据副本数来创建mysql集群,用户可以根据业务量和业务峰值来动态的调整副本数,增加减少集群节点数量,来达到满足不同业务场景的需求,在业务高峰期保证服务的稳定性,在业务低峰期释放资源,相较于传统的数据库系统减少了人工运维成本,减少人为出错概率,不但提高了数据库系统的可用性也增大了资源利用率。

附图说明

43.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

44.图1是本发明方法实施例中高可用集群的资源声明mysqlcluster内容示意图;图2是本发明方法实施例中部署mysql集群cr资源流程图;图3是本发明方法实施例中部署mysql高可用集群流程图。

具体实施方式

45.下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。

46.实施例一:

47.一种基于云平台的高可用mysql部署方法,所述的方法具体步骤如下:

48.s1向kubernetes集群提交mysql高可用集群的的crd资源声明;

49.s2提供mysql高可用集群部署逻辑的组件mysql-operator watch到所述资源声明,从chart仓库中获取mysql高可用集群的chart部署到kubernetes集群中;

50.s3mysql高可用集群搭建完成,通过kubernetes系统提供的service服务对外提供服务;

51.首先用户按照s1向kubernetes集群提交mysql高可用集群的资源声明mysqlcluster,内容如图1所示,

52.s2提供mysql高可用集群部署逻辑的组件mysql-operator watch到所述资源声明,从chart仓库中获取mysql高可用集群的chart部署到kubernetes集群中;

53.进一步的,所述s1的具体步骤如下:

54.s101使用operator-sdk创建项目工程,并添加crd资源;

55.s102定义所述crd资源的status结构体和spec结构体;

56.s103针对所述crd资源的status结构体和spec结构体的定义生成框架代码;

57.进一步的,所述status结构体包括:mysql集群的状态;

58.进一步的,所述spec结构体包括:mysql节点cpu规格、mysql节点memory规格、mysql节点存储类型、mysql节点存储规格、mysql集群配置文件、mysql集群的root密码、部署mysql集群所需chart包名称、mysql节点副本数;

59.进一步的,所述s2的具体步骤如下:

60.s201创建0节点为主节点,每个节点分别创建mysql服务容器和用于备份数据的xtrabackup容器,将备份数据写入3307端口;

61.s202初始化从节点,监听上一个节点的3307端口,将接收到的数据放在指定的目录下;并且xtrabackup容器恢复从上一节点接收到的数据文件;

62.s203创建从节点,创建从节点的mysql容器,并接入主节点,从主节点同步数据;创建从节点的xtrabackup容器,将数据文件写入3307端口,提供下一个从节点接收;

63.s204判断节点数目,若节点数目小于设定节点数,重复步骤s202和s203,否则结束;

64.当所述mysql高可用集群部署完成,并且正常运行能够提供服务之后,需要增加集群读业务的能力时,可增加mysql高可用集群的资源声明中副本数(即集群节点数),mysql-operator检测到副本数变化时自动更改mysql高可用集群相应配置,利用kubernetes创建从节点,重复上述流程中的步骤s202~s204,直到集群的节点数达到配置的副本数量;

65.当业务减少,不需要大量从节点提供服务时,减少mysql高可用集群的资源声明中副本数,mysql-operator检测到副本数变化时,自动更改mysql高可用集群相应配置,通过kubernetes使得mysql高可用集群从最后一个从节点开始删除(即最后一个创建的节点最先被删除),依次进行,直到集群节点数达到副本数;

66.再进一步的,所述s3的具体步骤如下:

67.s301在kubernetes环境下部署mysql集群cr资源;

68.s302mysql-operator监听到cr资源创建,根据mysql集群cr资源,从指定chart包部署到kubernetes环境中;

69.s303mysql集群部署完成后,mysql-operator更新mysql集群cr资源状态为running。

70.实施例二:

71.一种基于云平台的高可用mysql部署系统,所述的系统具体包括声明提交模块、集群部署模块和服务部署模块:

72.声明提交模块:向kubernetes集群提交mysql高可用集群的的crd资源声明;

73.集群部署模块:提供mysql高可用集群部署逻辑的组件mysql-operator watch到所述资源声明,从chart仓库中获取mysql高可用集群的chart部署到kubernetes集群中;

74.服务部署模块:mysql高可用集群搭建完成,通过kubernetes系统提供的service服务对外提供服务;

75.进一步的,所述声明提交模块具体包括工程创建模块、结构定义模块和代码生成

模块:

76.工程创建模块:使用operator-sdk创建项目工程,并添加crd资源;

77.结构定义模块:定义所述crd资源的status结构体和spec结构体;

78.代码生成模块:针对所述crd资源的status结构体和spec结构体的定义生成框架代码;

79.进一步的,所述集群部署模块具体包括节点处理模块、从节点初始化模块、从节点创建模块和节点判断模块:

80.节点处理模块:创建0节点为主节点,每个节点分别创建mysql服务容器和用于备份数据的xtrabackup容器,将备份数据写入3307端口;

81.从节点初始化模块:初始化从节点,监听上一个节点的3307端口,将接收到的数据放在指定的目录下;并且xtrabackup容器恢复从上一节点接收到的数据文件;

82.从节点创建模块:创建从节点,创建从节点的mysql容器,并接入主节点,从主节点同步数据;创建从节点的xtrabackup容器,将数据文件写入3307端口,提供下一个从节点接收;

83.节点判断模块:判断节点数目,若节点数目小于设定节点数,重复从节点初始化模块和从节点创建模块操作;

84.再进一步的,所述服务部署模块具体包括资源部署模块、环境部署模块和状态更新模块:

85.资源部署模块:在kubernetes环境下部署mysql集群cr资源;

86.环境部署模块:mysql-operator监听到cr资源创建,根据mysql集群cr资源,从指定chart包部署到kubernetes环境中;

87.状态更新模块:mysql集群部署完成后,mysql-operator更新mysql集群cr资源状态为running。

88.最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

(编辑:站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!