System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种业务服务更新方法、装置和控制器制造方法及图纸_技高网

一种业务服务更新方法、装置和控制器制造方法及图纸

技术编号:40464476 阅读:5 留言:0更新日期:2024-02-22 23:18
本申请提供的业务服务更新方法,应用于控制器,所述方法包括:响应于业务人员触发的针对目标服务的更新请求,从更新请求获取发布类型和单次发布的目标比例;在发布类型为滚动发布时,将并发度字段更新为1,并将用于控制暂停滚动更新或继续滚动更新的滚动更新控制字段更新为false,以指示Kubernetes系统的原生控制器创建目标服务的新版本的RS对象,并创建1个新版本的实例;在监听到原生控制器成功创建新版本的实例后,将并发度字段更新为初始值,并将滚动更新控制字段更新为true,以使原生控制器暂停滚动更新;在新版本的实例的占比未达到目标比例时,按照并发度字段,通过patch方式改变新版本的实例的数量,直至新版本的实例的占比达到目标比例。

【技术实现步骤摘要】

本申请涉及互联网云计算,尤其涉及一种业务服务更新方法、装置和控制器


技术介绍

1、目前的业务服务更新主要是基于k8s原生的机制,k8s原生的机制仅支持滚动发布,而且在滚动发布过程中,原生控制器不支持精准暂停到某个比例上。

2、为了能够实现按指定比例进行逐步灰度的效果,目前常用的思路是创建一个新版本的deployment对象,通过控制新版本deployment和旧版本deployment的实例数的占比的方法实现指定比例的灰度效果。

3、但是,该方法由于是通过显式创建deployment的方式来实现指定比例的灰度效果的。此时,如果服务部署在多个集群时,就需要每个集群都创建多个deployment对象,且监控系统、上层平台等都要做相关适配调整,以有效识别多个deployment对象隶属单个服务的关联关系,这样,使得该方法的可扩展性较差。


技术实现思路

1、有鉴于此,本申请提供一种业务服务更新方法、装置和控制器,用以提供一种可扩展的业务服务更新方法,以实现指定比例的灰度效果。

2、具体地,本申请是通过如下技术方案实现的:

3、本申请第一方面提供一种业务服务更新方法,所述方法应用于控制器,所述控制器为kubernetes系统中的新增控制器;所述方法包括:

4、响应于业务人员触发的针对目标服务的更新请求,从所述更新请求获取发布类型和单次发布的目标比例;

5、在所述发布类型为滚动发布时,将并发度字段更新为1,并将用于控制暂停滚动更新或继续滚动更新的滚动更新控制字段更新为false,以指示所述kubernetes系统的原生控制器创建所述目标服务的新版本的rs对象,并创建1个新版本的实例;

6、在监听到所述原生控制器成功创建新版本的实例后,将所述并发度字段更新为初始值,并将所述滚动更新控制字段更新为true,以使所述原生控制器暂停滚动更新;

7、在新版本的实例的占比未达到所述目标比例时,按照并发度字段,通过patch方式改变新版本的实例的数量,直至新版本的实例的占比达到所述目标比例。

8、本申请第二方面提供一种业务服务更新装置,所述装置应用于控制器,所述控制器为kubernetes系统中的新增控制器;所述装置包括:获取模块、更新模块和处理模块;其中,

9、所述获取模块,用于响应于业务人员触发的针对目标服务的更新请求,从所述更新请求获取发布类型和单次发布的目标比例;

10、所述更新模块,用于在所述发布类型为滚动发布时,将并发度字段更新为1,并将用于控制暂停滚动更新或继续滚动更新的滚动更新控制字段更新为false,以指示所述kubernetes系统的原生控制器创建所述目标服务的新版本的rs对象,并创建1个新版本的实例;

11、所述更新模块,还用于在监听到所述原生控制器成功创建新版本的实例后,将所述并发度字段更新为初始值,并将所述滚动更新控制字段更新为true,以使所述原生控制器暂停滚动更新;

