一种在多可用区部署分布式数据库容器的方法技术

技术编号:33245865 阅读:15 留言:0更新日期:2022-04-27 17:57
本发明专利技术提供一种在多可用区部署分布式数据库容器的方法,属于分布式数据库领域和容器云领域,本发明专利技术使用内置的CRD资源精确描述分布式数据库容器在多可用区部署情况,在kubernetes内部署webhook Server捕获分布式数据库容器启动事件,并根据CRD资源信息修改容器的节点亲和性,从而实现精确控制分布式数据库容器的多可用区部署。据库容器的多可用区部署。据库容器的多可用区部署。

【技术实现步骤摘要】
一种在多可用区部署分布式数据库容器的方法


[0001]本专利技术涉及分布式数据库领域和容器云领域,尤其涉及一种在多可用区部署分布式数据库容器的方法。

技术介绍

[0002]分布式数据库系统(DDBS:Distributed Database System)是在集中式数据库系统的基础上发展而来。由一组数据组成,这些数据物理上分布在计算机网络的不同节点上,逻辑上是属于同一个系统。是数据库技术与网络技术结合的产物,是用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库。每个被连接起来的数据库单元称为节点。分布式数据库有一个统一的数据库管理系统来进行管理,称为分布式数据库管理系统。
[0003]Kubernetes是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。StatefulSet是kubernetes的一种内置组件,用来管理有状态应用的工作负载,具有稳定的、唯一的网络标识符,稳定的、持久的存储,有序的、优雅的部署和缩放等特点。CRD功能是指可以根据特定的需求添加自定义的Kubernetes对象资源。WebHook是一种HTTP回调:某些条件下触发的HTTP POST请求;通过HTTP POST发送的简单事件通知。一个基于web应用实现的WebHook会在特定事件发生时把消息发送给特定的URL。
[0004]分布式数据库是由一组具有相同配置的有状态容器组成,从容灾角度要求这些容器必须部署到多个可用区。在kubernetes上多可用区部署是通过内置组件 Statefulset和Pod拓扑约束实现,该方法的缺陷在于无法精确控制分布式数据库容器在多可用区的部署。

技术实现思路

