本公开涉及计算机领域,特别涉及一种发布控制方法和装置、联邦主集群、联邦集群系统和介质。
背景技术:
1、目前,开源kruise rollout组件和argo-rollout组件,基于k8s(kubernetes,云原生容器调度管理平台)原生控制资源deployment(在kubernetes中,deployment是一种用于声明性地定义和管理应用程序副本的kubernetes资源对象。它负责管理应用程序的部署、更新和回滚。deployment控制着一个或多个pod的副本数量和状态)或自定义增强资源控制器如cloneset(增强资源控制器资源对象,用于管理对实例顺序没有要求的无状态应用),控制容器的增删改查等变更,同时进行对service(在kubernetes中,service是一种用于暴露应用程序的网络服务的kubernetes资源对象。它允许其他应用程序或用户可以通过网络访问应用程序的副本,实现了服务的发现和负载均衡),ingress(kubernetes中的一种资源对象,用于将外部流量路由到集群内部的服务。它充当了集群与外部网络之间的入口点,可以实现流量的负载均衡、ssl/tls终止、路径和主机名的路由等功能)等流量控制器的操作进行容器入口访问的变更,从而按规范流程实现对应用金丝雀发布(基于渐进式发布的发布策略)完整生命周期的管理。
技术实现思路
1、发明人注意到,在相关技术中,金丝雀发布都针对于单k8s集群的部署。在大规模部署场景下,相关技术难以实现跨集群管理资源进行金丝雀发布。
2、据此,本公开提供一种发布控制方法,通过将负载资源、流量资源和配置资源未进行统一的版本控制,从而有效实现跨集群管理资源的金丝雀发布。
3、根据本公开实施例的第一方面,提供一种发布控制方法,由主集群控制装置执行,包括:根据控制器集群控制装置发送的金丝雀发布请求,将用于部署负载的n个联邦成员集群中的第i个联邦成员集群的多个容器划分为第一容器组和第二容器组,1≤i≤n,所述多个容器挂载第一配置文件;控制所述第二容器组的每个容器挂载所述金丝雀发布请求中包括的第二配置文件;将所述应用流量按指定比例划分为第一流量和第二流量;将所述第一流量下发给所述第一容器组中的每个容器,将所述第二流量下发给所述第二容器组中的每个容器。
4、在一些实施例中,将第i个联邦成员集群中挂载第一配置文件的多个容器划分为第一容器组和第二容器组包括:控制所述联邦主集群中的联邦回滚对象,将所述金丝雀发布请求中包括的负载比例信息发送给所述联邦主集群中的联邦应用集对象;控制所述联邦应用集对象根据所述负载比例信息确定所述第i个联邦成员集群的容器升级信息;控制所述联邦应用集对象将所述第i个联邦成员集群的容器升级信息发送给所述第i个联邦成员集群的成员集群控制装置,以便所述成员集群控制装置按照所述容器升级信息将所述第i个联邦成员集群中的多个容器划分为所述第一容器组和所述第二容器组。
5、在一些实施例中,控制所述第二容器组的每个容器挂载所述第二配置文件包括:控制所述联邦回滚对象将所述第二配置文件发送给所述联邦主集群中的配置映射对象;控制所述配置映射对象将所述第二配置文件发送给所述第i个联邦成员集群,以便所述第二容器组中的每个容器挂载所述第二配置文件。
6、在一些实施例中,将所述应用流量按指定比例划分为第一流量和第二流量包括:控制所述联邦回滚对象,将所述金丝雀发布请求中包括的第一流量配置信息发送给所述联邦主集群中的联邦网关对象;控制所述联邦网关对象根据所述第一流量配置信息确定的所述指定比例,将所述应用流量划分为所述第一流量和所述第二流量。
7、在一些实施例中,将所述第一流量下发给所述第一容器组中的每个容器包括:控制所述联邦网关对象,将所述第一流量分配给所述联邦主集群中的第一联邦服务对象;控制所述第一联邦服务对象将所述第一流量下发给所述第一容器组中的每个容器。
8、在一些实施例中,将所述第二流量下发给所述第二容器组中的每个容器包括:根据所述金丝雀发布请求,在所述联邦主集群中创建第二联邦服务对象;控制所述联邦网关对象将所述第二应用流量分配给所述第二联邦服务对象;控制所述第二联邦服务对象将所述第二流量下发给所述第一容器组中的每个容器。
9、在一些实施例中,根据所述控制器集群控制装置发送的金丝雀发布结束请求,控制所述第一容器组的每个容器挂载所述第二配置文件;将所述应用流量下发给所述第i个联邦成员集群中的所述多个容器;删除所述第二联邦服务对象。
10、在一些实施例中,控制所述第一容器组的每个容器挂载所述第二配置文件包括:控制所述联邦回滚对象,将负载变更信息发送给所述联邦应用集对象;控制所述联邦应用集对象将所述负载变更信息发送给所述第i个联邦成员集群的成员集群控制装置,以便所述成员集群控制装置控制所述第一容器组的每个容器挂载所述第二配置文件。
11、在一些实施例中,将所述应用流量下发给所述第i个联邦成员集群中的所述多个容器包括:控制所述联邦回滚对象,将所述金丝雀发布结束请求中包括的第二流量配置信息发送给所述联邦网关对象;控制所述联邦网关对象根据所述第二流量配置信息,将所述应用流量分配给所述第一联邦服务对象;控制所述第一联邦服务对象将所述应用流量下发给所述第i个联邦成员集群中的多个容器。
12、在一些实施例中,根据所述控制器集群控制装置发送的应用发布请求,选择所述n个联邦成员集群;向所述第i个联邦成员集群的成员集群控制装置发送资源创建请求,以便所述成员集群控制装置在所述第i个联邦成员集群中创建多个容器;控制所述多个容器挂载所述应用发布请求中包括的第一配置文件;将所述应用流量下发给所述多个容器。
13、在一些实施例中,选择所述n个联邦成员集群包括:根据所述应用发布请求,在联邦主集群中创建联邦应用集对象;控制所述联邦应用集对象根据所述应用发布请求中的应用参数,选择所述n个联邦成员集群。
14、在一些实施例中,向第i个联邦成员集群的成员集群控制装置发送资源创建请求包括:根据所述应用参数,在所述联邦主集群中创建与所述n个联邦成员集群一一对应的n个应用集对象;控制与所述第i个联邦成员集群对应的应用集对象向所述第i个联邦成员集群的成员集群控制装置发送资源创建请求,以便所述成员集群控制装置在所述第i个联邦成员集群中创建所述多个容器。
15、在一些实施例中,控制所述多个容器挂载所述应用发布请求中包括的第一配置文件包括:根据所述应用发布请求,在联邦主集群中创建联邦回滚对象和配置映射对象;控制所述联邦回滚对象将所述第一配置文件发送给所述配置映射对象;控制所述配置映射对象将所述第一配置文件发送给第i个联邦成员集群,以便所述第i个联邦成员集群中的多个容器挂载所述第一配置文件。
16、在一些实施例中,将所述应用流量下发给所述多个容器包括:根据所述应用发布请求,在所述联邦主集群中创建第一联邦服务对象;控制所述联邦主集群中的联邦网关对象将所述应用流量分配给所述第一联邦服务对象;控制所述第一联邦服务对象将所述应用流量下发给所述第i个联邦成员集群中的的多个容器。
17、根据本公开实施例的第二方面,提供一种主集群控制装置,包括:存储器,被配置为存储指令;处理器,耦合到存储器,处理器被配置为基于存储器存储的指令执行实现如上述任一实施例所述的方法。
18、根据本公开实施例的第三方面,提供一种联邦主集群,包括:如上述任一实施例所述的主集群控制装置。
19、根据本公开实施例的第四方面,提供一种联邦集群系统,包括:如上述任一实施例所述的联邦主集群;控制器集群,其中所述控制器集群中的控制器集群控制装置被配置为向所述联邦主集群发送金丝雀发布请求;用于部署负载的n个联邦成员集群,其中第i个联邦成员集群中的成员集群控制装置被配置为根据所述联邦主集群的控制,将所述第i个联邦成员集群的多个容器划分为第一容器组和第二容器组,1≤i≤n,其中所述多个容器挂载第一配置映射对象中的第一配置文件,控制所述第二容器组的每个容器挂载所述联邦主集群发送的第二配置文件,将所述联邦主集群下发的第一流量发送给所述第一容器组中的每个容器,将所述联邦主集群下发的第二流量发送给所述第二容器组中的每个容器。
20、在一些实施例中,所述成员集群控制装置被配置为控制所述第i个联邦成员集群中的应用集对象,根据所述联邦主集群发送的容器升级信息,将所述第i个联邦成员集群中的多个容器划分为所述第一容器组和所述第二容器组。
21、在一些实施例中,所述成员集群控制装置被配置为在所述第i个联邦成员集群中创建第二配置映射对象,将所述联邦主集群发送的所述第二配置文件存入所述第二配置映射对象,控制所述第二容器组中的每个容器挂载所述第二配置文件。
22、在一些实施例中,所述成员集群控制装置被配置为控制所述第i个联邦成员集群中的第一服务对象,将所述联邦主集群发送的第一流量发送给所述第一容器组中的每个容器,控制所述第i个联邦成员集群中的第二服务对象,将所述联邦主集群发送的第二流量发送给所述第二容器组中的每个容器。
23、在一些实施例中,所述控制器集群控制装置被配置为向所述联邦主集群发送金丝雀发布结束请求;所述成员集群控制装置被配置为根据所述联邦主集群的控制,控制所述第一容器组的每个容器挂载所述第二配置文件,将所述联邦主集群下发的应用流量发送给所述第i个联邦成员集群中的所述多个容器,并删除所述第二配置映射对象。
24、在一些实施例中,所述成员集群控制装置被配置为控制所述第i个联邦成员集群中的应用集对象,根据所述联邦主集群发送的负载变更信息,控制所述第一容器组的每个容器挂载所述第二配置文件。
25、在一些实施例中,所述成员集群控制装置被配置为控制所述第i个联邦成员集群中的第一服务对象,将所述联邦主集群发送的所述应用流量发送给所述第i个联邦成员集群中的所述多个容器。
26、在一些实施例中,所述控制器集群控制装置被配置为向所述联邦主集群发送应用发布请求;所述成员集群控制器被配置为根据所述联邦主集群发送的资源创建请求,在所述第i个联邦成员集群中创建所述多个容器,控制所述多个容器挂载所述应用发布请求中包括的第一配置文件,控制所述第i个联邦成员集群中的第一服务对象将所述联邦主集群发送的应用流量发送给所述多个容器。
27、在一些实施例中,所述成员集群控制器被配置为控制所述第i个联邦成员集群中的应用集对象,根据所述联邦主集群发送的资源创建请求,在所述第i个联邦成员集群中创建所述多个容器。
28、在一些实施例中,所述成员集群控制器被配置为将所述联邦主集群发送的第一配置文件存入第一配置映射对象,并控制所述第i个联邦成员集群中的多个容器挂载所述第一配置文件。
29、在一些实施例中,所述成员集群控制器被配置为控制所述第i个联邦成员集群中的第一服务对象,将所述联邦主集群发送的所述应用流量发送给所述第i个联邦成员集群中的所述多个容器。
30、根据本公开实施例的第五方面,提供一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如上述任一实施例涉及的方法。
31、通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
1.一种发布控制方法,由主集群控制装置执行,包括:
2.根据权利要求1所述的方法,其中,将第i个联邦成员集群中挂载第一配置文件的多个容器划分为第一容器组和第二容器组包括:
3.根据权利要求2所述的方法,其中,控制所述第二容器组的每个容器挂载所述第二配置文件包括:
4.根据权利要求2所述的方法,其中,将所述应用流量按指定比例划分为第一流量和第二流量包括:
5.根据权利要求4所述的方法,其中,将所述第一流量下发给所述第一容器组中的每个容器包括:
6.根据权利要求5所述的方法,其中,将所述第二流量下发给所述第二容器组中的每个容器包括:
7.根据权利要求6所述的方法,还包括:
8.根据权利要求7所述的方法,其中,控制所述第一容器组的每个容器挂载所述第二配置文件包括:
9.根据权利要求7所述的方法,其中,将所述应用流量下发给所述第i个联邦成员集群中的所述多个容器包括:
10.根据权利要求1-9中任一项所述的方法,还包括:
11.根据权利要求10所述的方法,其中,选择所述n个联邦成员集群包括:
12.根据权利要求11所述的方法,其中,向第i个联邦成员集群的成员集群控制装置发送资源创建请求包括:
13.根据权利要求10所述的方法,其中,控制所述多个容器挂载所述应用发布请求中包括的第一配置文件包括:
14.根据权利要求13所述的方法,其中,将所述应用流量下发给所述多个容器包括:
15.一种主集群控制装置,包括:
16.一种联邦主集群,包括:
17.一种联邦集群系统,包括
18.根据权利要求17所述的系统,其中,
19.根据权利要求18所述的系统,其中,
20.根据权利要求19所述的系统,其中,
21.根据权利要求20所述的系统,其中,
22.根据权利要求21所述的系统,其中,
23.根据权利要求21所述的系统,其中,
24.根据权利要求17-23中任一项所述的系统,其中,
25.根据权利要求24所述的系统,其中,
26.根据权利要求24所述的系统,其中,
27.根据权利要求24所述的系统,其中,
28.一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现如权利要求1-14中任一项所述的方法。
