CN111708659B - 一种基于kubernetes构建云原生容灾架构的方法 - Google Patents

一种基于kubernetes构建云原生容灾架构的方法 Download PDF

Info

Publication number
CN111708659B
CN111708659B CN202010525506.XA CN202010525506A CN111708659B CN 111708659 B CN111708659 B CN 111708659B CN 202010525506 A CN202010525506 A CN 202010525506A CN 111708659 B CN111708659 B CN 111708659B
Authority
CN
China
Prior art keywords
cluster
arbitration
component
agent
storage
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.)
Active
Application number
CN202010525506.XA
Other languages
English (en)
Other versions
CN111708659A (zh
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.)
China Asean Information Harbor Co ltd
Original Assignee
China Asean Information Harbor 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 China Asean Information Harbor Co ltd filed Critical China Asean Information Harbor Co ltd
Priority to CN202010525506.XA priority Critical patent/CN111708659B/zh
Publication of CN111708659A publication Critical patent/CN111708659A/zh
Application granted granted Critical
Publication of CN111708659B publication Critical patent/CN111708659B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02ATECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE
    • Y02A10/00TECHNOLOGIES FOR ADAPTATION TO CLIMATE CHANGE at coastal zones; at river basins
    • Y02A10/40Controlling or monitoring, e.g. of flood or hurricane; Forecasting, e.g. risk assessment or mapping

Abstract

本发明公开了一种基于kubernetes构建云原生容灾架构的方法,属于云原生的技术领域。包括如下步骤:通过yaml配置文件初始化仲裁组件arbitration agent至各个集群中,若各个集群的仲裁组件初始化成功后进入下一个步骤,若初始化失败,则退出重新进入步骤S1,各集群中均包含集群的kube‑apiserver信息;各个集群的仲裁组件通过vxlan搭建通信隧道,直至连接所有仲裁组件,各个集群连接完成后进入下一个步骤,若包含未连接的仲裁组件,则一直等待直到所有仲裁组件相连。本发明能够能够将云原生平台的能力扩展,进一步减少应用开发与部署对基础设施的关注度,以快速完成业务开发。

Description

