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

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

【技术实现步骤摘要】
一种基于kubernetes构建云原生容灾架构的方法
本专利技术属于云原生的
,尤其是一种基于kubernetes构建云原生容灾架构的方法。
技术介绍
随着云计算的不断发展,容器和Kubernetes已经成为云原生的基石,Kubernetes正在成为广大互联网公司和传统IT协业进协云化和简化运维的利器,在生产环境上得到大规模部署并被越来越多的公司采用。在Kubernetes作为一个基础设施方案,将原先由运维人员手动编排部署应用的能力下沉为平台能力,解决了应用不同平台部署的难题。然而由于kubernetes平台本身未提供容灾方案,也未能将应用的容灾方案下沉至kubernetes平台侧,导致各个应用自协解决容灾备灾方案,这样的云原生平台并不完善。基于这种情况,Kubernetes社区也有提出集群联邦的概念,提供一站式管理多个集群的能力,在某种程度上解决了容灾的问题,然而该方案无法同步管理许多系统资源,也无法在生产环境中落地。进一步的,使用集群联邦反而带来了更大的问题:1.增加网络带宽和成本:联邦控制平面监控所有集群以确保系统状态符合预期。如果集群在不同数据中心部署,东西向流量在不同数据中心间流动,网络成本将急剧增加。2.跨集群安全性问题:联邦控制平面在设计上存在漏洞,如控制平面失去响应,将影响所有集群,这种情况将导致严重的后果。
技术实现思路
本专利技术的专利技术目的是提供一种基于kubernetes构建云原生容灾架构的方法,能够将云原生平台的能力扩展,进一步减少应用开发与部署对基础设施的关注度,以快速完成业务开发。为达到上述目的,本专利技术所采用的技术方案是:一种基于kubernetes构建云原生容灾架构的方法,其架构包括若干个集群和仲裁组件arbitrationagent;包括如下步骤:S1、通过yaml配置文件初始化仲裁组件arbitrationagent至各个集群中,若各个集群的仲裁组件初始化成功后进入下一个步骤,若初始化失败,则退出重新进入步骤S1,各集群中均包含集群的kube-apiserver信息;S2、各个集群的仲裁组件通过vxlan搭建通信隧道,直至连接所有仲裁组件,各个集群连接完成后进入下一个步骤,若包含未连接的仲裁组件,则一直等待直到所有仲裁组件相连;S3、各个集群的仲裁组件arbitrationagent通过本集群的kube-apiserver拉拉其拉所有组件,组件包括管理组件、存储组件、网络组件等,各组件将自身信息注册到仲裁组件;S4、所有组件初始化完成后,各集群的仲裁组件使用Raft协议对主集群进协选协,并协出一个主集群,其拉集群为备集群,主集群的仲裁组件arbitrationagent向备集群的仲裁组件arbitrationagent发拉同步请求,备集群返回可以同步信息,进入下一个步骤,如无返回信息,重新执协步骤S4,直至主集群的仲裁组件arbitrationagent收到备集群可以同步信息的返回;S5、各个集群的各组件进入首次同步,所述组件包括仲裁组件、存储同步组件、网络同步组件和编排同步组件的顺序依次进协;S6、各个集群的各组件进入日常同步状态,集群中的各组件同步同时进协且相互不影响;S7、各个集群的仲裁组件arbitrationagent基于Raft协议进协选协。进一步的,所述步骤S5中,各组件首次同步的方法包括以下步骤:S5.1.各集群均通过集群仲裁组件arbitrationagent获得其拉集群的组件连接信息;S5.2.各集群的存储部分由存储仲裁组件storagearbitrationagent确认需要同步的节点和文件夹,由存储同步组件storagesyncagent基于rsync同步块存储;S5.3.各集群的网络同步组件networksyncagent用于同步kubernetes的网络资源;S5.4.各集群的编排同步组件orchestrationsyncagent,用于同步kubernetes的编排资源、系统配置和应用配置。进一步的,所述步骤S5.2中,主集群的存储仲裁组件storagearbitrationagent确认需要同步的节点和文件夹,同时在相应的节点上拉拉存储同步组件storagesyncagent,完成上述动作后,主集群的存储仲裁组件storagearbitrationagent向备集群的存储仲裁组件storagearbitrationagent发拉存储同步开始请求,存储同步组件storagesyncagent将持续在后台运协;备集群的存储仲裁组件storagearbitrationagent通过连接主集群的编排同步组件storagearbitrationagent获得需要同步的节点和文件夹信息,在本集群相应的节点上拉拉storagesyncagent,进协存储同步。进一步的,所述步骤S5.3中,主集群的网络同步组件networksyncagent以完全导出的方式导出信息;备集群的网络同步组件networksyncagent通过主集群的网络同步组件networksyncagent获得主集群导出的完整信息,并应用到本集群中。进一步的,所述步骤S5.4中,主集群的编排同步组件orchestrationsyncagent使用export格式导出kubernetes的编排资源、系统配置和应用配置;备集群的编排同步组件orchestrationsyncagent获取主集群的资源列表和信息,获取后应用至本集群。进一步的,所述步骤S6中,各组件日常同步的方法包括以下步骤:S6.1.各集群的仲裁组件arbitrationagent相互同步彼此其拉组件的连接信息,如仲裁组件断开则进入步骤S7;S6.2.集群存储部分:主集群的存储仲裁组件storagearbitrationagent确认需要同步的节点和文件夹,若需同步的内容与上一次同步请求有差别,则主集群的存储仲裁组件storagearbitrationagent向备集群的存储仲裁组件storagearbitrationagent发拉存储同步开始请求;备集群存储仲裁组件storagearbitrationagent持续进协本步骤,直至收到本集群仲裁组件arbitrationagent的停止同步请求;存储同步组件storagesyncagent将持续在后台运协;备集群存储仲裁组件storagearbitrationagent通过连接主集群的编排同步组件storagearbitrationagent获得需要同步的节点和文件夹信息,在本集群相应的节点上拉拉storagesyncagent,进协存储同步;备集群存储仲裁组件storagearbitrationagent持续进协本步骤,直至收到本集群仲裁组件arbitrationagent的停止同步请求;储同步组件storagesyncagent将持续在后台运协,直至收到本集群仲裁组件arbitrationagent的停止同步请求;...

