CN111930466A - 一种基于Kubernetes的数据同步环境部署方法和装置 - Google Patents

一种基于Kubernetes的数据同步环境部署方法和装置 Download PDF

Info

Publication number
CN111930466A
CN111930466A CN202010471099.9A CN202010471099A CN111930466A CN 111930466 A CN111930466 A CN 111930466A CN 202010471099 A CN202010471099 A CN 202010471099A CN 111930466 A CN111930466 A CN 111930466A
Authority
CN
China
Prior art keywords
environment
data
deployment
synchronization
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.)
Pending
Application number
CN202010471099.9A
Other languages
English (en)
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.)
Wuhan Dameng Database Co Ltd
Original Assignee
Wuhan Dameng Database 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 Wuhan Dameng Database Co Ltd filed Critical Wuhan Dameng Database Co Ltd
Priority to CN202010471099.9A priority Critical patent/CN111930466A/zh
Publication of CN111930466A publication Critical patent/CN111930466A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/21Design, administration or maintenance of databases
    • 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
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • 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/45562Creating, deleting, cloning 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/45587Isolation or security of virtual machine instances

Abstract

本发明涉及数据同步和容器技术领域,具体涉及一种基于Kubernetes的数据同步环境部署方法和装置,其中方法包括:根据达梦数据实时同步软件的特点,通过编写Dockerfile制作达梦数据实时同步软件Docker镜像;基于Docker镜像开发Chart仓库,制作各节点的Kubernetes资源yml模板,并定义服务配置模板和字典参数模板;基于Chart仓库模板文件,在Kubernetes环境上使用Helm指令自动化部署达梦数据实时同步环境。本发明实现了数据同步环境的自动化部署,省去人工部署的麻烦,更能避免人为失误;而且将达梦数据实时同步软件应用到容器中,解决了容器间数据库数据的在线迁移问题。

Description