12、所述处理模块,用于在新版本的实例的占比未达到所述目标比例时,按照并发度字段,通过patch方式改变新版本的实例的数量,直至新版本的实例的占比达到所述目标比例。

13、本申请第三方面提供一种控制器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本申请第一方面提供的任一项所述方法的步骤。

14、本申请第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本申请第一方面任一项所述方法的步骤。

15、本申请提供的业务服务更新方法、装置和控制器,通过在kubernetes系统中新增一个控制器,并令该控制器响应于业务人员触发针对目标服务的更新请求,从所述更新请求获取发布类型和单次发布的目标比例,并在所述发布类型为滚动发布时,将并发度字段更新为1,并将用于控制暂停滚动更新或继续滚动更新的滚动更新控制字段更新为false,以指示所述kubernetes系统的原生控制器创建所述目标服务的新版本的rs对象,并创建1个新版本的实例,进而在监听到所述原生控制器成功创建新版本的实例后,将所述并发度字段更新为初始值,并将所述滚动更新控制字段更新为true,以使所述原生控制器暂停滚动更新,从而在新版本的实例的占比未达到所述目标比例时,按照并发度字段,通过patch方式改变新版本的实例的数量,直至新版本的实例的占比达到所述目标比例。这样,在发布类型为滚动发布时,先通过原生控制器生成1个新版本的实例,后续,让原生控制器暂停滚动发布,通过patch方式改变新版本的实例的数量,由于patch方式是可控的,从而可以实现精准控制灰度比例的目的。此外,本申请基于新增控制器和原生控制器来实现精准控制灰度比例,解决方案是云原生化的,不需要创建deployment,可扩展性好,且控制逻辑简单,成本较低。

本文档来自技高网...

【技术保护点】

1.一种业务服务更新方法,其特征在于,所述方法应用于控制器,所述控制器为Kubernetes系统中的新增控制器;所述方法包括:

2.根据权利要求1所述的方法,其特征在于,在所述发布类型为原地发布时,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,按照并发度字段,通过patch方式改变新版本的实例的数量,包括:

4.根据权利要求2所述的方法,其特征在于,按照并发度字段流式控制实例更新,包括:

5.根据权利要求4所述的方法,其特征在于,每个所述旧版本的实例的更新过程,包括:

6.一种业务服务更新装置,其特征在于,所述装置应用于控制器,所述控制器为Kubernetes系统中的新增控制器;所述装置包括:获取模块、更新模块和处理模块;其中,

7.根据权利要求6所述的装置,其特征在于,在所述发布类型为原地发布时,所述更新模块,还用于将所述滚动更新控制字段更新为true,以使所述原生控制器暂停滚动更新;

8.根据权利要求6所述的装置,其特征在于,所述处理模块,具体用于在新版本的实例的占比大于或者等于指定值时,按照并发度字段,通过patch方式增加新版本的实例的数量,以指示所述原生控制器缩减旧版本的实例的数量;

9.一种控制器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-5任一项所述方法的步骤。

10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-5任一项所述方法的步骤。

...

【技术特征摘要】

1.一种业务服务更新方法,其特征在于,所述方法应用于控制器,所述控制器为kubernetes系统中的新增控制器;所述方法包括:

2.根据权利要求1所述的方法,其特征在于,在所述发布类型为原地发布时,所述方法还包括:

3.根据权利要求1所述的方法,其特征在于,按照并发度字段,通过patch方式改变新版本的实例的数量,包括:

4.根据权利要求2所述的方法,其特征在于,按照并发度字段流式控制实例更新,包括:

5.根据权利要求4所述的方法,其特征在于,每个所述旧版本的实例的更新过程,包括:

6.一种业务服务更新装置,其特征在于,所述装置应用于控制器,所述控制器为kubernetes系统中的新增控制器;所述装置包括:获取模块、更新模块和处理模块;其中,...

【专利技术属性】
技术研发人员:周峰常强强孟博
申请(专利权)人:北京陌陌信息技术有限公司
类型:发明
国别省市:

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

1