发明内容
本申请的目的在于提供一种基于Kubernetes的容器化应用请求复制方法、系统、计算机可读介质和电子设备,以解决或缓解上述现有技术中存在的问题。
为了实现上述目的,本申请提供如下技术方案:
本申请提供了一种基于Kubernetes的容器化应用请求复制方法,用于在Kubernetes集群环境中复制容器化应用请求,包括:在所述Kubernetes集群环境中发布生产应用容器组和测试应用容器组的请求复制配置信息;由流量复制控制器对所述请求复制配置信息的发布进行监听,并将所述请求复制配置信息同步更新至流量复制负载均衡器;其中,所述流量复制控制器和所述流量复制负载均衡器均包含于所述Kubernetes集群环境中,所述流量复制负载均衡器为所述生产应用容器组和所述测试应用容器组的访问入口;所述流量复制负载均衡器根据所述请求复制配置信息,复制访问请求,并将复制的所述访问请求中的目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组,其中,所述访问请求为用户通过所述流量复制负载均衡器对所述生产应用容器组的访问。
可选的,在本申请的任一实施例中,所述由流量复制控制器对所述请求复制配置信息的发布进行监听,并将所述请求复制配置信息同步更新至流量复制负载均衡器具体为:响应于所述流量复制控制器通过应用程序接口服务监听到的所述请求复制配置信息发生变化,且发生变化的所述请求复制配置信息符合预设规定,将发生变化的所述请求复制配置信息同步更新至所述流量复制负载均衡器。
可选的,在本申请的任一实施例中,所述流量复制负载均衡器根据所述请求复制配置信息,复制访问请求,并将复制的所述访问请求中的目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组,包括:所述流量复制负载均衡器根据所述请求复制配置信息,分别对所述生产应用容器组和所述测试应用容器组的访问地址进行定义;对所述访问请求中的目标访问地址进行解析并与所述生产应用容器组的访问地址进行匹配;响应于所述目标访问地址与所述生产应用容器组的访问地址相匹配,复制所述访问请求,并将复制的所述访问请求中的所述目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组。
可选的,在本申请的任一实施例中,所述请求复制配置信息包括:流量控制信息,对应的,所述流量复制负载均衡器根据所述请求复制配置信息,复制访问请求,并将复制的所述访问请求中的目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组,具体为:所述流量复制负载均衡器根据所述流量控制信息,对所述访问请求的复制进行流量控制,并将复制后的访问请求中的所述目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组。
可选的,在本申请的任一实施例中,在所述流量复制负载均衡器根据所述请求复制配置信息,复制访问请求,并将复制的所述访问请求中的目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组之后,还包括:在所述Kubernetes集群环境外,对所述请求复制配置信息、所述访问请求及所述访问请求的返回值进行保存。
本申请实施例还提供一种基于Kubernetes的容器化应用请求复制系统,用于在Kubernetes集群环境中复制容器化应用请求,包括:发布单元,配置为在所述Kubernetes集群环境中发布生产应用容器组和测试应用容器组的请求复制配置信息;更新单元,配置为由流量复制控制器对所述请求复制配置信息的发布进行监听,并将所述请求复制配置信息同步更新至流量复制负载均衡器;其中,所述流量复制控制器和所述流量复制负载均衡器均包含于所述Kubernetes集群环境中,所述流量复制负载均衡器为所述生产应用容器组和所述测试应用容器组的访问入口;复制单元,配置为所述流量复制负载均衡器根据所述请求复制配置信息,复制访问请求,并将复制的所述访问请求中的目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组,其中,所述访问请求为用户通过所述流量复制负载均衡器对所述生产应用容器组的访问。
可选的,在本申请的任一实施例中,所述更新单元,进一步配置为响应于所述流量复制控制器通过应用程序接口服务监听到的所述请求复制配置信息发生变化,且发生变化的所述请求复制配置信息符合预设规定,将发生变化的所述请求复制配置信息同步更新至所述流量复制负载均衡器。
可选的,在本申请的任一实施例中,所述复制单元,包括:访问定义子单元,配置为所述流量复制负载均衡器根据所述请求复制配置信息,分别对所述生产应用容器组和所述测试应用容器组的访问地址进行定义;访问匹配子单元,配置为对所述访问请求中的目标访问地址进行解析并与所述生产应用容器组的访问地址进行匹配;访问复制子单元,配置为响应于所述目标访问地址与所述生产应用容器组的访问地址相匹配,复制所述访问请求,并将复制的所述访问请求中的所述目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组。
本申请实施例还提供一种计算机可读介质,其上存储有计算机程序,所述程序为如上述任一实施例所述的基于Kubernetes的容器化应用请求复制方法。
本申请实施例还提供一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的程序,所述处理器执行所述程序时实现如上述任一实施例所述的基于Kubernetes的容器化应用请求复制方法。
与最接近的现有技术相比,本申请实施例的技术方案具有如下有益效果:
本申请的技术方案,通过在Kubernetes集群环境中发布生产应用容器组和测试应用容器组的请求复制配置信息,由流量复制控制器将请求复制配置信息自动同步更新至流量复制负载均衡器,流量复制负载均衡器根据请求复制配置信息,复制用户的访问请求,将复制的访问请求中的目标访问地址修改为测试应用容器组的访问地址,并将访问地址修改后的访问请求复制转发至测试应用容器组,有效模拟应用上线后的真实用户请求,并且不会对原有生产应用容器组产生负面影响。
具体实施方式
下面将参考附图并结合实施例来详细说明本申请。各个示例通过本申请的解释的方式提供而非限制本申请。实际上,本领域的技术人员将清楚,在不脱离本申请的范围或精神的情况下,可在本申请中进行修改和变型。例如,示为或描述为一个实施例的一部分的特征可用于另一个实施例,以产生又一个实施例。因此,所期望的是,本申请包含归入所附权利要求及其等同物的范围内的此类修改和变型。
在本申请实施例中,基于Kubernetes的网络分配和负载均衡技术,利用各种CNI插件可以为Kubernetes集群环境中的所有容器分配网络地址,并保证各容器可跨主机相互通信;基于Kubernetes的Service资源对象,可以实时监听Kubernetes集群环境内全部的容器IP,并利用iptables或IPVS技术为同一标签下的容器组提供一个虚拟IP承载负载均衡服务。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
示例性场景
图1为根据本申请的一些实施例提供的基于Kubernetes的容器化应用请求复制方法的场景示意图;如图1所示,在Kubernetes集群环境中发布生产应用容器组和测试应用容器组的请求复制配置信息(Traffic Replication),由流量复制控制器(TrafficController)通过应用程序接口服务(Kubernetes APIServer)对请求复制配置信息的发布进行监听,并将请求复制配置信息同步更新至流量复制负载均衡器(Traffic Loadbalancer);用户(即客户端)通过流量复制负载均衡器对生产应用容器组发出访问请求;流量复制负载均衡器根据请求复制配置信息,复制用户的访问请求,将用户访问请求中目标访问地址修改测试应用容器组的访问地址,并转发至测试应用容器组,由测试应用容器组对用户的访问请求进行测试,有效模拟应用上线后的真实情形,且不会对生产应用容器组中的应用产生负面影响。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,流量复制控制器通过应用程序接口服务对生产应用容器组和测试应用容器组进行监听,自动感应生产应用容器组和测试应用容器组中应用的变化,根据生产应用容器组的变化,动态调整复制的生产应用容器组的用户的访问请求至测试应用容器组进行测试,有效的适应了Kubernetes上应用高度动态的特性。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,流量复制负载均衡器外接一个文本存储和分析系统(比如,Elastic Search系统),对请求复制配置信息、用户的访问请求以及访问请求的返回值(比如,状态码(如200)和返回内容(如页面信息)等),进行记录保存,因而,实现了对复制后的应用请求和响应的完整记录,方便后期的查询和测试分析。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
示例性方法
图2为根据本申请的一些实施例提供的基于Kubernetes的容器化应用请求复制方法的流程示意图;如图2所示,该基于Kubernetes的容器化应用请求复制方法用于在Kubernetes集群环境中复制容器化应用请求,包括:
步骤S101、在所述Kubernetes集群环境中发布生产应用容器组和测试应用容器组的请求复制配置信息;
通常,Kubernetes中包含了很多系统自带的资源对象,比如说应用通过Deployment资源对象定义,应用的访问通过Service资源对象定义。在本申请实施例中,在Kubernetes集群环境中通过自定义资源(Custom Resource Definition,简称CRD)发布生产应用容器组和测试应用容器组的请求复制配置信息(比如,Traffic Replication),在请求复制配置信息中定义和保存请求复制配置参数。请求复制配置参数如下表1所示。
表1请求复制配置参数
在本申请实施例中,完全遵循了Kubernetes的设计原则,实现了IngressController和CRD接口自定义发布Traffic Replication,完全适配现有Kubernetes应用操作体验;基于Kubernetes的CRD和控制器模式,在不改动Kubernetes集群环境原有资源对象和网络模型的前提下,可任意部署至标准Kubernetes集群环境中。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
步骤S102、由流量复制控制器对所述请求复制配置信息的发布进行监听,并将所述请求复制配置信息同步更新至流量复制负载均衡器;其中,所述流量复制控制器和所述流量复制负载均衡器均包含于所述Kubernetes集群环境中,所述流量复制负载均衡器为所述生产应用容器组和所述测试应用容器组的访问入口;
在本申请实施例中,流量复制控制器通过应用程序接口服务(APIServer)对Kubernetes集群环境中的请求复制配置信息(Traffic Replication)进行监听,负责维护请求复制配置信息(Traffic Replication)的生命周期。流量复制负载均衡器兼容Kubernetes Ingress Controller标准接口,提供了七层负载均衡器(用于转发HTTP协议)的能力,作为Kubernetes集群上生产应用容器组和测试应用容器组的统一访问入口。也就是说,真实环境中,用户通过流量复制负载均衡器对生产应用容器组进行访问,同时,流量复制负载均衡器又是测试应用容器组的访问入口,因而,流量复制负载均衡器才能够根据请求复制配置信息将用户的访问请求复制至测试应用容器组进行测试。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在Kubernetes集群环境中发布生产应用容器组和测试应用容器组的TrafficReplication如下所示的,打开复制开关,流量复制控制器会自动将该配置信息同步更新至流量复制负载均衡器。
在一些可选实施例中,所述由流量复制控制器对所述请求复制配置信息的发布进行监听,并将所述请求复制配置信息同步更新至流量复制负载均衡器具体为:响应于所述流量复制控制器通知应用程序接口服务监听到的所述请求复制配置信息发生变化,且发生变化的所述请求复制配置信息符合预设规定,将发生变化的所述请求复制配置信息同步更新至所述流量复制负载均衡器。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,流量复制控制器在Kubernetes集群环境中通过应用程序接口服务(APIServer)对Traffic Replication进行监听,通过Kubernetes集群环境中TrafficReplication的变化,确定是否对Traffic Replication进行更新。当监听到TrafficReplication产生(新的Traffic Replication发布),或者Traffic Replication被修改,则原有的Traffic Replication的生命周期结束,在Kubernetes集群环境中应用新产生的或修改后的Traffic Replication。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,流量复制控制器通过APIServe对Traffic Replication进行监听的同时,还对Service(包括:生产应用的Service和测试应用的Service)和Endpoint进行监听,获取Service和容器(Pod,包括:生产应用容器组中的Pod和测试应用容器组中的Pod)的关联关系,当Service和Endpoint发生变化时,及时同步容器组(包括:生产应用容器组和测试应用容器组)访问地址(ClusterIP)和容器地址(PodIP)至流量复制负载均衡器。其中,Service和Endpoint为Kubernetes集群环境的资源对象,由Kubernetes进行维护。Service提供了一个固定的ClusterIP,通过ClusterIP可以为容器组进行负载均衡;Endpoint为Service的下级资源,记录了Service下的说是有容器地址。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,流量复制控制器监听到Traffic Replication发生变化(发布或修改等)时,需要对Traffic Replication进行合规验证,具体为,验证TrafficReplication中参数类型是否符合预设参数类型,如果参数类型符合预设参数类型,则认为Traffic Replication合规,即符合预设规定,将发生变化的Traffic Replication同步更新至流量复制负载均衡器。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
步骤S103、所述流量复制负载均衡器根据所述请求复制配置信息,复制访问请求,并将复制的所述访问请求中的目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组,其中,所述访问请求为用户通过所述流量复制负载均衡器对所述生产应用容器组的访问。
在本申请实施例中,用户通过流量复制负载均衡器对生产应用容器组进行访问,流量复制负载均衡器会对访问请求中的目标访问地址(包括:目标访问域名和目标访问路径)进行解析,与Traffic Replication中生产应用的访问地址进行匹配并转发。当TrafficReplication中请求复制开关(mode)为打开(on)状态时,流量复制负载均衡器将复制的访问请求中的目标访问地址修改为测试应用容器组的访问地址,将目标访问地址修改后的访问请求发送至测试应用容器组。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
图3为根据本申请的一些实施例提供的基于Kubernetes的容器化应用请求复制方法中步骤S103的流程示意图;如图3所示,所述流量复制负载均衡器根据所述请求复制配置信息,复制访问请求,并将复制的所述访问请求中的目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组,包括:
步骤S113、所述流量复制负载均衡器根据所述请求复制配置信息,分别对所述生产应用容器组和所述测试应用容器组的访问地址进行定义;
在本申请实施例中,流量复制负载均衡器根据请求复制配置信息,为生产应用容器组定义生产应用域名和生产应用路径,以及为测试应用容器组定义测试应用域名和测试应用路径。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
步骤S123、对所述访问请求中的目标访问地址进行解析并与所述生产应用容器组的访问地址进行匹配;
在本申请实施例中,在用户的访问请求进入流量复制负载均衡器后,流量复制负载均衡器会对访问请求进行解析,具体的,对HTTP请求头中的目标访问域名(host地址)和目标访问路径(path路径)进行解析,并将解析出的host地址、path路径与生产应用容器组的生产应用地址、生产应用路径进行匹配。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
步骤S1233、响应于所述目标访问地址与所述生产应用容器组的访问地址相匹配,复制所述访问请求,并将复制的所述访问请求中的所述目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组。
在本申请实施例中,当流量复制负载均衡器判断HTTP请求头中的host地址、path路径与生产应用地址、生产应用路径相匹配时,将用户的访问请求转发至生产应用的service。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,Traffic Replication中复制开关(mode)为打开(off)状态时,流量复制负载均衡器对用户的访问请求不做处理,当请求复制开关(mode)为打开(on)状态时,流量复制负载均衡器复制用户的访问请求,并将复制的访问请求中的目标访问域名修改为测试应用域名,以及将访问请求中的目标访问路径修改为测试应用路径。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,流量复制负载均衡器在访问请求中的访问地址修改后,将目标访问地址修改后的访问请求转发至测试应用的service,由测试应用容器组对用户的访问请求进行测试,有效模拟应用上线后的真实情形。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在一些可选实施例中,所述请求复制配置信息包括:流量控制信息,对应的,所述流量复制负载均衡器根据所述请求复制配置信息,复制访问请求,并将复制的所述访问请求中的目标访问地址修改为测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组,具体为:所述流量复制负载均衡器根据所述流量控制信息,对所述访问请求的复制进行流量控制,并将复制后的访问请求中的所述目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,流量控制信息包括:是否打开流量复制、每秒限流数、流量放大倍数等。其中,是否打开流量复制指请求复制开关(mode)是否打开;每秒限流数指请求每秒限流数量(request Limit),如果在Traffic Replication中配置了request Limit,流量复制负载均衡器会对复制的访问请求进行每秒钟最大数量限制,超过request Limit的访问请求不会再进行复制。比如,当用户修改Traffic Replication中的request Limit为10时,流量复制控制器会自动将该配置同步更新至流量复制负载均衡器,流量复制负载均衡器在复制访问请求时,会自动对超出的访问请求进行过滤。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,流量放大倍数指请求复制倍数(request Multiple),如果在Traffic Replication中配置了request Multiple,流量复制负载均衡器会对访问请求成相应倍数进行复制并发送至测试应用的service。比如,当用户修改Traffic Replication中的request Multiple为3时,流量复制控制器会自动将该配置同步更新至流量复制负载均衡器,流量复制负载均衡器对用户的访问请求复制3份并转发至测试应用的service。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在一些可选实施例中,在所述流量复制负载均衡器根据所述请求复制配置信息,复制访问请求,并将复制的所述访问请求中的目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组之后,还包括:在所述Kubernetes集群环境外,对所述请求复制配置信息、所述访问请求及其所述访问请求的进行保存。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,通过在Kubernetes集群环境外部署文本存储和分析系统(比如,Elastic Search系统),对请求复制配置信息、用户的访问请求以及访问请求的返回值(比如,状态码(如200)和返回内容(如页面信息)等),进行记录保存,实现了对复制后的应用请求和响应的完整记录,方便后期的查询和测试分析。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,基于Kubernetes集群环境的Service资源对象,通过流量复制控制器对请求配置信息、PodIP进行动态监听,自动感应请求配置信息、生产应用容器组、测试应用容器组的变化,并同步更新至负载均衡器,根据生产应用容器组、测试应用容器组的变化动态调整复制访问请求的访问地址,实现了在Kubernetes集群环境中对访问请求进行动态复制,适应Kubernetes集群环境上生产应用高度动态的特性;通过请求配置信息的变化,达到灵活调控发送用户的访问请求的功能。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,相较于Kubernetes之上常规使用的灰度或蓝绿发布手段,本申请的容器化应用请求复制方法可以支持基于流量复制的应用测试,不仅应用测试的请求更加完整,并且对已经上线的生产应用无任何影响;通过在Traffic Replication中配置流量控制信息,开放接口,提供流量复制、限流、放大等功能,实现复制流量的加速和限流,可以实现更加复杂的测试目标。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,通过容器化应用请求复制方法将用户的访问请求引入应用测试阶段,不再需要使用请求复制工具(比如,TCPCopy、GoReplay等),实现将用户访问请求复制至应用测试阶段,有效模拟应用刚上线后接受真实用户访问请求的情形,并且不会对原有生产应用容器组中的应用产生负面影响。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在本申请实施例中,相较于目前基于Kubernetes的Service所负载的访问请求只能通过随机或轮询的方式某发送至一个容器组,且无访问请求的流量记录,本申请的容器化应用请求复制方法精确的将用户的访问请求复制至测试应用容器组,而且实现了对复制后的应用请求和响应的完整记录,方便后期的查询和测试分析。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
示例性系统
图4为根据本申请的一些实施例提供的一种基于Kubernetes的容器化应用请求复制系统的结构示意图;该基于Kubernetes的容器化应用请求复制系统用于在Kubernetes集群环境中复制容器化应用请求,包括:发布单元401,配置为在所述Kubernetes集群环境中发布生产应用容器组和测试应用容器组的请求复制配置信息;更新单元402,配置为由流量复制控制器对所述请求复制配置信息的发布进行监听,并将所述请求复制配置信息同步更新至流量复制负载均衡器;其中,所述流量复制控制器和所述流量复制负载均衡器均包含于所述Kubernetes集群环境中,所述流量复制负载均衡器为所述生产应用容器组和所述测试应用容器组的访问入口;复制单元403,配置为所述流量复制负载均衡器根据所述请求复制配置信息,复制访问请求,并将复制的所述访问请求中的目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组,其中,所述访问请求为用户通过所述流量复制负载均衡器对所述生产应用容器组的访问。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在一些可选实施例中,所述更新单元402,进一步配置为响应于所述流量复制控制器通过应用程序接口服务监听到的所述请求复制配置信息发生变化,且发生变化的所述请求复制配置信息符合预设规定,将发生变化的所述请求复制配置信息同步更新至所述流量复制负载均衡器。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
图5为根据本申请的一些实施例提供的一种基于Kubernetes的容器化应用请求复制系统中复制单元的结构示意图;如图5所示,所述复制单元403包括:访问定义子单元413,配置为所述流量复制负载均衡器根据所述请求复制配置信息,分别对所述生产应用容器组和所述测试应用容器组的访问地址进行定义;访问匹配子单元423,配置为对所述访问请求中的目标访问地址进行解析并与所述生产应用容器组的访问地址进行匹配;访问复制子单元433,配置为相应于所述目标访问地址与所述生产应用容器组的访问地址相匹配,复制所述访问请求,并将复制的所述访问请求中的所述目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在一些可选实施例中,所述请求复制配置信息包括:流量控制信息,对应的,所述复制单元403,进一步配置为所述流量复制负载均衡器根据所述流量控制信息,对所述访问请求的复制进行流量控制,并将复制后的访问请求中的所述目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
在一些可选实施例中,所述基于Kubernetes的容器化应用请求复制系统,还包括:保存单元,配置为在所述Kubernetes集群环境外,对所述请求复制配置信息、所述反问请求及所述访问请求的返回值进行保存。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
本申请实施例的基于Kubernetes的容器化应用请求复制系统能够实现上述任一实施例所述的基于Kubernetes的容器化应用请求复制的有益效果,在此不再一一赘述。
示例性设备
图6为根据本申请的一些实施例提供的电子设备的结构示意图;如图6所示,该电子设备包括:
一个或多个处理器601;
计算机可读介质,可以配置为存储一个或多个程序602,所述一个或多个处理器601执行一个或多个程序602时,实现如下步骤:在所述Kubernetes集群环境中发布生产应用容器组和测试应用容器组的请求复制配置信息;由流量复制控制器对所述请求复制配置信息的发布进行监听,并将所述请求复制配置信息同步更新至流量复制负载均衡器;其中,所述流量复制控制器和所述流量复制负载均衡器均包含于所述Kubernetes集群环境中,所述流量复制负载均衡器为所述生产应用容器组和所述测试应用容器组的访问入口;所述流量复制负载均衡器根据所述请求复制配置信息,复制访问请求,并将复制的所述访问请求中的目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组,其中,所述访问请求为用户通过所述流量复制负载均衡器对所述生产应用容器组的访问。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
图7为根据本申请的一些实施例提供的电子设备的硬件结构图;如图7所示,该电子设备的硬件结构可以包括:处理器701、通信接口702、计算机可读介质703和通信总线704;
其中,处理器701、通信接口702、计算机可读介质703通过通信总线704完成相互间的通信;
可选地,通信接口702可以为通信模块的接口,如GSM模块的接口;
其中,处理器701具体可以配置为:在所述Kubernetes集群环境中发布生产应用容器组和测试应用容器组的请求复制配置信息;由流量复制控制器对所述请求复制配置信息的发布进行监听,并将所述请求复制配置信息同步更新至流量复制负载均衡器;其中,所述流量复制控制器和所述流量复制负载均衡器均包含于所述Kubernetes集群环境中,所述流量复制负载均衡器为所述生产应用容器组和所述测试应用容器组的访问入口;所述流量复制负载均衡器根据所述请求复制配置信息,复制访问请求,并将复制的所述访问请求中的目标访问地址修改为所述测试应用容器组的访问地址,以及将所述目标访问地址修改后的访问请求转发至所述测试应用容器组,其中,所述访问请求为用户通过所述流量复制负载均衡器对所述生产应用容器组的访问。可以理解的是,以上描述仅为示例性的,本申请实施例对此并不进行限定。
处理器可以是通用处理器,包括中央处理器(central processing unit,简称CPU)、网络处理器(Network Processor,简称NP)等,还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如:IPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如Ipad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如:iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子装置。
需要指出,根据实施的需要,可将本申请实施例中描述的各个部件/步骤拆分为更多部件/步骤,也可以将两个或多个部件/步骤或者部件/步骤的部分操作组合成新的部件/步骤,以实现本申请实施例的目的。
上述根据本申请实施例的方法可在硬件、固件中实现,或者被实现为可存储在记录介质(诸如CD ROM、RAM、软盘、硬盘或磁光盘)中的软件或计算机代码,或者被实现通过网络下载的原始存储在远程记录介质或非暂时机器存储介质中并将被存储在本地记录介质中的计算机代码,从而在此描述的方法可被存储在使用通用计算机、专用处理器或者可编程或专用硬件(诸如ASIC或FPGA)的记录介质上的这样的软件处理。可以理解,计算机、处理器、微处理器控制器或可编程硬件包括可存储或接收软件或计算机代码的存储组件(例如,RAM、ROM、闪存等),当所述软件或计算机代码被计算机、处理器或硬件访问且执行时,实现在此描述的基于Kubernetes的容器化应用请求复制方法。此外,当通用计算机访问用于实现在此示出的方法的代码时,代码的执行将通用计算机转换为用于执行在此示出的方法的专用计算机。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及方法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和涉及约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其它实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述得设备及系统实施例仅仅是示意性的,其中作为分离不见说明的单元可以使或者也可以不是物理上分开的,作为单元提示的不见可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上实施方式仅用于说明本申请实施例,而非对本申请实施例的限制,有关技术领域的普通技术人员,在不脱离本申请实施例的精神和范围的情况下,还可以做出各种变化和变型,因此所有等同的技术方案也属于本申请实施例的范畴,本申请实施例的专业保护范围应由权利要求限定。