一种基于Kubernetes的达梦主从集群部署方法和装置制造方法及图纸

技术编号:26342140 阅读:23 留言:0更新日期:2020-11-13 20:30
本发明专利技术涉及集群部署和容器技术领域,具体涉及一种基于Kubernetes的达梦主从集群部署方法和装置,其中方法包括:根据达梦主从集群的特点,通过编写Dockerfile制作达梦主从集群Docker镜像;基于Docker镜像开发达梦主从集群Chart仓库,制作达梦主从集群各节点的Kubernetes资源yml模板文件;基于Chart仓库模板文件,在Kubernetes环境上使用Helm指令自动化部署达梦主从集群。本发明专利技术以容器方式实现达梦主从集群的自动化部署,省去人工部署的麻烦,更能避免人为失误,且各节点容器之间互相隔离,互不影响,利于数据库软件的升级更新/回滚等操作,并有利于可移植性。

【技术实现步骤摘要】
一种基于Kubernetes的达梦主从集群部署方法和装置
本专利技术涉及集群部署和容器
,具体涉及一种基于Kubernetes的达梦主从集群部署方法和装置。
技术介绍
达梦主从集群软件是一种集成化的高可靠性解决方案,该方案基于数据库REDO日志,不依赖于第三方软件和存储,用于解决由于硬件故障、自然灾害等原因导致的数据库服务长时间中断问题,提供不间断数据库服务,可同时满足用户对数据安全性和高可用性的要求。达梦主从集群包含的主要部件有:主数据库、备数据库、联机REDO日志系统、本地REDO日志归档服务、实时REDO日志归档服务、REDO日志重做服务、MAL系统、守护进程和监视器。其中,守护进程和监视器是两个独立的工具,其他部件集成在达梦数据库服务器DMSERVER中。在使用达梦主从集群软件时,如何快速准确地实现集群部署至关重要。数据库软件的传统部署方式是通过插件或脚本来安装数据库服务,然而,这样做的缺点是数据库的运行、配置、管理和所有生命周期都将与当前操作系统绑定,不利于数据库软件的升级更新/回滚等操作;当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。需要说明的是,使用以上所述的传统方式进行集群部署时,通常需要运维人员的人为干预,人工部署存在很多麻烦,准确率和效率都比较低,难以快速准确地实现集群自动化部署。鉴于此,克服上述现有技术所存在的缺陷是本
亟待解决的问题。
技术实现思路
本专利技术需要解决的技术问题是:目前主从集群部署一般是通过插件或脚本来安装数据库服务,数据库的运行、配置、管理和所有生命周期都将与当前操作系统绑定,不利于数据库软件的升级更新/回滚等操作,创建虚拟机又不利于可移植性;而且需要人工部署,准确率和效率都比较低。本专利技术通过如下技术方案达到上述目的:第一方面,本专利技术提供了一种基于Kubernetes的达梦主从集群部署方法,包括:根据达梦主从集群的特点,通过编写Dockerfile制作达梦主从集群Docker镜像;其中,所述Docker镜像支持达梦主从集群中Primary节点、Standby节点以及Monitor节点的自动化部署安装配置;基于所述Docker镜像开发达梦主从集群Chart仓库,制作达梦主从集群各节点的Kubernetes资源yml模板文件;基于所述Chart仓库中的模板文件,在Kubernetes环境上使用Helm指令自动化部署达梦主从集群。优选的,所述Dockerfile的编写过程具体包括:确定基础镜像,并建立达梦主从集群镜像的制作者信息;准备达梦主从集群所需的安装包、配置模板文件和相关脚本文件;其中,所述相关脚本文件中包括主脚本startup.sh,达梦主从集群各节点的安装自动化部署工作都在所述主脚本startup.sh中;定义容器中要使用的环境变量,并将所述配置模板文件和所述相关脚本文件中需要修改的一个或多个配置项变量化;暴露达梦主从集群需要给外部使用的端口,并根据需要开放容器中的对应端口;初始化容器后,运行主脚本程序,以便实现达梦主从集群各节点的自动化安装部署工作;使用Docker命令构建达梦主从集群镜像,并将构建的镜像打标签后上传到Docker私服。优选的,所述配置模板文件包括MAL系统配置文件dmmal.ini、守护进程配置文件dmwatcher.ini、归档日志配置文件dmarch.ini以及监视器配置文件dmmonitor.ini中的一项或多项。优选的,所述相关脚本文件中还包括设置主备模式和oguid的sql脚本、远程复制主机上守护控制文件的exp脚本、达梦服务日志跨月切换shell脚本、容器时区控制脚本以及达梦主从集群安装部署之前的预处理脚本中的一项或多项。优选的,所述主脚本程序的运行过程具体为:在完成达梦主从集群部署安装之前的准备工作后,根据环境变量里传过来的信息判断节点角色,继而进入对应角色的安装部署流程,以实现集群各节点的并行部署;其中,所述节点角色包括主机、备机和监视器;当主机和备机上分别运行达梦守护进程dmwatcher,监视器上运行监视器进程dmmonitor之后,整个集群部署完毕。优选的,所述主机的安装部署流程具体包括:判断当前数据文件是否存在;如果存在,则直接以mount方式运行达梦服务主进程dmserver;如果不存在,则先准备初始数据文件,根据环境变量配置dm.ini文件、dmmal.ini文件、dmarch.ini文件、dmwatcher.ini文件、dmwatcher.ctl文件,再以mount方式运行达梦服务主进程dmserver;达梦服务主进程dmserver连接后,设置集群oguid并修改数据库为Primary模式,运行达梦守护进程dmwatcher。优选的,所述监视器的安装部署流程具体包括:判断当前数据文件是否存在;如果存在,则直接运行监视器进程dmmonitor;如果不存在,则先根据环境变量配置dmmonitor.ini文件,再运行监视器进程dmmonitor。优选的,在达梦主从集群部署过程中,所述方法还包括:各容器将达梦主从集群各节点的服务日志推送到系统输出流,并根据达梦服务日志的特点,采用软链接和cron定时任务实现达梦服务日志跨月监控。优选的,所述Chart仓库中的模板文件目录包括达梦主从集群各节点的deployment资源yml模板文件、service资源yml模板文件,以及两个yml模板文件中要使用的变量定义函数模板;所述deployment资源yml模板文件中定义容器基本信息、容器使用的Docker镜像、容器CPU内存资源、数据持久化卷、容器内部端口及网络协议、容器环境变量以及容器内部探针中的一项或多项信息;所述service资源yml模板文件用于将集群各节点容器以Service方式提供服务,容器间以NodePort方式进行访问;所述变量定义函数模板文件用于将达梦主从集群自动化部署中使用的一个或多个变量定义成函数,以便deployment资源yml模板文件和service资源yml模板文件调用。第二方面,本专利技术提供了一种基于Kubernetes的达梦主从集群部署装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成第一方面所述的基于Kubernetes的达梦主从集群部署方法。与现有技术相比,本专利技术的有益效果是:本专利技术根据达梦主从集群的特点制作Docker镜像,以容器方式部署达梦主从集群,集群中各节点容器之间互相隔离,容器之间数据库进程不会相互影响,利于数据库软件的升级更新/回滚等操作;相对于虚拟机,容器能快速部署,且由于容器与底层设施、机器文件系统是解耦的,所以能使数据库在不同云、不同版本文档来自技高网...

