容器环境基于ingress控制器多灰度发布方法、设备及存储介质技术

技术编号:35175955 阅读:13 留言:0更新日期:2022-10-12 17:42
本申请涉及计算机技术领域,具体涉及容器环境的基于ingress控制器多灰度发布方法、设备及存储介质。方法包括:创建目标实体类,目标实体类包括灰度版本信息和旧版本信息;创建目标实体类实例;获取灰度控制器;使用灰度控制器基于目标实体类实例更新Nginx配置;基于Nginx配置实现灰度发布;可以解决传统的灰度发布方式会导致不能同时发布多个灰度版本问题,由于传统的ingress对灰度服务只能设定一个的限制,本申请通过创建目标实体类,该实体类可同时配置多个灰度服务,同时通过灰度控制器进行Nginx的配置更新,允许代理多个灰度服务,从而可以在容器环境下进行多版本灰度服务发布,提高了服务测试发布效率。提高了服务测试发布效率。提高了服务测试发布效率。

【技术实现步骤摘要】
容器环境基于ingress控制器多灰度发布方法、设备及存储介质


[0001]本申请涉及计算机
,尤其涉及容器环境基于ingress控制器多灰度发布方法、设备及存储介质。

技术介绍

[0002]灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B 测试,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。目前,可以在容器环境(Kubernetes环境)下进行灰度发布。
[0003]传统的灰度发布方法通过在容器环境下使用Ingress的注解方式进行灰度发布,具体可以基于服务权重、基于Cookie值以及基于标头值进行不同标准的灰度发布。
[0004]然而,服务只有一个灰度版本可能无法满足需求,一个服务可能需要例如A,B,C等多个灰度版本进行同时发布,此时,传统的灰度发布方式会导致不能同时发布多个灰度版本的问题。

技术实现思路

