CN114398149A - 一种在多可用区部署分布式数据库容器的方法 - Google Patents
一种在多可用区部署分布式数据库容器的方法 Download PDFInfo
- Publication number
- CN114398149A CN114398149A CN202210015688.5A CN202210015688A CN114398149A CN 114398149 A CN114398149 A CN 114398149A CN 202210015688 A CN202210015688 A CN 202210015688A CN 114398149 A CN114398149 A CN 114398149A
- Authority
- CN
- China
- Prior art keywords
- container
- distributed database
- information
- crd
- database container
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 22
- 238000012544 monitoring process Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种在多可用区部署分布式数据库容器的方法,属于分布式数据库领域和容器云领域,本发明使用内置的CRD资源精确描述分布式数据库容器在多可用区部署情况,在kubernetes内部署webhook Server捕获分布式数据库容器启动事件,并根据CRD资源信息修改容器的节点亲和性,从而实现精确控制分布式数据库容器的多可用区部署。
Description
技术领域
本发明涉及分布式数据库领域和容器云领域,尤其涉及一种在多可用区部署分布式数据库容器的方法。
背景技术
分布式数据库系统(DDBS:Distributed Database System)是在集中式数据库系统的基础上发展而来。由一组数据组成,这些数据物理上分布在计算机网络的不同节点上,逻辑上是属于同一个系统。是数据库技术与网络技术结合的产物,是用计算机网络将物理上分散的多个数据库单元连接起来组成的一个逻辑上统一的数据库。每个被连接起来的数据库单元称为节点。分布式数据库有一个统一的数据库管理系统来进行管理,称为分布式数据库管理系统。
Kubernetes是一个可移植的、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。StatefulSet是kubernetes的一种内置组件,用来管理有状态应用的工作负载,具有稳定的、唯一的网络标识符,稳定的、持久的存储,有序的、优雅的部署和缩放等特点。CRD功能是指可以根据特定的需求添加自定义的Kubernetes对象资源。WebHook是一种HTTP回调:某些条件下触发的HTTP POST请求;通过HTTP POST发送的简单事件通知。一个基于web应用实现的WebHook会在特定事件发生时把消息发送给特定的URL。
分布式数据库是由一组具有相同配置的有状态容器组成,从容灾角度要求这些容器必须部署到多个可用区。在kubernetes上多可用区部署是通过内置组件 Statefulset和Pod拓扑约束实现,该方法的缺陷在于无法精确控制分布式数据库容器在多可用区的部署。
发明内容
基于以上情况,本发明提供了一种在多可用区部署分布式数据库容器的方法,解决分布式数据库容器在多可用区部署时,难以精确控制容器在各个可用区部署的问题。
本发明的技术方案是:
一种在多可用区部署分布式数据库容器的方法,
使用内置的CRD资源精确描述分布式数据库容器在多可用区部署情况,在kubernetes内部署webhook Server捕获分布式数据库容器启动事件,并根据CRD 资源信息修改容器的节点亲和性,从而实现精确控制分布式数据库容器的多可用区部署。
进一步的,
使用CRD资源精确规定分布式数据库容器在每个可用区内的数量,部署 webhookServer并监听分布式数据库容器创建事件,捕获容器创建事件后根据CRD 资源信息、容器状态和当前kubernetes内已有分布式数据库容器信息,更改被捕获容器的节点亲和性属性,将变更后的容器提交,由内置调度器选择合适的节点启动容器。
使用CRD详细规定的分布式数据库容器在各个可用区数量、可用区标签和数据库参数信息。
Webhook Server是在api server上注册监听分布式数据库容器创建事件,当分布数据库容器创建时,该服务将收到完整的容器描述信息,然后该服务主动请求CRD资源信息,获取分布式数据库容器精确部署信息,主动请求该分布式数据库在kubernetes上其他容器信息;根据CRD信息、本数据库其他容器信息、本次被捕获的容器信息以及历史记录信息,确定备选的可用区。在备选可用区中择优选择一个可用区,并依据该可用区的属性更改本次被捕获容器的节点亲和性属性,最后将修改后的分布式数据库容器信息,返回到apiserver。
进一步的,
步骤如下:
S1.使用CRD资源精确规定分布式数据库容器在每个可用区内特性;
S2.部署webhook Server并监听分布式数据库容器创建事件;
S3.捕获容器创建事件后根据CRD资源信息、容器状态和当前kubernetes内已有分布式数据库容器信息,更改被捕获容器的节点亲和性属性,将更改后的容器提交。
其中,
S1包括以下步骤:
S11.定义分布式数据库容器在每个可用区内特性的CRD文件;
S12.将该CRD文件发布到kubernetes。
S2包括以下步骤:
S21.部署处理api server容器创建事件的webhook server;
S22.在api server注册分布式数据库容器创建事件。
S3包括以下步骤:
S31.捕获api server的分布式数据库容器创建事件;
S32.通过api server接口获取CRD资源信息;
S33.通过api server接口获取分布式数据库其他容器信息;
S34.综合评估上述信息,确定备选可用区;
S35.更改被捕获容器的节点亲和性属性;
S36.将更改后的容器提交到api server。
本发明的有益效果是
解决了分布式数据库容器在多可用区部署时,难以精确控制容器在各个可用区部署的问题。
附图说明
图1是本发明的框架图;
图2是本发明的工作流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供了一种在多可用区部署分布式数据库容器的方法,应用于期望精确控制分布式数据库容器在kubernetes多可用区部署的场景。所述方法包括:使用CRD资源精确规定分布式数据库容器在每个可用区内的数量,部署webhook Server并监听分布式数据库容器创建事件,捕获容器创建事件后根据CRD资源信息、容器状态和当前kubernetes内已有分布式数据库容器信息,更改被捕获容器的节点亲和性属性,将变更后的容器提交,由内置调度器选择合适的节点启动容器。
如图所示,本发明的改进是增加CRD资源定义和Webhook Server两部分。
CRD是kubernetes扩展资源的一种方式,在本发明中使用CRD详细规定的分布式数据库容器在各个可用区数量、可用区标签和数据库参数等信息。通过该CRD 资源,可以精确控制分布式数据库每个容器调度到kubernetes的任意节点。CRD 包含一组可用区描述信息,每个可用区定义如下:
名称 | 含义 |
可用区名称 | 可用区名称 |
副本数量 | 规定在该可用区内部署数据库容器的数量 |
可用区标识 | 调度时选择可用区的依据 |
Webhook Server是一个的web服务,能够处理内置api server发送的事件请求。该服务在api server上注册监听分布式数据库容器创建事件,当分布数据库容器创建时,该服务将收到完整的容器描述信息。然后该服务主动请求CRD资源信息,获取分布式数据库容器精确部署信息,主动请求该分布式数据库在 kubernetes上其他容器信息。根据CRD信息、本数据库其他容器信息、本次被捕获的容器信息以及历史记录信息,确定备选的可用区。在备选可用区中择优选择一个可用区,并依据该可用区的属性更改本次被捕获容器的节点亲和性属性。最后将修改后的分布式数据库容器信息,返回到api server。
以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (8)
1.一种在多可用区部署分布式数据库容器的方法,其特征在于,
使用内置的CRD资源精确描述分布式数据库容器在多可用区部署情况,在kubernetes内部署webhook Server捕获分布式数据库容器启动事件,并根据CRD资源信息修改容器的节点亲和性,从而实现精确控制分布式数据库容器的多可用区部署。
2.根据权利要求1所述的方法,其特征在于,
使用CRD资源精确规定分布式数据库容器在每个可用区内的数量,部署webhookServer并监听分布式数据库容器创建事件,捕获容器创建事件后根据CRD资源信息、容器状态和当前kubernetes内已有分布式数据库容器信息,更改被捕获容器的节点亲和性属性,将变更后的容器提交,由内置调度器选择合适的节点启动容器。
3.根据权利要求2所述的方法,其特征在于,
使用CRD详细规定的分布式数据库容器在各个可用区数量、可用区标签和数据库参数信息。
4.根据权利要求3所述的方法,其特征在于,
Webhook Server是在api server上注册监听分布式数据库容器创建事件,当分布数据库容器创建时,该服务将收到完整的容器描述信息,然后该服务主动请求CRD资源信息,获取分布式数据库容器精确部署信息,主动请求该分布式数据库在kubernetes上其他容器信息;根据CRD信息、本数据库其他容器信息、本次被捕获的容器信息以及历史记录信息,确定备选的可用区;在备选可用区中择优选择一个可用区,并依据该可用区的属性更改本次被捕获容器的节点亲和性属性,最后将修改后的分布式数据库容器信息,返回到api server。
5.根据权利要求4所述的方法,其特征在于,
步骤如下:
S1.使用CRD资源精确规定分布式数据库容器在每个可用区内特性;
S2.部署webhook Server并监听分布式数据库容器创建事件;
S3.捕获容器创建事件后根据CRD资源信息、容器状态和当前kubernetes内已有分布式数据库容器信息,更改被捕获容器的节点亲和性属性,将更改后的容器提交。
6.根据权利要求5所述的方法,其特征在于,
S1包括以下步骤:
S11.定义分布式数据库容器在每个可用区内特性的CRD文件;
S12.将该CRD文件发布到kubernetes。
7.根据权利要求5所述的方法,其特征在于,
S2包括以下步骤:
S21.部署处理api server容器创建事件的webhook server;
S22.在api server注册分布式数据库容器创建事件。
8.根据权利要求5所述的方法,其特征在于,
S3包括以下步骤:
S31.捕获api server的分布式数据库容器创建事件;
S32.通过api server接口获取CRD资源信息;
S33.通过api server接口获取分布式数据库其他容器信息;
S34.综合评估上述信息,确定备选可用区;
S35.更改被捕获容器的节点亲和性属性;
S36.将更改后的容器提交到api server。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210015688.5A CN114398149A (zh) | 2022-01-07 | 2022-01-07 | 一种在多可用区部署分布式数据库容器的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210015688.5A CN114398149A (zh) | 2022-01-07 | 2022-01-07 | 一种在多可用区部署分布式数据库容器的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114398149A true CN114398149A (zh) | 2022-04-26 |
Family
ID=81228820
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210015688.5A Pending CN114398149A (zh) | 2022-01-07 | 2022-01-07 | 一种在多可用区部署分布式数据库容器的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398149A (zh) |
-
2022
- 2022-01-07 CN CN202210015688.5A patent/CN114398149A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106919445B (zh) | 一种在集群中并行调度容器的方法和装置 | |
CN112506659A (zh) | 一种边缘设备的管理方法以及相关装置 | |
KR101824273B1 (ko) | 복잡한 분산 애플리케이션에서의 자동화된 복원 및 에스컬레이션 기법 | |
CN109150987B (zh) | 基于主机层和容器层的两层式容器集群弹性扩容方法 | |
CN106406993A (zh) | 一种定时任务管理方法和系统 | |
US11411830B2 (en) | Systems and methods for determining entry points for mapping a network | |
US20070226231A1 (en) | Systems and methods for managing business issues | |
CN112506870B (zh) | 数据仓库增量更新方法、装置及计算机设备 | |
CN109783151B (zh) | 规则变更的方法和装置 | |
CN111026602A (zh) | 一种云平台的健康巡检调度管理方法、装置及电子设备 | |
CN111178837B (zh) | 一种基于微服务架构的智能制造信息系统 | |
CN112631680B (zh) | 微服务容器调度系统、方法、装置和计算机设备 | |
CN107729213A (zh) | 一种后台任务监控方法及装置 | |
CN106920158A (zh) | 基于Storm和Kafka技术的订单实时监控系统 | |
US12035156B2 (en) | Communication method and apparatus for plurality of administrative domains | |
CN106293911A (zh) | 分布式调度系统、方法 | |
CN116708266A (zh) | 一种云服务拓扑图实时更新方法、装置、设备及介质 | |
CN113965538B (zh) | 设备状态消息处理方法、装置及存储介质 | |
CN114398149A (zh) | 一种在多可用区部署分布式数据库容器的方法 | |
CN112860405B (zh) | 一种分布式作业流任务管理和调度系统及方法 | |
CN114090201A (zh) | 资源调度方法、装置、设备及存储介质 | |
CN110896358A (zh) | 一种nfv中资源数据的动态更新方法和装置 | |
CN116485585B (zh) | 混凝土数字化管理系统 | |
CN112988168B (zh) | 一种环境搭建的方法和装置 | |
CN108090080A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20221212 Address after: Room 305-22, Building 2, No. 1158 Zhangdong Road and No. 1059 Dangui Road, China (Shanghai) Pilot Free Trade Zone, Pudong New Area, Shanghai, 200120 Applicant after: Shanghai Yunxi Technology Co.,Ltd. Address before: Building S02, 1036 Gaoxin Langchao Road, Jinan, Shandong 250100 Applicant before: Shandong Inspur Scientific Research Institute Co.,Ltd. |
|
TA01 | Transfer of patent application right |