一种基于Kubernetes的数据同步环境部署方法和装置
【技术领域】
本发明涉及数据同步和容器技术领域,具体涉及一种基于Kubernetes的数据同步环境部署方法和装置。
【背景技术】
达梦数据实时同步软件(DMHS)是支持异构环境的高性能、高可靠、高可扩展数据库实时同步复制系统。该产品采用基于日志的结构化数据复制技术,不依赖主机上源数据库的触发器或者规则,对主机源数据库系统几乎无影响,能以极少的系统开销实现秒级数据实时同步复制,具有很大的应用价值。
在使用DMHS这样的数据同步软件时,如何快速准确地实现数据同步环境部署至关重要。数据同步软件的传统部署方式是通过插件或脚本来安装数据同步服务,一条完整的数据同步链路至少包含源和目的两个数据同步服务,另外还需要对源端和目的端数据同步服务进行配置;这样做不仅数据同步服务的运行、配置、管理以及所有生命周期将与当前操作系统绑定,而且一套完整的数据同步环境还要依赖数据库环境,需配置源库和目的库连接信息,这样增加了运维难度,不利于数据同步软件的升级更新/回滚等操作;当然也可以通过创建虚拟机的方式来实现某些功能,但是虚拟机非常重,并不利于可移植性。
需要说明的是,使用以上所述的传统方式搭建一套同步环境,通常需要运维人员的人为干预,比如配置源端和目的端同步服务、装载数据字典等工作,人工部署存在很多麻烦,准确率和效率都比较低,难以快速准确地实现数据同步环境的自动化部署。
另一方面,对于容器中的数据库,虽然是以计算和存储分离的方式进行部署的,但是容器难免会遇到故障重启导致数据库服务中断,使得应用业务也中断了;而由于容器间的数据无法进行实时同步,存在严重的容器间数据在线迁移问题,影响了数据的正常使用。
鉴于此,克服上述现有技术所存在的缺陷是本技术领域亟待解决的问题。
【发明内容】
本发明需要解决的技术问题是:
传统的数据同步环境部署通常需要运维人员的人为干预,比如配置源端和目的端同步服务,人工部署存在很多麻烦,难以快速准确地实现数据同步环境的自动化部署;另一方面,容器间的数据无法进行实时同步,存在严重的容器间数据在线迁移问题,影响数据的正常使用。
本发明通过如下技术方案达到上述目的:
第一方面,本发明提供了一种基于Kubernetes的数据同步环境部署方法,包括:
根据达梦数据实时同步软件的特点,通过编写Dockerfile制作达梦数据实时同步软件Docker镜像;其中,所述Docker镜像支持源端节点和目的端节点的自动化部署安装配置;
基于所述Docker镜像开发达梦数据实时同步软件Chart仓库,制作数据同步环境中源端节点和目的端节点的Kubernetes资源yml模板,并定义服务配置模板和字典参数模板;
基于所述Chart仓库中的模板文件,在Kubernetes环境上使用Helm指令自动化部署达梦数据实时同步环境。
优选的,所述Dockerfile的编写过程具体包括:
确定基础镜像,并建立达梦数据实时同步软件镜像的制作者信息;
准备达梦数据实时同步环境所需的安装包、配置模板文件和相关脚本文件;其中,所述相关脚本文件中包括主脚本startup.sh;
定义容器中要使用的环境变量,并将所述配置模板文件和所述相关脚本文件中需要修改的一个或多个配置项变量化;
暴露数据同步环境需要给外部使用的端口,并根据需要开放容器中的对应端口;
初始化容器后,运行主脚本程序,以便实现数据同步环境中源端节点和目的端节点的安装自动化部署工作;
使用Docker命令构建达梦数据实时同步软件镜像,并将构建的镜像打标签后上传到Docker私服。
优选的,所述配置模板文件包括源端配置模板和目的端配置模板;
所述相关脚本文件中还包括字典装载模板脚本、源端上判断目的端同步服务EXEC模块运行情况的exp脚本、达梦数据实时同步服务日志跨月切换shell脚本、容器时区控制脚本、达梦数据实时同步环境安装部署之前预处理脚本中的一项或多项。
优选的,所述主脚本程序的运行过程具体为:
在完成达梦数据实时同步软件部署安装之前的准备工作后,根据环境变量里传过来的信息判断节点角色,继而进入对应角色的安装部署流程,以实现同步环境各节点的并行部署;
其中,所述节点角色包括源端和目的端;当源端运行CPT模块开启同步、目的端运行EXEC模块开启同步之后,整个数据同步环境部署完毕。
优选的,所述源端的安装部署流程具体包括:
准备源端数据库环境后,配置源端同步服务,根据容器中传过来的环境变量替换配置模板中对应的配置项,并拷贝到bin运行环境目录;
运行源端MGR同步服务,当MGR服务和目的端EXEC模块正常运行后,根据所述字典参数模板装载字典;字典装载完毕之后,运行CPT模块开启同步。
优选的,所述目的端的安装部署流程具体包括:
准备目的端数据库环境后,配置目的端同步服务,根据容器中传过来的环境变量替换配置模板中对应的配置项,并拷贝到bin运行环境目录;
运行目的端MGR同步服务,当MGR服务正常运行后,运行EXEC模块开启同步。
优选的,在数据同步环境部署完毕之后,所述方法还包括:
在源端数据库执行DDL和DML操作,并到目的端数据库验证对应的DDL和DML操作是否执行,以便验证源端和目的端之间的数据同步是否有效。
优选的,在数据同步环境部署过程中,所述方法还包括:
各容器将数据同步环境各节点的同步服务日志推送到系统输出流,并根据达梦数据实时同步软件日志的特点,采用软链接和cron定时任务实现达梦数据实时同步服务日志跨月监控。
优选的,所述Chart仓库中的模板文件目录包括数据同步环境各节点的deployment资源yml模板文件、service资源yml模板文件,以及各yml模板文件要使用的变量定义函数模板_helpers.tpl;
所述deployment资源yml模板文件中定义容器基本信息、容器使用的Docker镜像、容器CPU内存资源、数据持久化卷、容器内部端口及网络协议、容器环境变量以及容器内部探针中的一项或多项信息;
所述service资源yml模板文件用于将同步环境中各节点容器以Service方式提供服务,容器间以NodePort方式进行访问;
所述变量定义函数模板_helpers.tpl文件用于将数据同步环境自动化部署中使用的一个或多个变量定义成函数,以便deployment资源yml模板文件和service资源yml模板文件调用。
第二方面,本发明提供了一种基于Kubernetes的数据同步环境部署装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成第一方面所述的基于Kubernetes的数据同步环境部署方法。
与现有技术相比,本发明的有益效果是:
本发明提供了一种容器间数据实时同步环境的部署方案,根据达梦数据实时同步软件的特点制作Docker镜像,可将需要人为干预的地方模板化,部署时根据需要指定对应值即可完成同步环境的自动化部署,整个部署过程无需运维人员的人为干预,省去了人工部署的麻烦,更能避免人为失误;而且,通过将达梦数据实时同步软件应用到容器中,容器之间可进行数据实时同步,解决了容器间数据库数据的在线迁移问题,极具推广价值。
【附图说明】
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于Kubernetes的数据同步环境部署方法的流程图;
图2为本发明实施例提供的一种达梦数据实时同步软件Dockerfile的编写流程示意图;
图3为本发明实施例提供的一种达梦数据实时同步软件镜像中主脚本程序的执行流程图;
图4为本发明实施例提供的一种达梦数据实时同步软件Chart仓库模板文件目录的示意图;
图5为本发明实施例提供的一种基于Kubernetes的数据同步环境部署装置的架构图。
【具体实施方式】
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面就参考附图和实施例结合来详细说明本发明。
实施例1:
针对现有技术中存在的一系列问题,本发明实施例提供了一种基于Kubernetes的数据同步环境部署方法,不仅可实现数据同步环境的自动化部署,还可解决容器间数据库数据的在线迁移问题。
如图1所示,本发明实施例提供的一种基于Kubernetes的数据同步环境部署方法具体包括以下步骤:
步骤10,根据达梦数据实时同步软件的特点,通过编写Dockerfile制作达梦数据实时同步软件Docker镜像。
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux机器或Windows机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。
在该步骤中,利用Docker技术,根据达梦数据实时同步软件的特点,通过编写Dockerfile来制作和构建达梦数据实时同步软件Docker镜像文件;其中,所述Docker镜像支持数据同步环境中源端节点(即源端同步服务节点,简称为CPT节点)和目的端节点(即目的端同步服务节点,简称为EXEC节点)的自动化部署安装配置,还可支持数据同步服务日志监控。其中,各节点的安装部署工作通过所述Docker镜像Dockerfile里的核心脚本(startup.sh)来控制,通过运行startup.sh可实现源端节点和目的端节点的自动化并行安装部署,还可实现源端到目的端的数据实时同步,有效解决容器间数据的在线迁移问题。其中,关于Dockerfile的具体编写过程以及startup.sh的运行将在后续展开详细介绍,此处不再赘述。
步骤20,基于所述Docker镜像开发达梦数据实时同步软件Chart仓库,制作数据同步环境中源端节点和目的端节点的Kubernetes资源yml模板,并定义服务配置模板和字典参数模板。
Chart是Helm的软件包,采用TAR格式,类似于APT的DEB包或者YUM的RPM包,其包含了一组定义Kubernetes资源相关的YAML文件。Chart仓库由打包的Chart和称为index.yaml的特殊文件组成;在高层次上,Chart仓库是可以存储和共享打包Chart的地方。
在该步骤中,根据前面制作的Docker镜像中各容器需要开放的参数或变量,来开发制作达梦数据实时同步软件Chart仓库进行关联,也就是在仓库中制作数据同步环境各节点的Kubernetes资源yml模板、服务配置模板和字典参数模板来进行关联;其中,所述Kubernetes资源yml模板主要是deployment资源yml模板文件(即部署资源yml模板文件)和service资源yml模板文件(即服务资源yml模板文件)。通过制作Chart仓库以及一系列相关的模板文件,可实现同步服务根据指定参数自动化部署及同步服务进程监控,以此来保证同步服务的可扩展性和稳定性。其中,关于Chart仓库的具体模板文件目录将在后续展开详细介绍,此处不再赘述。
步骤30,基于所述Chart仓库中的模板文件,在Kubernetes环境上使用Helm指令自动化部署达梦数据实时同步环境。
Kubernetes是Google开源的一个容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理,Kubernetes的目标是让部署容器化的应用简单并且高效,Kubernetes提供了应用部署、规划、更新、维护的一种机制。Helm是Kubernetes的一个包管理工具,主要用于Kubernetes应用程序Chart的创建、打包、发布,以及创建和管理本地和远程的Chart仓库,可以把Helm类比为Ubuntu下的apt-get或者CentOS下的yum包管理工具。
前面步骤中达梦数据实时同步软件Chart仓库开发完毕之后,该步骤中就可以在Kubernetes环境上使用Helm指令自动化部署容器间的数据实时同步环境。其中,根据指定的节点角色信息可以实现各种同步拓扑环境的自动化部署,比如一对一同步、一对多广播型同步、多对一聚合型同步等多种数据同步形式,从而满足用户的各种复杂数据同步需求。另外,通过查看各服务节点日志即可可以了解当前数据同步情况。
下面结合附图,对各步骤的具体实施过程展开介绍:
在所述步骤10中,根据达梦数据实时同步软件的特点,通过编写Dockerfile制作达梦数据实时同步软件Docker镜像。其中,所述Dockerfile的编写过程可参考图2,具体包括以下步骤:
步骤101,确定基础镜像,并建立达梦数据实时同步软件镜像的制作者信息。其中,为了解决达梦数据实时同步服务跨月日志监控问题,此处的基础镜像优选采用制作好的带有cron服务的ubuntu16.04基础镜像;当然,也可以根据需要选择其他合适的基础镜像,在此不做具体限定。
步骤102,准备达梦数据实时同步环境所需的安装包、配置模板文件和相关脚本文件;即准备达梦数据实时同步环境所需的一系列数据文件。
其中,安装包数据需要精简,最基本的目录结构通常包含bin目录(执行码目录)、data目录(数据目录)以及log目录(日志目录)。
由于达梦数据实时同步环境主要由两类节点组成,即源端和目的端;因此,配置模板文件主要包含源端配置模板和目的端配置模板;其中,配置模板文件中可将一些需要定制的配置项变量化,方便后面使用容器环境变量进行修改替换。
相关脚本模板文件中包括主脚本startup.sh(即上文提到的核心脚本),达梦数据同步环境各节点的安装自动化部署工作都在所述主脚本startup.sh中,而且达梦数据实时同步服务日志监控实现也在所述主脚本startup.sh中。除主脚本startup.sh外,相关脚本模板文件中还主要包括字典装载模板脚本、源端上判断目的端同步服务EXEC模块运行情况的exp脚本、达梦数据实时同步服务日志跨月切换shell脚本、容器时区控制脚本、达梦数据实时同步环境安装部署之前预处理脚本中的一项或多项。
步骤103,定义容器中要使用的环境变量,并将所述配置模板文件和所述相关脚本文件中需要修改的一个或多个配置项变量化。这里一般是将需要经常修改的配置项变量化,如此一来,初始化容器后,在执行startup.sh脚本过程中就可以使用这些容器变量,然后替换模板文件中对应的配置项。
步骤104,暴露数据同步环境需要给外部使用的端口,并根据需要开放容器中的对应端口。为方面后续的维护工作,本发明实施例主要暴露了同步服务管理端口和数据库端口,但并不唯一限定。
步骤105,初始化容器后,运行主脚本程序。其中,达梦数据实时同步环境各节点的安装自动化部署工作都在主脚本(startup.sh)程序中,因此运行主脚本程序后,即可实现数据同步环境源端节点和目的端节点的安装自动化部署;另外,达梦数据实时同步服务日志监控实现也在主脚本程序startup.sh中。关于主脚本程序的运行,后面会详细介绍,在此不做赘述。
步骤106,使用Docker命令构建数据同步环境镜像,并将构建的镜像打标签后上传到Docker私服,以便后续在Kubernetes环境中使用。
进一步结合图3,在所述步骤105中,所述主脚本startup.sh的运行过程具体如下:
首先,完成达梦数据实时同步软件部署安装之前的准备工作。在这里,所述准备工作主要是执行预处理脚本,可以方便后续运维,以及设置vim、开启ROOT SSH访问、追加加密算法、cgroup配置、expect插件安装等工作。
其次,根据环境变量里传过来的信息判断节点角色,继而进入对应角色的安装部署流程。其中,数据同步环境节点有两种角色,即源端和目的端,根据环境变量里传过来的角色可进入到对应角色的安装部署流程。这样设计能够实现同步环境各节点的并行部署,达到快速自动化安装部署,提高用户交付响应速度,增强用户体验。当源端运行CPT模块开启同步、目的端运行EXEC模块开启同步之后,整个数据同步环境部署完毕。
其中,源端节点和目的端节点的安装部署流程大致相同,下面继续结合图3,对各节点角色的安装部署流程进行详细介绍。
当判断节点角色为源端时,进入源端的安装部署流程,所述源端的安装部署流程具体如下:
第一步,准备源端数据库环境。其中,数据库运行环境可以跟数据同步服务在一个容器中,也可以在不同的容器。由于源端同步服务需要分析归档日志,若在不同的容器中,源端的同步服务容器需将源库的数据归档目录挂载到同步服务容器中;若在同一个容器中,源库需开启归档和附加日志,以方便源端同步服务分析归档。
第二步,配置源端同步服务,根据容器中传过来的环境变量替换配置模板中对应的配置项,并拷贝到bin运行环境目录。
第三步,运行源端MGR同步服务,运行之后,源端需要判断MGR服务和目的端EXEC模块是否正常运行,等待MGR服务和目的端EXEC模块正常运行后,再根据所述字典参数模板装载字典;字典装载完毕之后,即可运行CPT模块开启同步,即开启源端日志分析。至此,源端部署完毕。
当判断节点角色为目的端时,进入目的端的安装部署流程,所述目的端的安装部署流程具体如下:
第一步,准备目的端数据库环境。与源端同样地,数据库运行环境可以跟数据同步服务在一个容器中,也可以在不同的容器。
第二步,配置目的端同步服务,根据容器中传过来的环境变量替换配置模板中对应的配置项,并拷贝到bin运行环境目录。
第三步,运行目的端MGR同步服务,运行之后,目的端需要判断MGR服务是否正常运行,等待MGR服务正常运行后,运行EXEC模块开启同步。至此,目的端部署完毕。
如图3,至源端运行CPT模块开启同步、目的端运行EXEC模块开启同步之后,整个数据同步环境已经部署搭建完毕。
在本发明实施例中,DMHS采用并行处理体系,能够实时读取源端数据库日志,以较低的资源占用来实现大批量的数据实时同步;传输过程中,DMHS可直接通过TCP/IP进行网络传输,无需依赖于数据库自身的传递方式,通过对传输数据进行筛选和压缩,还可以进一步降低带宽需求。另外,DMHS的数据同步以源数据库的事务为单位,严格按照主机业务系统事务顺序实施数据同步,保障备机数据库与主机数据库的事务级完整性和一致性,确保备机数据库符合主机业务系统事务逻辑。通过这种事务级粒度的数据一致性维护,使得备机数据库系统分担主机数据库系统上的业务负载成为可能。
进一步地,本发明实施例还提供了一种数据实时同步环境验证的方法,即在数据同步环境部署完毕之后,基于sql脚本的方式来验证源端数据库和目的端数据库之间的数据同步,具体为:在源端数据库执行DDL和DML操作,并到目的端数据库验证对应的DDL和DML操作是否执行。通过这种方法,可验证源端和目的端之间的数据同步是否有效,保障数据实时同步环境的正确性。
进一步地,由于容器可以动态收集系统输出流中的日志,为了方便后续运维工作,在数据同步环境部署过程中,本发明实施例的各容器可将数据同步环境中各节点的同步服务日志推送到系统输出流,并根据达梦数据实时同步软件日志的特点,使用软链接和cron定时任务实现达梦数据实时同步服务日志跨月监控。
在所述步骤20中,基于所述Docker镜像开发达梦数据实时同步软件Chart仓库,制作数据同步环境中源端节点和目的端节点的Kubernetes资源yml模板,并定义服务配置模板和字典参数模板。其中,所述Chart仓库的模板文件目录可参考图4,主要包括数据同步环境各节点(即源端节点和目的端节点)的deployment资源yml模板文件和service资源yml模板文件等Kubernetes资源yml模板文件,以及各yml模板文件中要使用的变量定义函数模板_helpers.tpl。各模板文件的结构特点如下:
本发明实施例为了方便说明,将数据库和同步服务放在同一个容器中;则所述deployment资源yml模板文件中主要定义了容器基本信息、容器使用的Docker镜像、容器CPU内存资源、数据持久化卷、容器内部端口及网络协议、容器环境变量以及容器内部探针中的一项或多项信息。其中,容器使用的Docker镜像即为步骤10中开发制作的达梦数据实时同步软件镜像;容器内部探针可对同步服务进程进行定时检测,守护同步服务主进程。
所述service资源yml模板文件主要是将同步环境中各节点容器以Service方式提供服务,容器间以NodePort方式进行访问;通过这种方式,同步环境内部各节点容器之间通信就可以通过服务名方式进行访问,成功解决了由于容器重启导致容器内部虚拟IP变化无法访问的问题。
所述变量定义函数模板_helpers.tpl文件主要用于将数据同步环境自动化部署中使用的一个或多个变量定义成函数,以便deployment资源yml模板文件和service资源yml模板文件调用;举例说明,可以将linkid(即同步链路ID,全局唯一)定义成模板函数,设置默认值生成方式,这样既可以显示指定linkid,也可以通过linkid模板函数生成随机值。
在所述步骤30中,达梦数据实时同步软件Chart仓库开发完毕之后,就可以在Kubernetes环境上使用Helm指令自动化部署容器间数据实时同步环境了。具体的Helm命令如下:首先进到达梦数据实时同步软件Chart仓库的工程目录,然后执行“helm install.--name dmhs--namespace dameng--values values.yaml”命令,快速完成容器间数据实时同步环境的自动化部署;其中,values.yaml里定义了同步环境部署中使用的变量。通过这种方式,可以将经常要修改的配置项定义其中,这样就使得同步环境的部署灵活多样。部署完成之后,查看发现启动了CPT节点和EXEC节点两个容器,查看源端和目的端容器日志可以看到同步过程中的服务日志信息。
需要说明的是,本发明实施例是以常用的一对一同步来举例说明;其他拓扑结构的同步也可以使用本发明的方法实现,具体实现方法可参考数据同步环境的部署方案,在此不一一赘述。因此,本发明在解决数据库容器间数据实时同步方面具有通用性。
综上所述,本发明实施例提供的一种基于Kubernetes的数据同步环境部署方法,主要有以下优势:
本发明提供了一种容器间数据实时同步环境的部署方案,根据达梦数据实时同步软件的特点制作Docker镜像,可将需要人为干预的地方模板化,部署的时候根据需要指定对应值即可完成同步环境的自动化部署,整个部署过程无需运维人员的人为干预,省去了人工部署的麻烦,更能避免人为失误;而且,通过将达梦数据实时同步软件(DMHS)应用到容器中,容器之间可进行数据实时同步,即源端与目的端之间数据实时同步,解决了容器间数据库数据的在线迁移问题,极具推广价值。
实施例2:
在上述实施例1提供的基于Kubernetes的数据同步环境部署方法的基础上,本发明还提供了一种可用于实现上述方法的基于Kubernetes的数据同步环境部署装置,如图5所示,是本发明实施例的装置架构示意图。本实施例的基于Kubernetes的数据同步环境部署装置包括一个或多个处理器21以及存储器22。其中,图5中以一个处理器21为例。
所述处理器21和所述存储器22可以通过总线或者其他方式连接,图5中以通过总线连接为例。
所述存储器22作为一种基于Kubernetes的数据同步环境部署方法非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1中的基于Kubernetes的数据同步环境部署方法。所述处理器21通过运行存储在所述存储器22中的非易失性软件程序、指令以及模块,从而执行基于Kubernetes的数据同步环境部署装置的各种功能应用以及数据处理,即实现实施例1的基于Kubernetes的数据同步环境部署方法。
所述存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,所述存储器22可选包括相对于所述处理器21远程设置的存储器,这些远程存储器可以通过网络连接至所述处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的基于Kubernetes的数据同步环境部署方法,例如,执行以上描述的图1-图3所示的各个步骤。
本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁盘或光盘等。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种基于Kubernetes的数据同步环境部署方法,其特征在于,包括:
根据达梦数据实时同步软件的特点,通过编写Dockerfile制作达梦数据实时同步软件Docker镜像;其中,所述Docker镜像支持源端节点和目的端节点的自动化部署安装配置;
基于所述Docker镜像开发达梦数据实时同步软件Chart仓库,制作数据同步环境中源端节点和目的端节点的Kubernetes资源yml模板,并定义服务配置模板和字典参数模板;
基于所述Chart仓库中的模板文件,在Kubernetes环境上使用Helm指令自动化部署达梦数据实时同步环境。
2.根据权利要求1所述的基于Kubernetes的数据同步环境部署方法,其特征在于,所述Dockerfile的编写过程具体包括:
确定基础镜像,并建立达梦数据实时同步软件镜像的制作者信息;
准备达梦数据实时同步环境所需的安装包、配置模板文件和相关脚本文件;其中,所述相关脚本文件中包括主脚本;
定义容器中要使用的环境变量,并将所述配置模板文件和所述相关脚本文件中需要修改的一个或多个配置项变量化;
暴露数据同步环境需要给外部使用的端口,并根据需要开放容器中的对应端口;
初始化容器后,运行主脚本程序,以便实现数据同步环境中源端节点和目的端节点的安装自动化部署工作;
使用Docker命令构建达梦数据实时同步软件镜像,并将构建的镜像打标签后上传到Docker私服。
3.根据权利要求2所述的基于Kubernetes的数据同步环境部署方法,其特征在于,所述配置模板文件包括源端配置模板和目的端配置模板;
所述相关脚本文件中还包括字典装载模板脚本、源端上判断目的端同步服务EXEC模块运行情况的脚本、达梦数据实时同步服务日志跨月切换脚本、容器时区控制脚本、达梦数据实时同步环境安装部署之前预处理脚本中的一项或多项。
4.根据权利要求2所述的基于Kubernetes的数据同步环境部署方法,其特征在于,所述主脚本程序的运行过程具体为:
在完成达梦数据实时同步软件部署安装之前的准备工作后,根据环境变量里传过来的信息判断节点角色,继而进入对应角色的安装部署流程,以实现同步环境各节点的并行部署;
其中,所述节点角色包括源端和目的端;当源端运行CPT模块开启同步、目的端运行EXEC模块开启同步之后,整个数据同步环境部署完毕。
5.根据权利要求4所述的基于Kubernetes的数据同步环境部署方法,其特征在于,所述源端的安装部署流程具体包括:
准备源端数据库环境后,配置源端同步服务,根据容器中传过来的环境变量替换配置模板中对应的配置项,并拷贝到bin运行环境目录;
运行源端MGR同步服务,当MGR服务和目的端EXEC模块正常运行后,根据所述字典参数模板装载字典;字典装载完毕之后,运行CPT模块开启同步。
6.根据权利要求4所述的基于Kubernetes的数据同步环境部署方法,其特征在于,所述目的端的安装部署流程具体包括:
准备目的端数据库环境后,配置目的端同步服务,根据容器中传过来的环境变量替换配置模板中对应的配置项,并拷贝到bin运行环境目录;
运行目的端MGR同步服务,当MGR服务正常运行后,运行EXEC模块开启同步。
7.根据权利要求4所述的基于Kubernetes的数据同步环境部署方法,其特征在于,在数据同步环境部署完毕之后,所述方法还包括:
在源端数据库执行DDL和DML操作,并到目的端数据库验证对应的DDL和DML操作是否执行,以便验证源端和目的端之间的数据同步是否有效。
8.根据权利要求2所述的基于Kubernetes的数据同步环境部署方法,其特征在于,在数据同步环境部署过程中,所述方法还包括:
各容器将数据同步环境各节点的同步服务日志推送到系统输出流,并根据达梦数据实时同步软件日志的特点,采用软链接和cron定时任务实现达梦数据实时同步服务日志跨月监控。
9.根据权利要求1-8任一所述的基于Kubernetes的数据同步环境部署方法,其特征在于,所述Chart仓库中的模板文件目录包括数据同步环境各节点的deployment资源yml模板文件、service资源yml模板文件,以及各yml模板文件要使用的变量定义函数模板;
所述deployment资源yml模板文件中定义容器基本信息、容器使用的Docker镜像、容器CPU内存资源、数据持久化卷、容器内部端口及网络协议、容器环境变量以及容器内部探针中的一项或多项信息;
所述service资源yml模板文件用于将同步环境中各节点容器以Service方式提供服务,容器间以NodePort方式进行访问;
所述变量定义函数模板文件用于将数据同步环境自动化部署中使用的一个或多个变量定义成函数,以便deployment资源yml模板文件和service资源yml模板文件调用。
10.一种基于Kubernetes的数据同步环境部署装置,其特征在于,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成权利要求1-9任一所述的基于Kubernetes的数据同步环境部署方法。
CN202010471099.9A 2020-05-28 2020-05-28 一种基于Kubernetes的数据同步环境部署方法和装置 Pending CN111930466A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010471099.9A CN111930466A (zh) 2020-05-28 2020-05-28 一种基于Kubernetes的数据同步环境部署方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010471099.9A CN111930466A (zh) 2020-05-28 2020-05-28 一种基于Kubernetes的数据同步环境部署方法和装置