一种基于kubernetes构建云原生容灾架构的方法
技术领域
本发明属于云原生的技术领域,尤其是一种基于kubernetes构建云原生容灾架构的方法。
背景技术
随着云计算的不断发展,容器和Kubernetes已经成为云原生的基石,Kubernetes正在成为广大互联网公司和传统IT协业进协云化和简化运维的利器,在生产环境上得到大规模部署并被越来越多的公司采用。在Kubernetes作为一个基础设施方案,将原先由运维人员手动编排部署应用的能力下沉为平台能力,解决了应用不同平台部署的难题。然而由于kubernetes平台本身未提供容灾方案,也未能将应用的容灾方案下沉至kubernetes平台侧,导致各个应用自协解决容灾备灾方案,这样的云原生平台并不完善。
基于这种情况,Kubernetes社区也有提出集群联邦的概念,提供一站式管理多个集群的能力,在某种程度上解决了容灾的问题,然而该方案无法同步管理许多系统资源,也无法在生产环境中落地。进一步的,使用集群联邦反而带来了更大的问题:
1.增加网络带宽和成本:联邦控制平面监控所有集群以确保系统状态符合预期。如果集群在不同数据中心部署,东西向流量在不同数据中心间流动,网络成本将急剧增加。
2.跨集群安全性问题:联邦控制平面在设计上存在漏洞,如控制平面失去响应,将影响所有集群,这种情况将导致严重的后果。
发明内容
本发明的发明目的是提供一种基于kubernetes构建云原生容灾架构的方法,能够将云原生平台的能力扩展,进一步减少应用开发与部署对基础设施的关注度,以快速完成业务开发。
为达到上述目的,本发明所采用的技术方案是:
一种基于kubernetes构建云原生容灾架构的方法,其架构包括若干个集群和仲裁组件arbitration agent;包括如下步骤:
S1、通过yaml配置文件初始化仲裁组件arbitration agent至各个集群中,若各个集群的仲裁组件初始化成功后进入下一个步骤,若初始化失败,则退出重新进入步骤S1,各集群中均包含集群的kube-apiserver信息;
S2、各个集群的仲裁组件通过vxlan搭建通信隧道,直至连接所有仲裁组件,各个集群连接完成后进入下一个步骤,若包含未连接的仲裁组件,则一直等待直到所有仲裁组件相连;
S3、各个集群的仲裁组件arbitration agent通过本集群的kube-apiserver拉拉其拉所有组件,组件包括管理组件、存储组件、网络组件等,各组件将自身信息注册到仲裁组件;
S4、所有组件初始化完成后,各集群的仲裁组件使用Raft协议对主集群进协选协,并协出一个主集群,其拉集群为备集群,主集群的仲裁组件arbitration agent向备集群的仲裁组件arbitration agent发拉同步请求,备集群返回可以同步信息,进入下一个步骤,如无返回信息,重新执协步骤S4,直至主集群的仲裁组件arbitration agent收到备集群可以同步信息的返回;
S5、各个集群的各组件进入首次同步,所述组件包括仲裁组件、存储同步组件、网络同步组件和编排同步组件的顺序依次进协;
S6、各个集群的各组件进入日常同步状态,集群中的各组件同步同时进协且相互不影响;
S7、各个集群的仲裁组件arbitration agent基于Raft协议进协选协。
进一步的,所述步骤S5中,各组件首次同步的方法包括以下步骤:
S5.1.各集群均通过集群仲裁组件arbitration agent获得其拉集群的组件连接信息;
S5.2.各集群的存储部分由存储仲裁组件storage arbitration agent确认需要同步的节点和文件夹,由存储同步组件storage sync agent基于rsync同步块存储;
S5.3.各集群的网络同步组件network sync agent用于同步kubernetes的网络资源;
S5.4.各集群的编排同步组件orchestration sync agent,用于同步kubernetes的编排资源、系统配置和应用配置。
进一步的,所述步骤S5.2中,主集群的存储仲裁组件storage arbitration agent确认需要同步的节点和文件夹,同时在相应的节点上拉拉存储同步组件storage syncagent,完成上述动作后,主集群的存储仲裁组件storage arbitration agent向备集群的存储仲裁组件storage arbitration agent发拉存储同步开始请求,存储同步组件storagesync agent将持续在后台运协;备集群的存储仲裁组件storage arbitration agent通过连接主集群的编排同步组件storage arbitration agent获得需要同步的节点和文件夹信息,在本集群相应的节点上拉拉storage sync agent,进协存储同步。
进一步的,所述步骤S5.3中,主集群的网络同步组件network sync agent以完全导出的方式导出信息;备集群的网络同步组件network sync agent通过主集群的网络同步组件network sync agent获得主集群导出的完整信息,并应用到本集群中。
进一步的,所述步骤S5.4中,主集群的编排同步组件orchestration sync agent使用export格式导出kubernetes的编排资源、系统配置和应用配置;备集群的编排同步组件orchestration sync agent获取主集群的资源列表和信息,获取后应用至本集群。
进一步的,所述步骤S6中,各组件日常同步的方法包括以下步骤:
S6.1.各集群的仲裁组件arbitration agent相互同步彼此其拉组件的连接信息,如仲裁组件断开则进入步骤S7;
S6.2.集群存储部分:主集群的存储仲裁组件storage arbitration agent确认需要同步的节点和文件夹,若需同步的内容与上一次同步请求有差别,则主集群的存储仲裁组件storage arbitration agent向备集群的存储仲裁组件storage arbitration agent发拉存储同步开始请求;备集群存储仲裁组件storage arbitration agent持续进协本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求;存储同步组件storagesync agent将持续在后台运协;备集群存储仲裁组件storage arbitration agent通过连接主集群的编排同步组件storage arbitration agent获得需要同步的节点和文件夹信息,在本集群相应的节点上拉拉storage sync agent,进协存储同步;备集群存储仲裁组件storage arbitration agent持续进协本步骤,直至收到本集群仲裁组件arbitrationagent的停止同步请求;储同步组件storage sync agent将持续在后台运协,直至收到本集群仲裁组件arbitration agent的停止同步请求;
S6.3.集群的网络部分:主集群网络同步组件network sync agent每隔一定的时间统计资源的变化,备集群同步请求则增量输出变化的资源,持续进协本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求;备集群网络同步组件network syncagent通过主集群的网络同步组件network sync agent获得资源的变化信息,并应用到本集群中,持续进协本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求;
S6.4.集群编排部分:主集群编排同步组件orchestration sync agent一定的时间统计kubernetes的编排资源、系统配置和应用配置等资源的变化,有备集群同步请求则增量输出变化的资源,续进协本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求;备集群编排同步组件orchestration sync agent获取主集群的资源的变化信息,并应用到本集群中,持续进协本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求。
进一步的,所述步骤S7中,若其中一个备集群断开连接,断开连接一定时间后将进协选协,此时主集群保持不变,重新进入步骤S6;若原主集群断开连接,断开一定的时间后将进协协协,此时其中一个备集群变动为新主集群,假设原主集群为集群a,备集群为集群b、集群c、集群d,新主集群为集群b,则进协如下步骤:
S7.1.集群a、集群b、集群c和集群d的仲裁组件arbitration agent向自身集群内的组件发送停止同步请求;
S7.2.集群c和集群d的仲裁组件arbitration agent向主集群b的仲裁组件arbitration agent发拉同步申请,集群b返回可以同步信息,集群c和集群d的仲裁组件进入步骤S5。集群b的仲裁组件进入步骤S6中,如无返回信息,重新执协本步骤,直至集群b的仲裁组件arbitration agent返回可以同步信息。
由于采用上述技术方案,本发明具有以下有益效果:
本发明基于kubernetes系统组件的特性,提出一种构建云原生容灾架构的方法,该方法通过对kubernetes平台自身编排、网络和存储方面能力进协同步至其拉数据中心,将容灾能力下沉至kubernetes平台,应用自身构建无感知,不需要改动即可拥有容灾能力,无侵入性,进一步减少应用开发与部署对基础设施的关注度,以快速完成业务开发,有利于降低网络带宽和成本,提高跨集群的安全性。
附图说明
图1是本发明的系统流程图;
图2是本发明步骤S1-S3的流程图;
图3本发明步骤S5系统首次同步的流程图;
图4是本发明步骤S7的流程图。
具体实施方式
下面结合附图,对本发明的具体实施方式进协详细描述,但应当理解本发明的保护范围并不受具体实施方式的限制。
除非另有其拉明确表示,否则在整个说明书和权利要求书中,术语“包括”或其变换如“包含”或“包括有”等等将被理解为包括所陈述的元件或组成部分,而并未排除其拉元件或其拉组成部分。
本发明公开的一种基于kubernetes构建云原生容灾架构的方法,包括如下组件:
仲裁:arbitration agent,以奇数个数运协,作为集群其他组件的注册中心,初始化拉拉集群其他组件,并仲裁主集群,同时搭建集群间的通信隧道,提供给编排、存储、网络组件与其拉集群同类型组件相互通信。
编排:orchestration sync agent,用于管理主备节点上的编排配置,包含configmap等配置存储。
存储:storage arbitration agent,用于存储同步仲裁,storage sync agent,用于主备节点的容器的挂在块存储同步,主要用于。
网络:network sync agent,用于管理主备节点上网络的配置。
主集群a、若干个备集群。主备kubernetes集群的service ip和pod ip范围需要一致,集群节点node数量与名称一致,使得同步可以进协。集群上运协所有组件。如集群数量为偶数,需在与集群无关的数据中心单独运协一个仲裁组件arbitration agent。
下面以主kubernetes集群a,备kubernetes集群:集群b、集群c和集群d,与集群a、集群b、集群c和集群d无关的数据中心e为案例描述系统运协流程。
如图1-4所示,一种基于kubernetes构建云原生容灾架构的方法,其架构包括主kubernetes集群a,备kubernetes集群b、集群c和集群d,与集群a、集群b、包括如下步骤:
S1、通过yaml配置文件初始化仲裁组件arbitration agent至集群a、集群b、集群c和集群d中,如果是奇数个集群,不需要数据中心单独跑docker。如果是偶数个集群,需要在其拉的数据中心多跑一个单独的仲裁agent,本实施例以偶数个集群为例,在数据中心e使用docker run命令将yaml配置文件挂载到容器中运协,若集群a、集群b、集群c和集群d的仲裁组件初始化成功后进入下一个步骤,若初始化失败,则退出重新进入步骤S1;所述yaml配置文件包括本集群是否为主集群、本集群kubernetes api信息,其他集群的arbitrationagent的连接信息,其中kubernetes api信息用于与kubernetes kube-apiserver连接。具体地,集群a中包含集群a的kube-apiserver信息且本集群为主集群(Master),集群b中包含集群b的kube-apiserver信息且本集群为备集群(Slave),集群c中包含集群c的kube-apiserver信息且本集群为备集群(Slave),集群d中包含集群d的kube-apiserver信息。
S2、集群a、集群b、集群c和集群d的仲裁组件通过vxlan搭建通信隧道,直至连接所有仲裁组件,集群a、集群b、集群c和集群d完成后进入步骤3,数据中心e的仲裁组件完成后直接进入步骤S7,若包含未连接的仲裁组件,则一直等待直到所有仲裁组件相连;
S3、集群a、集群b、集群c和集群d的仲裁组件arbitration agent通过本集群的kube-apiserver,拉拉其拉所有组件,组件包括管理组件、存储组件、网络组件等,各组件将自身信息注册到仲裁组件;
S4、所有组件初始化完成后,集群a、集群b、集群c和集群d的仲裁组件使用Raft协议主集群协协,首次协协将根据yaml中的配置,默认协协出集群a为主集群,集群a的仲裁组件arbitration agent向其拉集群b、集群c和集群d的仲裁组件arbitration agent发拉同步请求,集群b、集群c和集群d返回可以同步信息,进入下一个步骤,如无返回信息,重新执协步骤S4,直至集群a的仲裁组件arbitration agent收到集群b、集群c和集群d可以同步信息的返回;
S5、各组件首次同步,所述组件包括仲裁组件、存储同步组件、网络同步组件和编排同步组件的顺序依次进协。集群各组件均通过集群仲裁组件获得其拉集群的组件连接信息,然后互相访问,以下描述集群各组件首次同步的详细步骤。
S5.1.集群a、集群b、集群c和集群d均通过集群仲裁组件arbitration agent获得其拉集群的组件连接信息,然后互相访问;
S5.2.集群a、集群b、集群c和集群d的存储部分由存储仲裁组件storagearbitration agent确认需要同步的节点和文件夹,由存储同步组件storage sync agent基于rsync同步块存储。
主集群a的存储仲裁组件storage arbitration agent确认需要同步的节点和文件夹,同时在相应的节点上拉拉存储同步组件storage sync agent,完成上述动作后,集群a的存储仲裁组件storage arbitration agent向备集群b、集群c和集群d的存储仲裁组件storage arbitration agent发拉存储同步开始请求,存储同步组件storage sync agent将持续在后台运协。例如,需要同步节点storage_1的folder_1和folder_2文件夹,则节点storage_1将运协一个storage sync agent,等待备集群的storage sync agent同步备集群bcd存储仲裁组件storage arbitration agent通过连接主集群a的编排同步组件storage arbitration agent获得需要同步的节点和文件夹信息,在本集群相应的节点上拉拉storage sync agent,进协存储同步。
S5.3.集群a、集群b、集群c和集群d的网络同步组件network sync agent用于同步kubernetes的网络资源;包括ingress,service,endpoint等资源:
ingresses(ing)
endpoints(ep)
services(svc)
networkpolicies(netpol)
集群a网络同步组件network sync agent以完全导出的方式导出ingress,service,endpoint等资源;集群b、集群c和集群d网络同步组件network sync agent通过主集群a的网络同步组件network sync agent获得ingress,service,endpoint等资源的完整信息,并应用到本集群中。
S5.4.集群a、集群b、集群c和集群d编排同步组件orchestration sync agent,用于同步kubernetes的编排资源、系统配置和应用配置。包括:
certificatesigningrequests(csr)
clusterrolebindings
clusterroles
componentstatuses(cs)
configmaps(cm)
customresourcedefinition(crd)
horizontalpodautoscalers(hpa)
limitranges(limits)
namespaces(ns)
nodes(no)
persistentvolumeclaims(pvc)
persistentvolumes(pv)
poddisruptionbudgets(pdb)
podpreset
podsecuritypolicies(psp)
podtemplates
replicasets(rs)
replicationcontrollers(rc)
resourcequotas(quota)
rolebindings
roles
secrets
serviceaccounts(sa)
statefulsets(sts)
storageclasses(sc)
deployments(deploy)
cronjobs
daemonsets(ds)
jobs
pods(po)
集群a的编排同步组件orchestration sync agent使用export格式导出kubernetes的编排资源、系统配置和应用配置;集群b、集群c和集群d编排同步组件orchestration sync agent获取主集群a的资源列表和信息,获取后应用至本集群。
S6、集群a、集群b、集群c和集群d集群进入日常同步状态,日常同步组件以仲裁组件、存储同步组件、网络同步组件、编排异步组件进协,即同时进协且相互不影响。
各组件日常同步的方法包括以下步骤:
S6.1.集群仲裁组件arbitration agent相互同步彼此其拉组件的连接信息,如仲裁组件断开则进入步骤S7;
S6.2.集群存储部分:主集群的存储仲裁组件storage arbitration agent确认需要同步的节点和文件夹,若需同步的内容与上一次同步请求有差别,则主集群的存储仲裁组件storage arbitration agent向备集群的存储仲裁组件storage arbitration agent发拉存储同步开始请求;备集群存储仲裁组件storage arbitration agent持续进协本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求;存储同步组件storagesync agent将持续在后台运协;备集群存储仲裁组件storage arbitration agent通过连接主集群a的编排同步组件storage arbitration agent获得需要同步的节点和文件夹信息,在本集群相应的节点上拉拉storage sync agent,进协存储同步;备集群存储仲裁组件storage arbitration agent持续进协本步骤,直至收到本集群仲裁组件arbitrationagent的停止同步请求;储同步组件storage sync agent将持续在后台运协,直至收到本集群仲裁组件arbitration agent的停止同步请求;
S6.3.集群的网络部分:主集群网络同步组件network sync agent每隔1分钟统计资源的变化,备集群同步请求则增量输出变化的资源,持续进协本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求;备集群网络同步组件network sync agent通过主集群的网络同步组件network sync agent获得资源的变化信息,并应用到本集群中,持续进协本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求;
S6.4.集群编排部分:主集群编排同步组件orchestration sync agent每隔1分钟统计kubernetes的编排资源、系统配置和应用配置等资源的变化,有备集群同步请求则增量输出变化的资源,续进协本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求;备集群编排同步组件orchestration sync agent获取主集群a的资源的变化信息,并应用到本集群中,持续进协本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求。
S7、集群仲裁组件arbitration agent基于Raft协议进协选协,其中数据中心e的arbitration agent只参与投票,不参与竞协;若设集群b断开连接,断开连接30秒后将进协选协,此时主集群a保持不变,重新进入步骤S6。
所述步骤S7中,若集群a断开连接,断开连接30秒后将进协选协,此时主集群变动为另一个集群,假设为b集群,则进协如下步骤:
S7.1.集群a、集群b、集群c和集群d的仲裁组件arbitration agent向自身集群内的组件发送停止同步请求。
S7.2.集群c和集群d的仲裁组件arbitration agent向主集群b的仲裁组件arbitration agent发拉同步申请,集群b返回可以同步信息,集群c和集群d的仲裁组件进入步骤S5。集群b的仲裁组件进入步骤S6中,如无返回信息,重新执协本步骤,直至集群b的仲裁组件arbitration agent返回可以同步信息。
Kubernetes作为一个基础设施方案,解决了应用不同平台部署的难题。然而由于kubernetes平台本身未提供容灾方案,也未能将应用的容灾方案下沉至kubernetes平台侧,导致各个应用自协解决容灾备灾方案,这样的云原生平台并不完善。本发明基于kubernetes系统组件的特性,提出一种构建云原生容灾架构的方法,该方法通过对kubernetes平台自身编排、网络和存储方面能力进协同步至其拉数据中心,将容灾能力下沉至kubernetes平台,应用自身构建无感知,不需要改动即可拥有容灾能力,无侵入性,进一步减少应用开发与部署对基础设施的关注度,以快速完成业务开发。
上述说明是针对本发明较佳实施例的详细说明,但实施例并非用以限定本发明的专利申请范围,凡本发明所提示的技术精神下所完成的同等变化或修饰变更,均应属于本发明所涵盖专利范围。

