用于Kubernetes集群中的Operator容器组的分片管理方法、装置及系统制造方法及图纸

技术编号:38256476 阅读:8 留言:0更新日期:2023-07-27 10:19
本说明书实施例提供用于Kubernetes集群中的Operator容器组的分片管理方法、装置及系统。中心管理组件将发生配置变更的分片配置信息发送给各个对应的Operator容器组中的代理容器。各个代理容器触发重启对应的控制器并拦截在控制器重启时发起的资源获取请求,对所拦截的资源获取请求进行生效资源对象范围信息注入,并且将经过生效资源对象范围信息注入后的资源获取请求发送给API服务器。API服务器根据所接收的资源获取请求中的生效资源范围信息而从资源存储系统中获取资源对象,并将所获取的资源对象返回给对应的代理容器。各个代理容器将所获取的资源对象加载到对应Operator主容器的缓存中。主容器的缓存中。主容器的缓存中。

【技术实现步骤摘要】
用于Kubernetes集群中的Operator容器组的分片管理方法、装置及系统


[0001]本说明书实施例通常涉及容器
,尤其涉及用于Kubernetes集群中的Operator容器组的分片管理方法、装置及系统。

技术介绍

[0002]随着云计算技术的发展,容器技术(比如,Docker)和基于容器技术的云资源编排调度系统得到广泛的应用,并成为行业标准。在云原生技术中,容器组(例如,Pod)是云资源编排系统的最小调度单元。一个容器组由一个或多个容器(Container)组成,并且在容器组上运行应用程序。
[0003]Kubernetes(也称为k8s)是一种面向容器技术的云资源编排调度系统,是云原生技术的基础标准。Kubernetes所提供的声明式API是云原生领域的核心能力。声明式API提供面向终态的描述,并且通过背后的Operator完成面向终态的资源或能力的交付。Operator是Kubernetes的扩展形式,其可以帮助用户以Kubernetes的声明式API风格自定义管理应用及服务。在生产实践中,Operator的运行一般采用社区的Leader

Election机制,即,实际处理k8s内资源的控制器实例只有一个。然而,单主运行的控制器无法实现负载均衡、水平扩展和版本升级直接切换,也无法实现灰度升级。随着Kubernetes规模的不断扩大,控制器的爆炸半径也跟着扩大,运行时和升级变更都面临着潜在风险。

技术实现思路