【技术保护点】
1.一种基于Kubernetes的达梦主从集群部署方法,其特征在于,包括:/n根据达梦主从集群的特点,通过编写Dockerfile制作达梦主从集群Docker镜像;其中,所述Docker镜像支持达梦主从集群中Primary节点、Standby节点以及Monitor节点的自动化部署安装配置;/n基于所述Docker镜像开发达梦主从集群Chart仓库,制作达梦主从集群各节点的Kubernetes资源yml模板文件;/n基于所述Chart仓库中的模板文件,在Kubernetes环境上使用Helm指令自动化部署达梦主从集群。/n

【技术特征摘要】
1.一种基于Kubernetes的达梦主从集群部署方法,其特征在于,包括:
根据达梦主从集群的特点,通过编写Dockerfile制作达梦主从集群Docker镜像;其中,所述Docker镜像支持达梦主从集群中Primary节点、Standby节点以及Monitor节点的自动化部署安装配置;
基于所述Docker镜像开发达梦主从集群Chart仓库,制作达梦主从集群各节点的Kubernetes资源yml模板文件;
基于所述Chart仓库中的模板文件,在Kubernetes环境上使用Helm指令自动化部署达梦主从集群。


2.根据权利要求1所述的基于Kubernetes的达梦主从集群部署方法,其特征在于,所述Dockerfile的编写过程具体包括:
确定基础镜像,并建立达梦主从集群镜像的制作者信息;
准备达梦主从集群所需的安装包、配置模板文件和相关脚本文件;其中,所述相关脚本文件中包括主脚本,达梦主从集群各节点的安装自动化部署工作都在所述主脚本中;
定义容器中要使用的环境变量,并将所述配置模板文件和所述相关脚本文件中需要修改的一个或多个配置项变量化;
暴露达梦主从集群需要给外部使用的端口,并根据需要开放容器中的对应端口;
初始化容器后,运行主脚本程序,以便实现达梦主从集群各节点的自动化安装部署工作;
使用Docker命令构建达梦主从集群镜像,并将构建的镜像打标签后上传到Docker私服。


3.根据权利要求2所述的基于Kubernetes的达梦主从集群部署方法,其特征在于,所述配置模板文件包括MAL系统配置文件、守护进程配置文件、归档日志配置文件以及监视器配置文件中的一项或多项。


4.根据权利要求2所述的基于Kubernetes的达梦主从集群部署方法,其特征在于,所述相关脚本文件中还包括设置主备模式和oguid的脚本、远程复制主机上守护控制文件的脚本、达梦服务日志跨月切换脚本、容器时区控制脚本以及达梦主从集群安装部署之前的预处理脚本中的一项或多项。


5.根据权利要求2所述的基于Kubernetes的达梦主从集群部署方法,其特征在于,所述主脚本程序的运行过程具体为:
在完成达梦主从集群部署安装之前的准备工作后,根据环境变量里传过来的信息判断节点角色,继而进入对应角色的安装部署流程,以实现集群各节点的并行部署;
其中,所述节点角色包括主机、备机和监视器;当主机和备机上分别运行达梦守护进程,监视器上运行监视器进程之后,整个集群部署完毕。


6.根据权利要求...

【专利技术属性】
技术研发人员:付铨陈琦王斌余院兰孙峰
申请(专利权)人:武汉达梦数据库有限公司
类型:发明
国别省市:湖北;42

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

1