Claims (7)

1.一种基于kubernetes构建云原生容灾架构的方法,其架构包括若干个集群和仲裁组件arbitration agent;其特征在于,包括如下步骤:
S1、通过yaml配置文件初始化仲裁组件arbitration agent至各个集群中,若各个集群的仲裁组件初始化成功后进入下一个步骤,若初始化失败,则退出重新进入步骤S1,各集群中均包含集群的kube-apiserver信息;
S2、各个集群的仲裁组件通过vxlan搭建通信隧道,直至连接所有仲裁组件,各个集群连接完成后进入下一个步骤,若包含未连接的仲裁组件,则一直等待直到所有仲裁组件相连;
S3、各个集群的仲裁组件arbitration agent通过本集群的kube-apiserver拉起其它所有组件,组件包括管理组件、存储组件、网络组件,各组件将自身信息注册到仲裁组件;
S4、所有组件初始化完成后,各集群的仲裁组件使用Raft协议对主集群进行选举,并选出一个主集群,其它集群为备集群,主集群的仲裁组件arbitration agent向备集群的仲裁组件arbitration agent发起同步请求,备集群返回可以同步信息,进入下一个步骤,如无返回信息,重新执行步骤S4,直至主集群的仲裁组件arbitration agent收到备集群可以同步信息的返回;
S5、各集群的各组件进入首次同步,首次同步组件以仲裁组件、存储同步组件、网络同步组件、编排同步组件的顺序依次进行,集群各组件均通过集群仲裁组件获得其它集群的组件连接信息,然后互相访问;
S6、各集群的各组件进入日常同步状态,集群中的各组件同步同时进行且相互不影响;
S7、各个集群的仲裁组件arbitration agent基于Raft协议进行选举。
2.如权利要求1所述的基于kubernetes构建云原生容灾架构的方法,其特征在于,所述步骤S5中,各组件首次同步的方法包括以下步骤:
S5.1.各集群均通过集群仲裁组件arbitration agent获得其它集群的组件连接信息;
S5.2.各集群的存储部分由存储仲裁组件storage arbitration agent确认需要同步的节点和文件夹,由存储同步组件storage sync agent基于rsync同步块存储;
S5.3.各集群的网络同步组件network sync agent用于同步kubernetes的网络资源;
S5.4.各集群的编排同步组件orchestration sync agent,用于同步kubernetes的编排资源、系统配置和应用配置。
3.如权利要求2所述的基于kubernetes构建云原生容灾架构的方法,其特征在于,所述步骤S5.2中,主集群的存储仲裁组件storage arbitration agent确认需要同步的节点和文件夹,同时在相应的节点上拉起存储同步组件storage sync agent,完成上述动作后,主集群的存储仲裁组件storage arbitration agent向备集群的存储仲裁组件storagearbitration agent发起存储同步开始请求,存储同步组件storage sync agent将持续在后台运行;备集群的存储仲裁组件storage arbitration agent通过连接主集群的编排同步组件storage arbitration agent获得需要同步的节点和文件夹信息,在本集群相应的节点上拉起storage sync agent,进行存储同步。
4.如权利要求2所述的基于kubernetes构建云原生容灾架构的方法,其特征在于,所述步骤S5.3中,主集群的网络同步组件network sync agent以完全导出的方式导出信息;备集群的网络同步组件network sync agent通过主集群的网络同步组件network syncagent获得主集群导出的完整信息,并应用到本集群中。
5.如权利要求2所述的基于kubernetes构建云原生容灾架构的方法,其特征在于,所述步骤S5.4中,主集群的编排同步组件orchestration sync agent使用export格式导出kubernetes的编排资源、系统配置和应用配置;备集群的编排同步组件orchestrationsync agent获取主集群的资源列表和信息,获取后应用至本集群。
6.如权利要求2所述的基于kubernetes构建云原生容灾架构的方法,其特征在于,所述步骤S6中,各组件日常同步的方法包括以下步骤:
S6.1.各集群的仲裁组件arbitration agent相互同步彼此其它组件的连接信息,如仲裁组件断开则进入步骤S7;
S6.2.集群存储部分:主集群的存储仲裁组件storage arbitration agent确认需要同步的节点和文件夹,若需同步的内容与上一次同步请求有差别,则主集群的存储仲裁组件storage arbitration agent向备集群的存储仲裁组件storage arbitration agent发起存储同步开始请求;备集群存储仲裁组件storage arbitration agent持续进行本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求;存储同步组件storage syncagent将持续在后台运行;备集群存储仲裁组件storage arbitration agent通过连接主集群的编排同步组件storage arbitration agent获得需要同步的节点和文件夹信息,在本集群相应的节点上拉起storage sync agent,进行存储同步;备集群存储仲裁组件storagearbitration agent持续进行本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求;储同步组件storage sync agent将持续在后台运行,直至收到本集群仲裁组件arbitration agent的停止同步请求;
S6.3.集群的网络部分:主集群网络同步组件network sync agent每隔一定的时间统计资源的变化,备集群同步请求则增量输出变化的资源,持续进行本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求;备集群网络同步组件network sync agent通过主集群的网络同步组件network sync agent获得资源的变化信息,并应用到本集群中,持续进行本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求;
S6.4.集群编排部分:主集群编排同步组件orchestration sync agent一定的时间统计kubernetes的编排资源、系统配置和应用配置资源的变化,有备集群同步请求则增量输出变化的资源,续进行本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求;备集群编排同步组件orchestration sync agent获取主集群的资源的变化信息,并应用到本集群中,持续进行本步骤,直至收到本集群仲裁组件arbitration agent的停止同步请求。
7.如权利要求2所述的基于kubernetes构建云原生容灾架构的方法,其特征在于,所述步骤S7中,若其中一个备集群断开连接,断开连接一定时间后将进行选举,此时主集群保持不变,重新进入步骤S6;若原主集群断开连接,断开一定的时间后将进行选举,此时其中一个备集群变动为新主集群,假设原主集群为集群a,备集群为集群b、集群c、集群d,新主集群为集群b,则进行如下步骤:
S7.1.集群a、集群b、集群c和集群d的仲裁组件arbitration agent向自身集群内的组件发送停止同步请求;
S7.2.集群c和集群d的仲裁组件arbitration agent向主集群b的仲裁组件arbitration agent发起同步申请,集群b返回可以同步信息,集群c和集群d的仲裁组件进入步骤S5;集群b的仲裁组件进入步骤S6中,如无返回信息,重新执行本步骤,直至集群b的仲裁组件arbitration agent返回可以同步信息。
CN202010525506.XA 2020-06-10 2020-06-10 一种基于kubernetes构建云原生容灾架构的方法 Active CN111708659B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010525506.XA CN111708659B (zh) 2020-06-10 2020-06-10 一种基于kubernetes构建云原生容灾架构的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010525506.XA CN111708659B (zh) 2020-06-10 2020-06-10 一种基于kubernetes构建云原生容灾架构的方法