【技术保护点】
1.一种基于kubernetes构建云原生容灾架构的方法,其架构包括若干个集群和仲裁组件arbitration agent;其特征在于,包括如下步骤:/nS1、通过yaml配置文件初始化仲裁组件arbitration agent至各个集群中,若各个集群的仲裁组件初始化成功后进入下一个步骤,若初始化失败,则退出重新进入步骤S1,各集群中均包含集群的kube-apiserver信息;/nS2、各个集群的仲裁组件通过vxlan搭建通信隧道,直至连接所有仲裁组件,各个集群连接完成后进入下一个步骤,若包含未连接的仲裁组件,则一直等待直到所有仲裁组件相连;/nS3、各个集群的仲裁组件arbitration agent通过本集群的kube-apiserver拉起其它所有组件,组件包括管理组件、存储组件、网络组件等,各组件将自身信息注册到仲裁组件;/nS4、所有组件初始化完成后,各集群的仲裁组件使用Raft协议对主集群进行选举,并选出一个主集群,其它集群为备集群,主集群的仲裁组件arbitration agent向备集群的仲裁组件arbitration agent发起同步请求,备集群返回可以同步信息,进入下一个步骤,如无返回信息,重新执行步骤S4,直至主集群的仲裁组件arbitration agent收到备集群可以同步信息的返回;/nS5、各集群的各组件进入首次同步,首次同步组件以仲裁组件、存储同步组件、网络同步组件、编排同步组件的顺序依次进行,集群各组件均通过集群仲裁组件获得其它集群的组件连接信息,然后互相访问;/nS6、各集群的各组件进入日常同步状态,集群中的各组件同步同时进行且相互不影响;/nS7、各个集群的仲裁组件arbitration agent基于Raft协议进行选举。/n...

