一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于Kubernetes的应用分布式多活系统及方法与流程

2021-11-02 11:41:00 来源:中国专利 TAG:
基于Kubernetes的应用分布式多活系统及方法与流程

本发明涉及云计算技术中的Kubernetes应用治理领域,具体地说是一种基于Kubernetes的应用分布式多活系统及方法。

背景技术

随着容器和云计算领域的技术不断成熟,越来越多的传统应用开始上云,而Kubernetes已经成为云原生应用编排的事实标准,应用服务都部署在Kubernetes上,但是在实际使用中经常会遇到一些问题,就是单个Kubernetes集群通常无法跨越多个地域部署,更不用说跨越不同的云厂商,这样就会对应用服务带来一些问题,导致应用不能实现地域级别的容灾备份以及在不同地域间进行故障切流,并且还有单个集群规模的上限等问题,所以根据应用服务的业务形态以及对云灾备的需求,应用服务通常需要部署在不同地域甚至不同云厂商的多个Kubernetes集群里,故如何统一管理调度应用服务的容器资源,同时弥补单Kubernetes集群对云原生应用服务可靠性支持的局限性是目前亟待解决的问题。



技术实现要素:

本发明的技术任务是提供一种基于Kubernetes的应用分布式多活系统及方法,来解决如何统一管理调度应用服务的容器资源,同时弥补单Kubernetes集群对云原生应用服务可靠性支持的局限性的问题。

本发明的技术任务是按以下方式实现的,一种基于Kubernetes的应用分布式多活系统,该系统包括,

集群管理器,用于对多个不同区域及不同种类的集群进行统一管理;

配置管理器,用于处理各种Kubernetes资源对象;

调度器,用于应用在集群中的调度分布;

域名解析器,用于各种集群之间的应用服务发现。

作为优选,所述集群管理器包括Cluster资源对象和集群控制器;

Cluster资源对象用于定义所管理的各种集群;

集群控制器用于监听Cluster资源对象,根据Cluster资源对象的变化来同步管理各种集群,从而能够实现对多个不同区域、不同种类的集群进行统一管理,支持动态集群接入和删除。

作为优选,所述配置管理器包括Config资源对象和配置控制器;

Config资源对象用于定义要下发的资源对象的详细信息;

配置控制器用于监听Config资源对象,根据定义内容将Config资源对象同步下发到所管理的集群里;

其中,Config资源对象包括Template、Placement及Override;

Template用于定义要下发的资源对象的全部信息,例如Kubernetes里的Deployment、Service等资源定义;

Placement用于定义资源对象要下发到所管理的哪些集群中,若不进行定义,则会同步下发到所管理的所有集群中;同时定义每个集群分布的最多及最少实例数,由调度器根据此配置进行弹性调度;

Override用于提供差异化修改Template中字段的能力;对于要下发的同一个资源对象,由于云厂商或集群版本等各种因素的影响,在不同的集群配置中可能会有所差异;例如deployment对象,其中某些字段在不同的Kubernetes集群中要求不一样,所以需要差异化配置这些字段。

作为优选,所述调度器用于应用在Kubernetes里的Deployment资源的调度分布,根据定义资源对象在每个集群中分布的最多及最少实例进行弹性调度,并根据集群的负载情况在集群间进行合理伸缩;

其中,当调度结果跟自定义的Override冲突时,该调度结果享有优先权,例如Override中定义应用实例的个数为5个,实际调度器计算的调度结果只有3个,那么自定义的Override中实例个数将由5个被改为3个。

更优地,所述域名解析器用于各种集群之间的应用服务发现具体如下:

(1)、域名解析器对接到DNS服务商的服务器上;

(2)、应用服务被下发创建后,域名解析器会收集各集群中应用所对应ervice的信息,获取到相应的ip和域名组合;

(3)、将各集群服务的ip与对应域名自动配置到公网的DNS服务商的服务器上,以通过公网域名实现跨集群服务发现;

(4)、域名解析器对应用服务进行健康检查:

当集群故障或应用出现问题时,健康检查失败;

(5)、域名解析器更新DNS服务商的服务器,将故障应用的ip从DNS服务商的服务器里移除,实现故障自动切流。