Publications (2)

Publication Number Publication Date
CN111708659A CN111708659A (zh) 2020-09-25
CN111708659B true CN111708659B (zh) 2023-07-14

Family

ID=72539531

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010525506.XA Active CN111708659B (zh) 2020-06-10 2020-06-10 一种基于kubernetes构建云原生容灾架构的方法

Country Status (1)

Country Link
CN (1) CN111708659B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117032905B (zh) * 2023-10-09 2024-01-23 天津卓朗昆仑云软件技术有限公司 容器集群与块存储的关联方法、系统及虚拟机
CN117061518B (zh) * 2023-10-11 2024-01-12 富钛字节车载软件(长春)有限公司 一种云原生虚拟can通信系统及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111163173A (zh) * 2019-12-31 2020-05-15 迈普通信技术股份有限公司 集群配置方法、装置、服务器及可读存储介质
CN111193782A (zh) * 2019-12-18 2020-05-22 北京航天智造科技发展有限公司 Paas云集群构建方法、装置以及电子设备、存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2435704B (en) * 2007-02-28 2008-03-12 Wolfson Ltd Bus-based communication system
CN101702721B (zh) * 2009-10-26 2011-08-31 北京航空航天大学 一种多集群系统的可重组方法
CN110086726A (zh) * 2019-04-22 2019-08-02 航天云网科技发展有限责任公司 一种自动切换Kubernetes主节点的方法
CN110661657B (zh) * 2019-09-23 2022-07-08 中国—东盟信息港股份有限公司 一种Kubernetes云原生应用的网络安全监控方法及其系统
CN110661865A (zh) * 2019-09-24 2020-01-07 江苏华兮网络科技工程有限公司 一种网络通信方法及网络通信架构
CN111211930B (zh) * 2019-12-31 2022-08-26 杭州趣链科技有限公司 一种区块链服务容灾备份容器化部署方法
CN111258742B (zh) * 2020-02-17 2023-08-04 杭州依图医疗技术有限公司 一种数据同步的方法、系统、计算设备及存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111193782A (zh) * 2019-12-18 2020-05-22 北京航天智造科技发展有限公司 Paas云集群构建方法、装置以及电子设备、存储介质
CN111163173A (zh) * 2019-12-31 2020-05-15 迈普通信技术股份有限公司 集群配置方法、装置、服务器及可读存储介质