Publications (1)

Publication Number Publication Date
CN111930466A true CN111930466A (zh) 2020-11-13

Family

ID=73316405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010471099.9A Pending CN111930466A (zh) 2020-05-28 2020-05-28 一种基于Kubernetes的数据同步环境部署方法和装置

Country Status (1)

Country Link
CN (1) CN111930466A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312063A (zh) * 2021-05-31 2021-08-27 中电福富信息科技有限公司 基于Kubernetes的软件系统快速部署升级方法
CN116450622A (zh) * 2023-06-16 2023-07-18 建信金融科技有限责任公司 数据入库的方法、装置、设备和计算机可读介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109189860A (zh) * 2018-10-19 2019-01-11 山东浪潮云信息技术有限公司 一种基于Kubernetes系统的MySQL主备增量同步方法
CN109947536A (zh) * 2019-03-25 2019-06-28 山东浪潮云信息技术有限公司 一种基于Kubernetes的PostgreSQL自动化部署方法
WO2019184164A1 (zh) * 2018-03-30 2019-10-03 平安科技(深圳)有限公司 自动部署Kubernetes从节点的方法、装置、终端设备及可读存储介质
CN110765203A (zh) * 2019-09-29 2020-02-07 烽火通信科技股份有限公司 一种容器MySQL主从同步及性能采集实现方法及系统
CN111258742A (zh) * 2020-02-17 2020-06-09 杭州依图医疗技术有限公司 一种数据同步的方法、系统、计算设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019184164A1 (zh) * 2018-03-30 2019-10-03 平安科技(深圳)有限公司 自动部署Kubernetes从节点的方法、装置、终端设备及可读存储介质
CN109189860A (zh) * 2018-10-19 2019-01-11 山东浪潮云信息技术有限公司 一种基于Kubernetes系统的MySQL主备增量同步方法
CN109947536A (zh) * 2019-03-25 2019-06-28 山东浪潮云信息技术有限公司 一种基于Kubernetes的PostgreSQL自动化部署方法
CN110765203A (zh) * 2019-09-29 2020-02-07 烽火通信科技股份有限公司 一种容器MySQL主从同步及性能采集实现方法及系统
CN111258742A (zh) * 2020-02-17 2020-06-09 杭州依图医疗技术有限公司 一种数据同步的方法、系统、计算设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PAULLIU: "利用Kubernetes搭建mysql主从复制集群", 《HTTPS://WWW.JIANSHU.COM/P/509B65E9A4F5》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113312063A (zh) * 2021-05-31 2021-08-27 中电福富信息科技有限公司 基于Kubernetes的软件系统快速部署升级方法
CN116450622A (zh) * 2023-06-16 2023-07-18 建信金融科技有限责任公司 数据入库的方法、装置、设备和计算机可读介质
CN116450622B (zh) * 2023-06-16 2023-09-22 建信金融科技有限责任公司 数据入库的方法、装置、设备和计算机可读介质