[0004]本说明书的实施例提供用于Kubernetes集群中的Operator容器组的分片管理方法、装置及系统。利用该分片管理方法、装置及系统,可以实现对Kubernetes集群资源的分片管理,并且在实现Operator负载均衡和水平扩展能力的同时,提高Operator的运行效率,降低Operator的启动时间和API服务器负载。
[0005]根据本说明书实施例的一个方面,提供一种用于Kubernetes集群中的Operator容器组的分片管理方法,所述分片管理办法由Operator容器组中的代理容器执行,所述分片管理办法包括:从Kubernetes集群的中心管理组件接收所述Operator容器组对应的分片配置信息,所述分片配置信息对应一个通过对Kubernetes集群中的资源对象进行划分得到的资源对象分片,并且所述分片配置信息至少包括分片配置信息的生效资源对象范围信息和应用分片配置信息的目标Operator容器组信息;重启所述Operator容器组中的Operator主容器的控制器;响应于拦截到在所述控制器重启时向API服务器发起的资源获取请求,将所述分片配置信息中的生效资源对象范围信息注入所述资源获取请求,并将经过信息注入后的资源获取请求发送给API服务器;从所述API服务器接收所述API服务器根据所接收的资源获取请求中的生效资源范围信息而从所述Kubernetes集群的资源存储系统中获取的资源对象;以及将所获取的资源对象加载到所述Operator主容器的缓存中。
[0006]可选地,在上述方面的一个示例中,所述资源对象分片以命名空间为最小资源对
象单元进行划分,所述生效资源对象范围信息包括用于指示生效资源对象所在的命名空间的第一资源标签和/或用于指示基于生效资源对象所在的命名空间的命名字符串计算得到的哈希值的第二资源标签。
[0007]可选地,在上述方面的一个示例中,所述资源对象的资源标签经由所述中心管理组件注册的Webhook服务添加到所述资源对象的资源描述中。
[0008]可选地,在上述方面的一个示例中,所述Operator容器组通过下述过程创建:响应于拦截到Operator容器组创建请求,经由所述Webhook服务修改所述Operator容器组创建请求中的容器组描述文本,所述修改至少包括将代理容器注入Operator主容器以及对所述Operator主容器进行证书替换;经由所述Webhook服务将修改后的Operator容器组创建请求返回给所述API服务器;以及经由所述API服务器根据修改后的容器组描述文本创建修改后的Operator容器组,并将所创建的修改后的Operator容器组存储到所述资源存储系统中。
[0009]可选地,在上述方面的一个示例中,经由所述Webhook服务修改所述Operator容器组创建请求中的容器组描述文本包括:在所述Operator容器组中注入代理容器,并将所述Operator容器组创建请求中的初始证书挂载到所述代理容器下作为所述代理容器的授权证书;以及在所述Operator容器组的Operator主容器的对应命名空间下创建伪证书的ConfigMap,并将所述伪证书挂载到所述Operator主容器下作为所述Operator主容器的授权证书,所述伪证书的证书地址指向所述代理容器的特定端口。
[0010]可选地,在上述方面的一个示例中,所述分片管理方法还可以包括:从所述中心管理组件接收请求限流策略;以及根据所接收的请求限流策略对所述Operator容器组发起的请求进行限流处理。
[0011]可选地,在上述方面的一个示例中,所述请求限流策略可以包括:限流加熔断策略;仅限流策略;强制熔断策略;和/或强制放行策略。
[0012]可选地,在上述方面的一个示例中,所述请求限流策略可以包括:基于资源规则配置的请求限流策略;和基于请求动作和/或请求地址的请求限流策略。
[0013]根据本说明书的实施例的另一方面,提供一种用于Kubernetes集群中的Operator容器组的分片管理方法,包括:响应于资源配置中的分片配置信息发生配置变更,经由Kubernetes集群的中心管理组件将发生配置变更的分片配置信息发送给各个对应的Operator容器组中的代理容器,所述资源配置包括一个或多个分片配置信息,每个分片配置信息对应一个通过对Kubernetes集群中的资源对象进行划分得到的资源对象分片,并且所述分片配置信息至少包括分片配置信息的生效资源对象范围信息和应用分片配置信息的目标Operator容器组信息;在各个Operator容器组中的代理容器接收到分片配置信息后,经由各个代理容器重启该Operator容器组中的Operator主容器的控制器;响应于拦截到在控制器重启时向API服务器发起的资源获取请求,经由各个代理容器将所述分片配置信息中的生效资源对象范围信息注入各自拦截到的资源获取请求,并将经过信息注入后的资源获取请求发送给API服务器;经由所述API服务器根据所接收的各个资源获取请求中的生效资源范围信息而从所述Kubernetes集群的资源存储系统中获取的资源对象,并将所获取的资源对象返回给对应的代理容器;以及经由各个代理容器将所获取的资源对象加载到对应Operator主容器的缓存中。
[0014]可选地,在上述方面的一个示例中,所述分片管理方法还可以包括:响应于从API服务器获取到Operator容器组创建请求,经由所述中心管理组件注册的Webhook服务修改所述Op本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种用于Kubernetes集群中的Operator容器组的分片管理方法,所述分片管理办法由Operator容器组中的代理容器执行,所述分片管理办法包括:从Kubernetes集群的中心管理组件接收所述Operator容器组对应的分片配置信息,所述分片配置信息对应一个通过对Kubernetes集群中的资源对象进行划分得到的资源对象分片,并且所述分片配置信息至少包括分片配置信息的生效资源对象范围信息和应用分片配置信息的目标Operator容器组信息;重启所述Operator容器组中的Operator主容器的控制器;响应于拦截到在所述控制器重启时向API服务器发起的资源获取请求,将所述分片配置信息中的生效资源对象范围信息注入所述资源获取请求,并将经过信息注入后的资源获取请求发送给API服务器;从所述API服务器接收所述API服务器根据所接收的资源获取请求中的生效资源范围信息而从所述Kubernetes集群的资源存储系统中获取的资源对象;以及将所获取的资源对象加载到所述Operator主容器的缓存中。2.如权利要求1所述的分片管理方法,其中,所述资源对象分片以命名空间为最小资源对象单元进行划分,所述生效资源对象范围信息包括用于指示生效资源对象所在的命名空间的第一资源标签和/或用于指示基于生效资源对象所在的命名空间的命名字符串计算得到的哈希值的第二资源标签。3.如权利要求2所述的分片管理方法,其中,所述资源对象的资源标签经由所述中心管理组件注册的Webhook服务添加到所述资源对象的资源描述中。4.如权利要求1所述的分片管理方法,其中,所述Operator容器组通过下述过程创建:响应于拦截到Operator容器组创建请求,经由所述Webhook服务修改所述Operator容器组创建请求中的容器组描述文本,所述修改至少包括将代理容器注入Operator主容器以及对所述Operator主容器进行证书替换;经由所述Webhook服务将修改后的Operator容器组创建请求返回给所述API服务器;以及经由所述API服务器根据修改后的容器组描述文本创建修改后的Operator容器组,并将所创建的修改后的Operator容器组存储到所述资源存储系统中。5.如权利要求4所述的分片管理方法,其中,经由所述Webhook服务修改所述Operator容器组创建请求中的容器组描述文本包括:在所述Operator容器组中注入代理容器,并将所述Operator容器组创建请求中的初始证书挂载到所述代理容器下作为所述代理容器的授权证书;以及在所述Operator容器组的Operator主容器的对应命名空间下创建伪证书的ConfigMap,并将所述伪证书挂载到所述Operator主容器下作为所述Operator主容器的授权证书,所述伪证书的证书地址指向所述代理容器的特定端口。6.如权利要求1所述的分片管理方法,还包括:从所述中心管理组件接收请求限流策略;以及根据所接收的请求限流策略对所述Operator容器组发起的请求进行限流处理。7.如权利要求6所述的分片管理方法,其中,所述请求限流策略包括:限流加熔断策略;
仅限流策略;强制熔断策略;和/或强制放行策略。8.如权利要求6所述的分片管理方法,其中,所述请求限流策略包括:基于资源规则配置的请求限流策略;和基于请求动作和/或请求地址的请求限流策略。9.一种用于Kubernetes集群中的Operator容器组的分片管理方法,包括:响应于资源配置中的分片配置信息发生配置变更,经由Kubernetes集群的中心管理组件将发生配置变更的分片配置信息发送给各个对应的Operator容器组中的代理容器,所述资源配置包括一个或多个分片配置信息,每个分片配置信息对应一个通过对Kubernetes集群中的资源对象进行划分得到的资源对象分片,并且所述分片配置信息至少包括分片配置信息的生效资源对象范围信息和应用分片配置信息的目标Operator容器组信息;在各个Operator容器组中的代理容器接收到分片配置信息后,经由各个代理容器重启该Operator容器组中的Operator主容器的控制器;响应于拦截到在控制器重启时向API服务器发起的资源获取请求,经由各个代理容器将所述分片配置信息中的生效资源对象范围信息注入各自拦截到的资源获取请求,并将经过信息注入后的资源获取请求发送给API服务器;经由所述API服务器根据所接收的各个资源获取请求中的生效资源范围信息而从所述Kubernetes集群的资源存储系统中获取的资源对象,并将所获取的资源对象返回给对应的代理容器;以及经由各个代理容器将所获取的资源对象加载到对应Operator主容器的缓存中。10.如权利要求9所述的分片管理方法,还包括:响应于拦截到Operator容器组创建请求,经由所述中心管理组件注册的Webhook服务修改所述Operator容器组创建请求中的容器组描述文本,所述修改至少包括将代理容器注入Operator主容器以及对所述Operator主容器进行证书替换;经由所述Webhook服务将修改后的Operator容器组创建请求返回给所述API服务器;以及经由所述API服务器根据修改后的容器组描述文本创建修改后的Operator容器组,并将所创建的修改后的Operator容器组存储到所述资源存储系统中。11.如权利要求10所述的分片管理方法,其中,经由所述Webhook服务修改所述Operator容器组创建请求中的容器组描述文本包括:在所述Operator容器组中注入代理容器,并将所述Operator容器组创建请求中的初始证书挂载到所述代理容器下作为所述代理容器的授权证书;以及在所述Operator容器组的Operator主容器的对应命名空间下创建伪证书的ConfigMap,并将所述伪证书挂载到所述Operator主容器下作为所述Operator主容器的授权证书,所述伪证书的证书地址指向所述代理容器的特定端口。...

【专利技术属性】
技术研发人员:王一锟吴珂
申请(专利权)人:支付宝杭州信息技术有限公司
类型:发明
国别省市:

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

1