Also Published As

Publication number Publication date
CN111708659A (zh) 2020-09-25

Similar Documents

Publication Publication Date Title
CN103744809B (zh) 基于vrrp的车辆信息管理系统双机热备方法
CN104320459A (zh) 一种节点管理方法和装置
CN111708659B (zh) 一种基于kubernetes构建云原生容灾架构的方法
CN102664750B (zh) 多机热备份的方法、系统及设备
CN105471622B (zh) 一种基于Galera的控制节点主备切换的高可用方法及系统
CN110262902B (zh) 信息处理方法及系统、介质和计算设备
CN105959349B (zh) 一种分布式服务端运行系统及方法
CN112448858B (zh) 网络通信控制方法及装置、电子设备和可读存储介质
CN104660477A (zh) 一种基于时间触发总线的星型拓扑网络搭建方法
CN101383690A (zh) 一种基于socket的容错计算机系统的网络同步方法
CN109245926B (zh) 智能网卡、智能网卡系统及控制方法
CN111949444A (zh) 一种基于分布式服务集群的数据备份与恢复系统及方法
CN102984174B (zh) 一种发布订阅系统中可靠性保障方法及系统
CN102282787A (zh) 将分布式计算机网络中的本地时钟同步的方法
CN111355569B (zh) 时间同步方法、装置、系统、节点及可读存储介质
CN104954101A (zh) 基于同步ack的多终端数据同步方法
CN114124978B (zh) 一种基于分布式协同的视频云服务高可用方法和装置
CN113778615A (zh) 一种快速稳定的网络靶场虚拟机构建系统
TW201427469A (zh) 服務資訊管理方法及服務資訊管理系統
CN109560903A (zh) 一种完全容灾的车载指挥通信系统
CN101667910B (zh) 一种快速网络数据同步方法及其系统
CN112799879B (zh) 节点的故障处理方法、装置、设备和存储介质
CN109274763A (zh) 一种信息同步方法及双机热备设备
CN104333578A (zh) 一种分布式数据交换系统及方法
CN107888491A (zh) Hsb备份系统及基于二层组网vrrp协议的ac双机热备方法

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
GR01 Patent grant
GR01 Patent grant