[0005]本申请提供了容器环境基于ingress控制器多灰度发布方法、设备及存储介质,可以解决传统的灰度发布方式会导致不能同时发布多个灰度版本的问题,本申请提供如下技术方案:第一方面,提供了一种容器环境基于ingress控制器多灰度发布方法,所述方法包括:创建目标实体类,所述目标实体类包括至少两个灰度版本信息和一个旧版本信息;创建目标实体类实例;获取灰度控制器,所述灰度控制器在Ingress Nginx控制器基础上进行增强得到;使用所述灰度控制器基于所述目标实体类实例更新Nginx配置;基于所述Nginx配置实现当前应用的灰度发布。
[0006]可选地,所述创建目标实体类,包括:获取初始化实体类;获取至少两个灰度版本信息和一个旧版本信息;在所述初始化实体类中以预设规则将所述至少两个灰度版本信息和一个旧版本信息配置于对应的路径中,得到所述目标实体类。
[0007]可选地,所述使用所述灰度控制器基于所述目标实体类实例更新Nginx配置,包括:
使用所述灰度控制器的警告机制监控所述目标实体类实例,得到监控结果;基于监控结果更新所述Nginx配置。
[0008]可选地,所述使用所述灰度控制器的警告机制监控所述目标实体类实例,得到监控结果之前,还包括:对所述目标实体类实例的资源的规格进行查验;在查验通过的情况下,确定所述目标实体类实例创建成功。
[0009]可选地,所述基于监控结果更新所述Nginx配置之后,还包括:基于预设识别算法识别所述Nginx配置;在所述Nginx配置发生变化的情况下重新加载Nginx配置;在所述Nginx配置未发生变化的情况下将后端脚本传输至Nginx配置。
[0010]可选地,所述预设识别算法包括:MD4算法、MD5算法、一致性哈希算法。
[0011]可选地,所述基于所述Nginx配置实现当前应用的灰度发布之后,还包括:接收用户访问请求;基于所述Nginx配置将所述用户访问请求转发至对应的灰度版本;将响应结果返回至用户,以供用户访问灰度服务。
[0012]可选地,所述目标实体类包括n个存储地址,所述至少一个存储地址包括m个路径,其中,n和m为正整数。
[0013]第二方面,提供了一种电子设备,所述设备包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现如第一方面所述的容器环境基于ingress控制器多灰度发布方法。
[0014]第三方面,提供了一种计算机可读存储介质,所述存储介质中存储有程序,所述程序被处理器执行时用于实现如第一方面所述的容器环境基于ingress控制器多灰度发布方法。
[0015]本申请的有益效果在于:通过创建目标实体类,所述目标实体类包括至少两个灰度版本信息和一个旧版本信息;创建目标实体类实例;获取灰度控制器,所述灰度控制器在Ingress Nginx控制器基础上进行增强得到;使用所述灰度控制器基于所述目标实体类实例更新Nginx配置;基于所述Nginx配置实现当前应用的灰度发布;可以解决传统的灰度发布方式会导致不能同时发布多个灰度版本问题,由于传统的ingress对灰度服务只能设定一个的限制,本实施例通过创建目标实体类,该实体类可同时配置多个灰度服务,同时通过灰度控制器进行Nginx的配置更新,允许服务端代理多个灰度服务,克服了传统的ingress对灰度服务只能设定一个的限制,从而可以在容器环境下进行多版本灰度服务发布,提高了服务测试发布效率。
[0016]另外,由于传统的灰度发布服务在进行灰度发布规则配置时基于服务权重、基于Cookie值以及基于标头值进行配置,这就导致了灰度规则配置不灵活的问题,本实施例中,通过预设规则进行配置,预设规则可以包括基于标头、cookie的正则匹配或者精确匹配,同时还可以通过组号的与或规则进行匹配,因此本实施例中的灰度发布规则更加灵活可变,具有高扩展度。
[0017]另外,本实施例中,由于目标实体类可以支持预设实体类中支持设置多个存储地址,每个存储地址可设置多个路径,每个路径可配置多个服务,这样可以保证可以发布多个
灰度版本的服务,从而可以更加平稳高效的在Kubernetes集群上过渡升级测试对应的产品服务。
[0018]另外,本实施例中,通过对目标实体类实例资源的规格进行检查,在查验通过的情况下,确定所述目标实体类实例创建成功,这样可以保证在进行灰度服务发布的过程中不会出现文件损坏等问题,可以保证灰度发布服务的完整性。
[0019]另外,由于预设规则的改变或者地址的改变可能会导致Nginx配置在实时发生变化,此时对Nginx配置进行算法识别,可以确定Nginx配置的内容是否发生变化,若发生变化则需要重新加载Nginx配置以保证可以实时对新的配置内容进行响应,同时若配置未发生变化,或者配置发生的变化未满足重新加载Nginx配置的要求,则将后端脚本传输至Nginx配置以进行更新,这样可以节约计算机的运行资源。
附图说明
[0020]图1是本申请一个实施例提供的Ingress对集群中服务的外部访问进行管理的示意图;图2是本申请一个实施例提供的Ingress 控制器整体工作流程图;图3是本申请一个实施例提供的容器环境基于ingress控制器多灰度发布方法的流程图;图4是本申请一个实施例提供的目标实体类的结构图;图5是本申请另一个实施例提供的容器环境基于ingress控制器多灰度发布方法的流程图;图6是本申请一个实施例提供的用户发起访问的示意图;图7是本申请一个实施例提供的灰度发布装置的框图;图8是本申请一个实施例提供的电子设备的框图。
具体实施方式
[0021]下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种容器环境基于ingress控制器多灰度发布方法,其特征在于,所述方法包括:创建目标实体类,所述目标实体类包括至少两个灰度版本信息和一个旧版本信息;创建目标实体类实例;获取灰度控制器,所述灰度控制器在Ingress Nginx控制器基础上进行增强得到;使用所述灰度控制器基于所述目标实体类实例更新Nginx配置;基于所述Nginx配置实现当前应用的灰度发布。2.根据权利要求1所述的一种容器环境基于ingress控制器多灰度发布方法,其特征在于,所述创建目标实体类,包括:获取初始化实体类;获取至少两个灰度版本信息和一个旧版本信息;在所述初始化实体类中以预设规则将所述至少两个灰度版本信息和一个旧版本信息配置于对应的路径中,得到所述目标实体类。3.根据权利要求1所述的一种容器环境基于ingress控制器多灰度发布方法,其特征在于,所述使用所述灰度控制器基于所述目标实体类实例更新Nginx配置,包括:使用所述灰度控制器的警告机制监控所述目标实体类实例,得到监控结果;基于所述监控结果更新所述Nginx配置。4.根据权利要求3所述的一种容器环境基于ingress控制器多灰度发布方法,其特征在于,所述使用所述灰度控制器的警告机制监控所述目标实体类实例,得到监控结果之前,还包括:对所述目标实体类实例的资源的规格进行查验;在查验通过的情况下,确定所述目标实体类实例创建成功。5.根据权利要求3所述的一种容器环境基于ingress控制器多灰度发布方法,其...

【专利技术属性】
技术研发人员:花磊王永亮崔骥赵安全王亮张凯付少松
申请(专利权)人:江苏博云科技股份有限公司
类型:发明
国别省市:

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

1