一种基于Kubernetes的应用分布式多活方法,该方法是将应用服务同步分布调度到Kubernetes集群中,通过自动配置DNS服务商的服务器将多个Kubernetes集群的应用服务统一暴露出来,并自动对多个Kubernetes集群的应用进行健康检查,及时将故障应用从DNS服务商的服务器中踢出,实现故障应用自动切流,确保服务访问稳定性的同时最终实现应用服务的分布式多活。

作为优选,该方法具体如下;

S1、集群管理器对多个不同区域及不同种类的集群进行统一管理,具体如下:

S101、集群管理器的Cluster资源对象定义所管理的各种集群;

S102、集群管理器的集群控制器监听Cluster资源对象,根据Cluster资源对象的变化来同步管理各种集群,实现对多个不同区域及不同种类的集群进行统一管理,同时支持动态集群接入与删除;

S2、配置管理器处理各种Kubernetes资源对象,具体如下;

S201、配置管理器的Config资源对象里定义要下发的资源对象的详细信息;

S202、配置控制器会监听Config资源对象,根据里面的定义内容将Config资源对象同步下发到所管理的集群里;

S3、调度器负责应用在Kubernetes里的Deployment资源的调度分布,根据定义资源对象在每个集群中分布的最多及最少实例进行弹性调度,并根据集群的负载情况在集群间进行合理伸缩;

S4、域名解析器负责各个集群之间的应用服务发现。

更优地,所述Config资源对象包括Template、Placement及Override;

Template用于定义要下发的资源对象的全部信息,例如Kubernetes里的Deployment、Service等资源定义;

Placement用于定义资源对象要下发到所管理的哪些集群中,若不进行定义,则会同步下发到所管理的所有集群中;同时定义每个集群分布的最多及最少实例数,由调度器根据此配置进行弹性调度;

Override用于提供差异化修改Template中字段的能力;对于要下发的同一个资源对象,由于云厂商或集群版本等各种因素的影响,在不同的集群配置中可能会有所差异;例如deployment对象,其中某些字段在不同的Kubernetes集群中要求不一样,所以需要差异化配置这些字段。

更优地,所述步骤S4的域名解析器负责各个集群之间的应用服务发现具体如下:

S401、域名解析器对接到DNS服务商的服务器上;

S402、应用服务被下发创建后,域名解析器会收集各集群中应用所对应ervice的信息,获取到相应的ip和域名组合;

S403、将各集群服务的ip与对应域名自动配置到公网的DNS服务商的服务器上,以通过公网域名实现跨集群服务发现;

S404、域名解析器对应用服务进行健康检查:

当集群故障或应用出现问题时,健康检查失败;

S405、域名解析器更新DNS服务商的服务器,将故障应用的ip从DNS服务商的服务器里移除,实现故障自动切流。

一种计算机可读存储介质,所述计算机可读存储介质中存储有计算机程序,所述计算机程序可被处理器执行以实现如上述的基于Kubernetes的应用分布式多活方法。

本发明的基于Kubernetes的应用分布式多活系统及方法具有以下优点:

(一)本发明旨在统一管理多个Kubernetes集群,将应用服务同步分布式调度到这些集群中,通过自动配置DNS服务器将多个集群的应用服务统一暴露出来,并能自动对这些集群的应用进行健康检查,及时将故障应用从DNS服务器中踢出,实现故障应用自动切流,以确保服务访问的稳定性,从而弥补了单Kubernetes集群对云原生应用服务可靠性支持的局限性,最终实现应用服务的分布式多活;

(二)本发明采用统一管理与调度多个Kubernetes集群的方式,跨多个集群进行应用服务编排,并根据负载情况进行合理伸缩,并且还具有配置域名解析功能,能够提供管理各个集群应用的跨集群访问能力,让应用能够访问到多个集群的相同后端服务;

(三)本发明简单易用,能够管理多个Kubernetes集群的资源对象,只需要一次定义就能自动同步到多个集群,在多个集群之间分散部署工作负载,从而提升应用服务的可靠性;

(四)本发明实现了跨集群的资源编排调度,调度器能够依据编排策略在多个集群进行弹性应用服务部署;

(五)本发明实现了跨集群的服务发现,通过域名解析来实现跨集群的服务发现,并能将故障应用及时移除,保证应用能够稳定的提供服务;