[0005]基于以上情况,本专利技术提供了一种在多可用区部署分布式数据库容器的方法,解决分布式数据库容器在多可用区部署时,难以精确控制容器在各个可用区部署的问题。
[0006]本专利技术的技术方案是:
[0007]一种在多可用区部署分布式数据库容器的方法,
[0008]使用内置的CRD资源精确描述分布式数据库容器在多可用区部署情况,在 kubernetes内部署webhook Server捕获分布式数据库容器启动事件,并根据CRD 资源信息修改容器的节点亲和性,从而实现精确控制分布式数据库容器的多可用区部署。
[0009]进一步的,
[0010]使用CRD资源精确规定分布式数据库容器在每个可用区内的数量,部署 webhook Server并监听分布式数据库容器创建事件,捕获容器创建事件后根据CRD 资源信息、容器状态和当前kubernetes内已有分布式数据库容器信息,更改被捕获容器的节点亲和性属性,将变更后的容器提交,由内置调度器选择合适的节点启动容器。
[0011]使用CRD详细规定的分布式数据库容器在各个可用区数量、可用区标签和数据库
参数信息。
[0012]Webhook Server是在api server上注册监听分布式数据库容器创建事件,当分布数据库容器创建时,该服务将收到完整的容器描述信息,然后该服务主动请求CRD资源信息,获取分布式数据库容器精确部署信息,主动请求该分布式数据库在kubernetes上其他容器信息;根据CRD信息、本数据库其他容器信息、本次被捕获的容器信息以及历史记录信息,确定备选的可用区。在备选可用区中择优选择一个可用区,并依据该可用区的属性更改本次被捕获容器的节点亲和性属性,最后将修改后的分布式数据库容器信息,返回到api server。
[0013]进一步的,
[0014]步骤如下:
[0015]S1.使用CRD资源精确规定分布式数据库容器在每个可用区内特性;
[0016]S2.部署webhook Server并监听分布式数据库容器创建事件;
[0017]S3.捕获容器创建事件后根据CRD资源信息、容器状态和当前kubernetes内已有分布式数据库容器信息,更改被捕获容器的节点亲和性属性,将更改后的容器提交。
[0018]其中,
[0019]S1包括以下步骤:
[0020]S11.定义分布式数据库容器在每个可用区内特性的CRD文件;
[0021]S12.将该CRD文件发布到kubernetes。
[0022]S2包括以下步骤:
[0023]S21.部署处理api server容器创建事件的webhook server;
[0024]S22.在api server注册分布式数据库容器创建事件。
[0025]S3包括以下步骤:
[0026]S31.捕获api server的分布式数据库容器创建事件;
[0027]S32.通过api server接口获取CRD资源信息;
[0028]S33.通过api server接口获取分布式数据库其他容器信息;
[0029]S34.综合评估上述信息,确定备选可用区;
[0030]S35.更改被捕获容器的节点亲和性属性;
[0031]S36.将更改后的容器提交到api server。
[0032]本专利技术的有益效果是
[0033]解决了分布式数据库容器在多可用区部署时,难以精确控制容器在各个可用区部署的问题。
附图说明
[0034]图1是本专利技术的框架图;
[0035]图2是本专利技术的工作流程示意图。
具体实施方式
[0036]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是
本专利技术一部分实施例,而不是全部的实施例,基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0037]本专利技术提供了一种在多可用区部署分布式数据库容器的方法,应用于期望精确控制分布式数据库容器在kubernetes多可用区部署的场景。所述方法包括:使用CRD资源精确规定分布式数据库容器在每个可用区内的数量,部署webhookServer并监听分布式数据库容器创建事件,捕获容器创建事件后根据CRD资源信息、容器状态和当前kubernetes内已有分布式数据库容器信息,更改被捕获容器的节点亲和性属性,将变更后的容器提交,由内置调度器选择合适的节点启动容器。
[0038]如图所示,本专利技术的改进是增加CRD资源定义和Webhook Server两部分。
[0039]CRD是kubernetes扩展资源的一种方式,在本专利技术中使用CRD详细规定的分布式数据库容器在各个可用区数量、可用区标签和数据库参数等信息。通过该CRD 资源,可以精确控制分布式数据库每个容器调度到kubernetes的任意节点。CRD 包含一组可用区描述信息,每个可用区定义如下:
[0040]名称含义可用区名称可用区名称副本数量规定在该本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在多可用区部署分布式数据库容器的方法,其特征在于,使用内置的CRD资源精确描述分布式数据库容器在多可用区部署情况,在kubernetes内部署webhook Server捕获分布式数据库容器启动事件,并根据CRD资源信息修改容器的节点亲和性,从而实现精确控制分布式数据库容器的多可用区部署。2.根据权利要求1所述的方法,其特征在于,使用CRD资源精确规定分布式数据库容器在每个可用区内的数量,部署webhook Server并监听分布式数据库容器创建事件,捕获容器创建事件后根据CRD资源信息、容器状态和当前kubernetes内已有分布式数据库容器信息,更改被捕获容器的节点亲和性属性,将变更后的容器提交,由内置调度器选择合适的节点启动容器。3.根据权利要求2所述的方法,其特征在于,使用CRD详细规定的分布式数据库容器在各个可用区数量、可用区标签和数据库参数信息。4.根据权利要求3所述的方法,其特征在于,Webhook Server是在api server上注册监听分布式数据库容器创建事件,当分布数据库容器创建时,该服务将收到完整的容器描述信息,然后该服务主动请求CRD资源信息,获取分布式数据库容器精确部署信息,主动请求该分布式数据库在kubernetes上其他容器信息;根据CRD信息、本数据库其他容器信息、本次被捕获的容器信息以及历史记录信息,确定备选的可用区;在备选可用区中择优选择一个可用区,并依据该...

【专利技术属性】
技术研发人员:陈善君
申请(专利权)人:山东浪潮科学研究院有限公司
类型:发明
国别省市:

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

1