Similar Documents

Publication Publication Date Title
CN107766126B (zh) 容器镜像的构建方法、系统、装置及存储介质
CN109062655B (zh) 一种容器化云平台及服务器
US9965377B1 (en) Deploy pipeline for development packages
CN109120678B (zh) 用于分布式存储系统的服务托管的方法和装置
US20100205604A1 (en) Systems and methods for efficiently running multiple instances of multiple applications
CN111930465A (zh) 一种基于Kubernetes的达梦主从集群部署方法和装置
CN108897547B (zh) 一种软件自动化部署方法及装置
CN111367534B (zh) 一种基于应用环境的服务编排方法及系统
CN113434158B (zh) 一种大数据组件的自定义管理方法、装置、设备及介质
CN111324599B (zh) 一种区块链实验系统及管理方法
CN111666099A (zh) 一种应用服务发布系统
CN111580926A (zh) 模型发布方法、模型部署方法、装置、设备及存储介质
CN110673923A (zh) Xwiki系统配置方法、系统及计算机设备
US10872007B2 (en) Methods and systems to compound alerts in a distributed computing system
CN111651352B (zh) 一种仓库代码的合并方法及装置
CN111930466A (zh) 一种基于Kubernetes的数据同步环境部署方法和装置
CN116860746A (zh) 用于轻量大数据的处理系统
CN114995835A (zh) 一种应用自动化部署方法、系统、设备和可读存储介质
CN117112122A (zh) 一种集群部署方法和装置
CN111209087A (zh) 一种基于Docker的大数据学习平台搭建方法
US7437705B1 (en) System and method for building an application on a computing device which includes an environment-controlling process
CN115357198B (zh) 存储卷的挂载方法及装置、存储介质及电子设备
US11966731B2 (en) Method for real-time updating of process software
CN110795113A (zh) 一种Redis集群服务的安装方法、服务器和介质
CN115373696B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant after: Wuhan dream database Co.,Ltd.

Address before: 430000 16-19 / F, building C3, future technology building, 999 Gaoxin Avenue, Donghu New Technology Development Zone, Wuhan, Hubei Province

Applicant before: WUHAN DAMENG DATABASE Co.,Ltd.

CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Chen Qi

Inventor after: Wang Bin

Inventor after: Yu Yuanlan

Inventor after: Sun Feng

Inventor before: Fu Quan

Inventor before: Chen Qi

Inventor before: Wang Bin

Inventor before: Yu Yuanlan

Inventor before: Sun Feng

RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20201113