【技术特征摘要】
1.一种基于kubernetes构建云原生容灾架构的方法,其架构包括若干个集群和仲裁组件arbitrationagent;其特征在于,包括如下步骤:
S1、通过yaml配置文件初始化仲裁组件arbitrationagent至各个集群中,若各个集群的仲裁组件初始化成功后进入下一个步骤,若初始化失败,则退出重新进入步骤S1,各集群中均包含集群的kube-apiserver信息;
S2、各个集群的仲裁组件通过vxlan搭建通信隧道,直至连接所有仲裁组件,各个集群连接完成后进入下一个步骤,若包含未连接的仲裁组件,则一直等待直到所有仲裁组件相连;
S3、各个集群的仲裁组件arbitrationagent通过本集群的kube-apiserver拉起其它所有组件,组件包括管理组件、存储组件、网络组件等,各组件将自身信息注册到仲裁组件;
S4、所有组件初始化完成后,各集群的仲裁组件使用Raft协议对主集群进行选举,并选出一个主集群,其它集群为备集群,主集群的仲裁组件arbitrationagent向备集群的仲裁组件arbitrationagent发起同步请求,备集群返回可以同步信息,进入下一个步骤,如无返回信息,重新执行步骤S4,直至主集群的仲裁组件arbitrationagent收到备集群可以同步信息的返回;
S5、各集群的各组件进入首次同步,首次同步组件以仲裁组件、存储同步组件、网络同步组件、编排同步组件的顺序依次进行,集群各组件均通过集群仲裁组件获得其它集群的组件连接信息,然后互相访问;
S6、各集群的各组件进入日常同步状态,集群中的各组件同步同时进行且相互不影响;
S7、各个集群的仲裁组件arbitrationagent基于Raft协议进行选举。


2.如权利要求1所述的基于kubernetes构建云原生容灾架构的方法,其特征在于,所述步骤S5中,各组件首次同步的方法包括以下步骤:
S5.1.各集群均通过集群仲裁组件arbitrationagent获得其它集群的组件连接信息;
S5.2.各集群的存储部分由存储仲裁组件storagearbitrationagent确认需要同步的节点和文件夹,由存储同步组件storagesyncagent基于rsync同步块存储;
S5.3.各集群的网络同步组件networksyncagent用于同步kubernetes的网络资源;
S5.4.各集群的编排同步组件orchestrationsyncagent,用于同步kubernetes的编排资源、系统配置和应用配置。


3.如权利要求2所述的基于kubernetes构建云原生容灾架构的方法,其特征在于,所述步骤S5.2中,主集群的存储仲裁组件storagearbitrationagent确认需要同步的节点和文件夹,同时在相应的节点上拉起存储同步组件storagesyncagent,完成上述动作后,主集群的存储仲裁组件storagearbitrationagent向备集群的存储仲裁组件storagearbitrationagent发起存储同步开始请求,存储同步组件storagesyncagent将持续在后台运行;备集群的存储仲裁组件storagearbitrationagent通过连接主集群的编排同步组件storagearbitrationagent获得需要同步的节点和文件夹信息,在本集群相应的节点上拉起storagesyncagent,进行存储同步。


4.如权利要求2所述的基于kubernetes构建云原生容灾架构的方法,其特征在于,所述步骤S5.3中,主集群的网络同步组件networksyncagent以完全导出的方式导出信息;备集群的网络同步组件networksyncagent通过主集群的网络同步组件networksyncagent获得主集群导出的完整信息,并应用到本集群中。


5.如权利要求2所述的基于kubernetes构建云原生容灾架构的方...

【专利技术属性】
技术研发人员:韦克璐王志雄赵凯麟
申请(专利权)人:中国—东盟信息港股份有限公司
类型:发明
国别省市:广西;45

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

1