(六)本发明统一管理与调度多个Kubernetes集群,支持动态集群接入与删除,根据配置和负载情况对应用服务进行分布式弹性调度,对跨集群的应用进行统一部署和更新删除,并通过自动配置DNS服务器来提供各个集群应用的跨集群访问能力,保证能够访问到多个集群的相同后端应用,并且当某个集群的后端应用发生故障时,能够自动切换到其他集群的相同后端服务,确保应用服务的可用性和稳健性;

(七)本发明简化管理多个Kubernetes集群,只需要定义Cluster资源对象,就能动态的接入新集群或删除某个集群;

(八)本发明通过自动化的机制来将应用服务分布式调度到不同集群中,基于副本数和集群负载情况等调度策略来对应用进行编排;

(九)本发明自动对应用服务进行健康检查,及时从DNS服务器中踢出不健康的应用,实现故障应用自动切流;

(十)本发明基于Kubernetes的应用分布式多活设计能够将应用服务部署在不同的Kubernetes集群里并统一管理运维,简化管理多个集群的应用服务组件,如Deployment,Service等,并在多个集群之间分散工作负载,以提升应用服务的可靠性,最终实现应用服务的分布式多活。。

附图说明

下面结合附图对本发明进一步说明。

附图1为基于Kubernetes的应用分布式多活系统的结构框图。

具体实施方式

参照说明书附图和具体实施例对本发明的基于Kubernetes的应用分布式多活系统及方法作以下详细地说明。

在本发明的描述中,需要理解的是,术语“上”、“下”、“前”、“后”、“左”、“右”、“竖直”“水平”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述。而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为本发明的限制。此外,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性。

在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接连接,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

实施例1:

如附图1所示,本发明的基于Kubernetes的应用分布式多活系统该系统包括,

集群管理器,用于对多个不同区域及不同种类的集群进行统一管理;

配置管理器,用于处理各种Kubernetes资源对象;

调度器,用于应用在集群中的调度分布;

域名解析器,用于各种集群之间的应用服务发现。

本实施例中的集群管理器包括Cluster资源对象和集群控制器;

Cluster资源对象用于定义所管理的各种集群;

集群控制器用于监听Cluster资源对象,根据Cluster资源对象的变化来同步管理各种集群,从而能够实现对多个不同区域、不同种类的集群进行统一管理,支持动态集群接入和删除。

本实施例中的配置管理器包括Config资源对象和配置控制器;

Config资源对象用于定义要下发的资源对象的详细信息;

配置控制器用于监听Config资源对象,根据定义内容将Config资源对象同步下发到所管理的集群里;

其中,Config资源对象包括Template、Placement及Override;

Template用于定义要下发的资源对象的全部信息,例如Kubernetes里的Deployment、Service等资源定义;

Placement用于定义资源对象要下发到所管理的哪些集群中,若不进行定义,则会同步下发到所管理的所有集群中;同时定义每个集群分布的最多及最少实例数,由调度器根据此配置进行弹性调度;

Override用于提供差异化修改Template中字段的能力;对于要下发的同一个资源对象,由于云厂商或集群版本等各种因素的影响,在不同的集群配置中可能会有所差异;例如deployment对象,其中某些字段在不同的Kubernetes集群中要求不一样,所以需要差异化配置这些字段。

本实施例中的调度器用于应用在Kubernetes里的Deployment资源的调度分布,根据定义资源对象在每个集群中分布的最多及最少实例进行弹性调度,并根据集群的负载情况在集群间进行合理伸缩;

其中,当调度结果跟自定义的Override冲突时,该调度结果享有优先权,例如Override中定义应用实例的个数为5个,实际调度器计算的调度结果只有3个,那么自定义的Override中实例个数将由5个被改为3个。

本实施例中的域名解析器用于各种集群之间的应用服务发现具体如下:

(1)、域名解析器对接到DNS服务商的服务器上;

(2)、应用服务被下发创建后,域名解析器会收集各集群中应用所对应ervice的信息,获取到相应的ip和域名组合;

(3)、将各集群服务的ip与对应域名自动配置到公网的DNS服务商的服务器上,以通过公网域名实现跨集群服务发现;

(4)、域名解析器对应用服务进行健康检查:

当集群故障或应用出现问题时,健康检查失败;

(5)、域名解析器更新DNS服务商的服务器,将故障应用的ip从DNS服务商的服务器里移除,实现故障自动切流。

实施例2:

本发明的基于Kubernetes的应用分布式多活方法,该方法是将应用服务同步分布调度到Kubernetes集群中,通过自动配置DNS服务商的服务器将多个Kubernetes集群的应用服务统一暴露出来,并自动对多个Kubernetes集群的应用进行健康检查,及时将故障应用从DNS服务商的服务器中踢出,实现故障应用自动切流,确保服务访问稳定性的同时最终实现应用服务的分布式多活;该方法具体如下;

S1、集群管理器对多个不同区域及不同种类的集群进行统一管理,具体如下:

S101、集群管理器的Cluster资源对象定义所管理的各种集群;

S102、集群管理器的集群控制器监听Cluster资源对象,根据Cluster资源对象的变化来同步管理各种集群,实现对多个不同区域及不同种类的集群进行统一管理,同时支持动态集群接入与删除;

S2、配置管理器处理各种Kubernetes资源对象,具体如下;

S201、配置管理器的Config资源对象里定义要下发的资源对象的详细信息;

S202、配置控制器会监听Config资源对象,根据里面的定义内容将Config资源对象同步下发到所管理的集群里;

S3、调度器负责应用在Kubernetes里的Deployment资源的调度分布,根据定义资源对象在每个集群中分布的最多及最少实例进行弹性调度,并根据集群的负载情况在集群间进行合理伸缩;

S4、域名解析器负责各个集群之间的应用服务发现;具体如下:

S401、域名解析器对接到DNS服务商的服务器上;

S402、应用服务被下发创建后,域名解析器会收集各集群中应用所对应ervice的信息,获取到相应的ip和域名组合;

S403、将各集群服务的ip与对应域名自动配置到公网的DNS服务商的服务器上,以通过公网域名实现跨集群服务发现;

S404、域名解析器对应用服务进行健康检查:

当集群故障或应用出现问题时,健康检查失败;

S405、域名解析器更新DNS服务商的服务器,将故障应用的ip从DNS服务商的服务器里移除,实现故障自动切流。

本实施例中的述Config资源对象包括Template、Placement及Override;

Template用于定义要下发的资源对象的全部信息,例如Kubernetes里的Deployment、Service等资源定义;

Placement用于定义资源对象要下发到所管理的哪些集群中,若不进行定义,则会同步下发到所管理的所有集群中;同时定义每个集群分布的最多及最少实例数,由调度器根据此配置进行弹性调度;

Override用于提供差异化修改Template中字段的能力;对于要下发的同一个资源对象,由于云厂商或集群版本等各种因素的影响,在不同的集群配置中可能会有所差异;例如deployment对象,其中某些字段在不同的Kubernetes集群中要求不一样,所以需要差异化配置这些字段。

实施例3:

本发明实施例还提供了一种计算机可读存储介质,其中存储有多条指令,指令由处理器加载,使处理器执行本发明任一实施例中的基于Kubernetes的应用分布式多活方法。具体地,可以提供配有存储介质的系统或者装置,在该存储介质上存储着实现上述实施例中任一实施例的功能的软件程序代码,且使该系统或者装置的计算机(或CPU或MPU)读出并执行存储在存储介质中的程序代码。

在这种情况下,从存储介质读取的程序代码本身可实现上述实施例中任何一项实施例的功能,因此程序代码和存储程序代码的存储介质构成了本发明的一部分。

用于提供程序代码的存储介质实施例包括软盘、硬盘、磁光盘、光盘(如CD-ROM、CD-R、CD-RW、DVD-ROM、DVD-RAM、DVD-RW、DVD RW)、磁带、非易失性存储卡和ROM。可选择地,可以由通信网络从服务器计算机上下载程序代码。

此外,应该清楚的是,不仅可以通过执行计算机所读出的程序代码,而且可以通过基于程序代码的指令使计算机上操作的操作系统等来完成部分或者全部的实际操作,从而实现上述实施例中任意一项实施例的功能。

此外,可以理解的是,将由存储介质读出的程序代码写到插入计算机内的扩展板中所设置的存储器中或者写到与计算机相连接的扩展单元中设置的存储器中,随后基于程序代码的指令使安装在扩展板或者扩展单元上的CPU等来执行部分和全部实际操作,从而实现上述实施例中任一实施例的功能。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献