CN115168162A - 容器环境基于ingress控制器多灰度发布方法、设备及存储介质 - Google Patents
容器环境基于ingress控制器多灰度发布方法、设备及存储介质 Download PDFInfo
- Publication number
- CN115168162A CN115168162A CN202211094997.2A CN202211094997A CN115168162A CN 115168162 A CN115168162 A CN 115168162A CN 202211094997 A CN202211094997 A CN 202211094997A CN 115168162 A CN115168162 A CN 115168162A
- Authority
- CN
- China
- Prior art keywords
- gray
- entity class
- controller
- target entity
- issuing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3093—Configuration details thereof, e.g. installation, enabling, spatial arrangement of the probes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
本申请涉及计算机技术领域,具体涉及容器环境的基于ingress控制器多灰度发布方法、设备及存储介质。方法包括:创建目标实体类,目标实体类包括灰度版本信息和旧版本信息;创建目标实体类实例;获取灰度控制器;使用灰度控制器基于目标实体类实例更新Nginx配置;基于Nginx配置实现灰度发布;可以解决传统的灰度发布方式会导致不能同时发布多个灰度版本问题,由于传统的ingress对灰度服务只能设定一个的限制,本申请通过创建目标实体类,该实体类可同时配置多个灰度服务,同时通过灰度控制器进行Nginx的配置更新,允许代理多个灰度服务,从而可以在容器环境下进行多版本灰度服务发布,提高了服务测试发布效率。
Description
技术领域
本申请涉及计算机技术领域,尤其涉及容器环境基于ingress控制器多灰度发布方法、设备及存储介质。
背景技术
灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B 测试,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B 上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。目前,可以在容器环境(Kubernetes环境)下进行灰度发布。
传统的灰度发布方法通过在容器环境下使用Ingress的注解方式进行灰度发布,具体可以基于服务权重、基于Cookie值以及基于标头值进行不同标准的灰度发布。
然而,服务只有一个灰度版本可能无法满足需求,一个服务可能需要例如A,B,C等多个灰度版本进行同时发布,此时,传统的灰度发布方式会导致不能同时发布多个灰度版本的问题。
发明内容
本申请提供了容器环境基于ingress控制器多灰度发布方法、设备及存储介质,可以解决传统的灰度发布方式会导致不能同时发布多个灰度版本的问题,本申请提供如下技术方案:
第一方面,提供了一种容器环境基于ingress控制器多灰度发布方法,所述方法包括:
创建目标实体类,所述目标实体类包括至少两个灰度版本信息和一个旧版本信息;
创建目标实体类实例;
获取灰度控制器,所述灰度控制器在Ingress Nginx控制器基础上进行增强得到;
使用所述灰度控制器基于所述目标实体类实例更新Nginx配置;
基于所述Nginx配置实现当前应用的灰度发布。
可选地,所述创建目标实体类,包括:
获取初始化实体类;
获取至少两个灰度版本信息和一个旧版本信息;
在所述初始化实体类中以预设规则将所述至少两个灰度版本信息和一个旧版本信息配置于对应的路径中,得到所述目标实体类。
可选地,所述使用所述灰度控制器基于所述目标实体类实例更新Nginx配置,包括:
使用所述灰度控制器的警告机制监控所述目标实体类实例,得到监控结果;
基于监控结果更新所述Nginx配置。
可选地,所述使用所述灰度控制器的警告机制监控所述目标实体类实例,得到监控结果之前,还包括:
对所述目标实体类实例的资源的规格进行查验;
在查验通过的情况下,确定所述目标实体类实例创建成功。
可选地,所述基于监控结果更新所述Nginx配置之后,还包括:
基于预设识别算法识别所述Nginx配置;
在所述Nginx配置发生变化的情况下重新加载Nginx配置;
在所述Nginx配置未发生变化的情况下将后端脚本传输至Nginx配置。
可选地,所述预设识别算法包括:MD4算法、MD5算法、一致性哈希算法。
可选地,所述基于所述Nginx配置实现当前应用的灰度发布之后,还包括:
接收用户访问请求;
基于所述Nginx配置将所述用户访问请求转发至对应的灰度版本;
将响应结果返回至用户,以供用户访问灰度服务。
可选地,所述目标实体类包括n个存储地址,所述至少一个存储地址包括m个路径,其中,n和m为正整数。
第二方面,提供了一种电子设备,所述设备包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现如第一方面所述的容器环境基于ingress控制器多灰度发布方法。
第三方面,提供了一种计算机可读存储介质,所述存储介质中存储有程序,所述程序被处理器执行时用于实现如第一方面所述的容器环境基于ingress控制器多灰度发布方法。
本申请的有益效果在于:通过创建目标实体类,所述目标实体类包括至少两个灰度版本信息和一个旧版本信息;创建目标实体类实例;获取灰度控制器,所述灰度控制器在Ingress Nginx控制器基础上进行增强得到;使用所述灰度控制器基于所述目标实体类实例更新Nginx配置;基于所述Nginx配置实现当前应用的灰度发布;可以解决传统的灰度发布方式会导致不能同时发布多个灰度版本问题,由于传统的ingress对灰度服务只能设定一个的限制,本实施例通过创建目标实体类,该实体类可同时配置多个灰度服务,同时通过灰度控制器进行Nginx的配置更新,允许服务端代理多个灰度服务,克服了传统的ingress对灰度服务只能设定一个的限制,从而可以在容器环境下进行多版本灰度服务发布,提高了服务测试发布效率。
另外,由于传统的灰度发布服务在进行灰度发布规则配置时基于服务权重、基于Cookie值以及基于标头值进行配置,这就导致了灰度规则配置不灵活的问题,本实施例中,通过预设规则进行配置,预设规则可以包括基于标头、cookie的正则匹配或者精确匹配,同时还可以通过组号的与或规则进行匹配,因此本实施例中的灰度发布规则更加灵活可变,具有高扩展度。
另外,本实施例中,由于目标实体类可以支持预设实体类中支持设置多个存储地址,每个存储地址可设置多个路径,每个路径可配置多个服务,这样可以保证可以发布多个灰度版本的服务,从而可以更加平稳高效的在Kubernetes集群上过渡升级测试对应的产品服务。
另外,本实施例中,通过对目标实体类实例资源的规格进行检查,在查验通过的情况下,确定所述目标实体类实例创建成功,这样可以保证在进行灰度服务发布的过程中不会出现文件损坏等问题,可以保证灰度发布服务的完整性。
另外,由于预设规则的改变或者地址的改变可能会导致Nginx配置在实时发生变化,此时对Nginx配置进行算法识别,可以确定Nginx配置的内容是否发生变化,若发生变化则需要重新加载Nginx配置以保证可以实时对新的配置内容进行响应,同时若配置未发生变化,或者配置发生的变化未满足重新加载Nginx配置的要求,则将后端脚本传输至Nginx配置以进行更新,这样可以节约计算机的运行资源。
附图说明
图1是本申请一个实施例提供的Ingress对集群中服务的外部访问进行管理的示意图;
图2是本申请一个实施例提供的Ingress 控制器整体工作流程图;
图3是本申请一个实施例提供的容器环境基于ingress控制器多灰度发布方法的流程图;
图4是本申请一个实施例提供的目标实体类的结构图;
图5是本申请另一个实施例提供的容器环境基于ingress控制器多灰度发布方法的流程图;
图6是本申请一个实施例提供的用户发起访问的示意图;
图7是本申请一个实施例提供的灰度发布装置的框图;
图8是本申请一个实施例提供的电子设备的框图。
具体实施方式
下面将结合附图对本申请的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。下文中将参考附图并结合实施例来详细说明本申请。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
在申请中,在未作相反说明的情况下,使用的方位词如“上、下、顶、底”通常是针对附图所示的方向而言的,或者是针对部件本身在竖直、垂直或重力方向上而言的;同样地,为便于理解和描述,“内、外”是指相对于各部件本身的轮廓的内、外,但上述方位词并不用于限制本申请。
首先,对于本申请涉及的若干名词进行介绍。
超文本传输协议(Hypertext Transfer Protocol,HTTP)和应用程序接口(Application Programming Interface,API)是基于编程语言构建的结构,提供一些预先定义来提供应用程序在不需要访问源码的情况下使用程序的功能。
容器环境(Kubernetes环境):简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。Kubernetes是一个开源的容器编排引擎,它支持自动化部署、大规模可伸缩、应用容器化管理。在生产环境中部署一个应用程序时,通常要部署该应用的多个实例以便对应用请求进行负载均衡。在Kubernetes中,可以创建多个容器,每个容器里面运行一个应用实例,然后通过内置的负载均衡策略,实现对这一组应用实例的管理、发现、访问。
Ingress:Ingress是对集群中服务的外部访问进行管理的 API 对象,典型的访问方式是 HTTP,相当于一个负载均衡器。
Ingress控制器(英文:ingress nginx controller):使ingress工作的控制程序,通常负责通过负载均衡器来实现 Ingress,可以配置边缘路由器或其他前端来帮助处理流量。
集群(英文:Cluster):一组运行由 Kubernetes 管理的容器化应用程序的节点,在大多数常见的 Kubernetes 部署环境中,集群中的节点都不在公共网络中。在Kubernetes中有一个资源对象是Ingress,可通过Ingress对集群中服务的外部访问进行管理,典型的访问方式是 HTTP。如图1所示,Ingress可以根据请求的HTTP URI 将来自同一IP 地址的流量路由到多个服务。
Ingress 控制器整体工作流程如图2所示,在Ingress Nginx控制的项目中,通过ingress实现对Kubernetes集群中服务的外部访问,由Ingress 控制器程序实时监听ingress, secret, service, endpoints 等资源的变化,并根据ingress资源的规格描述来动态地生成和更新Nginx 配置文件。Nginx 作为一种高性能和高稳定性的负载均衡器,支持 TLS(安全传输层协议),失败重试,限流,多种负载和会话保持策略等特性。
传统的方式可以通过在Ingress项目中通过注解的方式实现对Kubernetes集群内服务的灰度发布。其中,注解能基于不同的标准进行灰度发布,主要方式有:基于服务权重、基于Cookie值以及基于标头值。例如,当基于Cookie值进行发布灰度服务时,当Cookie值设置为“总是”时,请求服务将被路由到对应的灰度服务,当cookie值设置为“从不”时,请求服务将不会路由到灰度服务,对于其它任何cookie值,请求服务将会被忽略,并且请求将按优先级与其它灰度规则进行比较。
然而,传统的灰度发布方式,无论是基于服务权重、基于Cookie值还是基于标头值,仅仅最多只能发布一个灰度版本,无法满足现有的服务需求,针对上述技术问题,本实施例提供了如下容器环境的基于ingress控制器多灰度发布方法。
图3是本申请一个实施例提供的容器环境的基于ingress控制器多灰度发布方法的流程图,参考图3,该方式至少包括以下几个步骤:
步骤301,创建目标实体类。
其中,目标实体类包括至少两个灰度版本信息和一个旧版本信息。
可选地,创建目标实体类,包括:获取初始化实体类;获取至少两个灰度版本信息和一个旧版本信息;在初始化实体类中以预设规则将至少两个灰度版本信息和一个旧版本信息配置于对应的路径中,得到目标实体类。
可选地,预设规则包括但不限于:基于正则匹配规则、基于精确匹配规则、与、或规则,本实施例不对预设规则作限定。
例如,自定义目标实体类名称为预设实体类,在预设实体类中定义存储地址为:header.demo.com,此时服务访问的路径为/header,获取一个旧版本信息和两个灰度版本信息,分别定义为echo,echo-v1,echo-v2,将三个版本信息分别配置于不同的路径下,此时以预设规则分别配置灰度版本信息,以预设规则a配置于echo-v1中为例,预设规则a为请求头包含键值对V1:true,以预设规则b配置于echo-v2中为例,预设规则b为请求头包含key为uesr-id并且能正则匹配^[0-9]+3$,且cookie中包含键值对gender:male或请求头包含键值对canary:true。
由于传统的灰度发布服务在进行灰度发布规则配置时基于服务权重、基于Cookie值以及基于标头值进行配置,这就导致了灰度规则配置不灵活的问题,本实施例中,通过预设规则进行配置,预设规则可以包括基于标头、cookie的正则匹配或者精确匹配,同时还可以通过组号的与或规则进行匹配,因此本实施例中的灰度发布规则更加灵活可变,具有高扩展度。
可选地,目标实体类可以配置n个存储地址,每个存储地址可以配置n个路径,在任意一个路径下可以配置n个灰度服务。
示意性地,如图4所示,以目标实体类为预设实体类为例,此时预设实体类支持配置多个地址,每个地址下支持配置多个路径,在任意一个路径下我们可以配置多个不同服务。
本实施例中,由于目标实体类可以支持预设实体类中支持设置多个存储地址,每个存储地址可设置多个路径,每个路径可配置多个服务,这样可以保证可以发布多个灰度版本的服务,从而可以更加平稳高效的在Kubernetes集群上过渡升级测试对应的产品服务。
步骤302,创建目标实体类实例。
步骤303,获取灰度控制器。
可选地,灰度控制器预存于控制器中。
本实施例中,灰度控制器在Ingress Nginx控制器基础上进行增强得到。
步骤304,使用灰度控制器基于目标实体类实例更新Nginx配置。
可选地,使用灰度控制器基于目标实体类实例更新Nginx配置,包括:使用灰度控制器的警告机制监控目标实体类实例,得到监控结果;基于监控结果更新Nginx配置。
可选地,监控结果包括目标实体类实例内容是否发生更新、创建、删除等,本实施例不对监控结果的内容作限定。
例如,以目标实体类实例为测试实例为例,此时指定实例中的host,路径,服务内容为警告机制的监控对象,此时得到相应的监控结果,包括指定实例中的内容是否进行创建、更新、删除等操作,同时基于监控结果同步更新Nginx配置。
可选地,使用灰度控制器的警告机制监控目标实体类实例,得到监控结果之前,还包括:对目标实体类实例的资源的规格进行查验;在查验通过的情况下,确定目标实体类实例创建成功。
例如,在集群中创建目标实体类时,灰度控制器会对目标实体类实例资源的规格进行检查,检查通过后则代表目标实体类实例创建成功,灰度控制器接收到目标实体类的创建成功事件并更新Nginx配置。
本实施例中,通过对目标实体类实例资源的规格进行检查,在查验通过的情况下,确定目标实体类实例创建成功,这样可以保证在进行灰度服务发布的过程中不会出现文件损坏等问题,可以保证灰度发布服务的完整性。
可选地,基于监控结果更新Nginx配置之后,还包括:基于预设识别算法识别Nginx配置;在Nginx配置发生的情况下重新加载Nginx配置;在Nginx配置未发生变化的情况下将后端脚本传输至Nginx配置。
可选地,预设识别算法包括:MD4算法、MD5算法、一致性哈希算法。
由于预设规则的改变或者地址的改变可能会导致Nginx配置在实时发生变化,此时对Nginx配置进行算法识别,可以确定Nginx配置的内容是否发生变化,若发生变化则需要重新加载Nginx配置以保证可以实时对新的配置内容进行响应,同时若配置未发生变化,或者配置发生的变化未满足重新加载Nginx配置的要求,则将后端脚本传输至Nginx配置以进行更新,这样可以节约计算机的运行资源。
步骤305,基于Nginx配置实现当前应用的灰度发布。
可选地,基于Nginx配置实现当前应用的灰度发布,包括:基于Nginx配置中的灰度发布规则对当前应用进行多版本灰度发布。
可选地,基于Nginx配置实现当前应用的灰度发布之后,还包括:
接收用户访问请求;基于Nginx配置将用户访问请求转发至对应的灰度版本;将响应结果返回至用户,以供用户访问灰度服务。
综上所述,本实施例提供的在容器环境下基于ingress控制器的多灰度版本发布方法,通过创建目标实体类,目标实体类包括至少两个灰度版本信息和一个旧版本信息;创建目标实体类实例;获取灰度控制器,灰度控制器在Ingress Nginx控制器基础上进行增强得到;使用灰度控制器基于目标实体类实例更新Nginx配置;基于Nginx配置实现当前应用的灰度发布;可以解决传统的灰度发布方式会导致不能同时发布多个灰度版本问题,由于传统的ingress对灰度服务只能设定一个的限制,本实施例通过创建目标实体类,该实体类可同时配置多个灰度服务,同时通过灰度控制器进行Nginx的配置更新,允许服务端代理多个灰度服务,克服了传统的ingress对灰度服务只能设定一个的限制,从而可以在容器环境下进行多版本灰度服务发布,提高了服务测试发布效率。
另外,由于传统的灰度发布服务在进行灰度发布规则配置时基于服务权重、基于Cookie值以及基于标头值进行配置,这就导致了灰度规则配置不灵活的问题,本实施例中,通过预设规则进行配置,预设规则可以包括基于标头值、Cookie的正则匹配或者精确匹配,同时还可以通过组号的与或规则进行匹配,因此本实施例中的灰度发布规则更加灵活可变,具有高扩展度。
另外,本实施例中,由于目标实体类可以支持预设实体类中支持设置多个存储地址,每个存储地址可设置多个路径,每个路径可配置多个服务,这样可以保证可以发布多个灰度版本的服务,从而可以更加平稳高效的在Kubernetes集群上过渡升级测试对应的产品服务。
另外,本实施例中,通过对目标实体类实例资源的规格进行检查,在查验通过的情况下,确定目标实体类实例创建成功,这样可以保证在进行灰度服务发布的过程中不会出现文件损坏等问题,可以保证灰度发布服务的完整性。
另外,由于预设规则的改变或者地址的改变可能会导致Nginx配置在实时发生变化,此时对Nginx配置进行算法识别,可以确定Nginx配置的内容是否发生变化,若发生变化则需要重新加载Nginx配置以保证可以实时对新的配置内容进行响应,同时若配置未发生变化,或者配置发生的变化未满足重新加载Nginx配置的要求,则将后端脚本传输至Nginx配置以进行更新,这样可以节约计算机的运行资源。
为了更清楚地理解本申请提供的容器环境基于ingress控制器多灰度发布方法,本实施例对该方法举一个实例进行说明,该实施例以目标实体类为预设实体类、灰度控制器为预设控制器为例进行说明,参考图5,该方法至少包括以下步骤:
步骤一,在Kubernetes集群中部署灰度控制器即预设控制器,预设实体类以及创建预设实体类实例,将多个灰度版本信息配置于预设实体类中。
步骤二,预设控制器监听预设实体类实例的资源,生成并更新Nginx配置,完成多版本灰度发布。
步骤三,用户在发起访问请求,参考图6,例如在预设实体类中设置以权重的方式的访问灰度服务,在用户的请求会根据权重发送到对应的版本的服务上。
步骤四,用户收到对应服务返回的响应。
图7是本申请一个实施例提供的灰度发布装置的框图,该装置至少包括以下几个模块:第一创建模块710、第二创建模块720、灰度获取模块730、配置更新模块740和灰度发布模块750。
第一创建模块710,用于创建目标实体类,目标实体类包括至少两个灰度版本信息和一个旧版本信息。
第二创建模块720,用于创建目标实体类实例。
灰度获取模块730,用于获取灰度控制器,灰度控制器在Ingress Nginx控制器基础上进行增强得到。
配置更新模块740,用于使用灰度控制器基于目标实体类实例更新Nginx配置。
灰度发布模块750,用于基于Nginx配置实现当前应用的灰度发布。
相关细节参考上述实施例。
需要说明的是:上述实施例中提供的灰度发布装置在进行灰度服务发布时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将灰度发布装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的灰度发布装置与在容器环境下基于ingress控制器的多灰度版本发布方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本实施例提供一种电子设备,如图8所示,该电子设备至少包括处理器801和存储器802。
处理器801可以包括一个或多个处理核心,比如:4核心处理器、8核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本申请中方法实施例提供的容器环境基于ingress控制器多灰度发布方法。
在一些实施例中,电子设备还可选包括有:外围设备接口和至少一个外围设备。处理器801、存储器802和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。
当然,电子设备还可以包括更少或更多的组件,本实施例对此不作限定。
可选地,本申请还提供有一种计算机可读存储介质,计算机可读存储介质中存储有程序,程序由处理器加载并执行以实现上述方法实施例的在容器环境下灰度发布方法以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种容器环境基于ingress控制器多灰度发布方法,其特征在于,所述方法包括:
创建目标实体类,所述目标实体类包括至少两个灰度版本信息和一个旧版本信息;
创建目标实体类实例;
获取灰度控制器,所述灰度控制器在Ingress Nginx控制器基础上进行增强得到;
使用所述灰度控制器基于所述目标实体类实例更新Nginx配置;
基于所述Nginx配置实现当前应用的灰度发布。
2.根据权利要求1所述的一种容器环境基于ingress控制器多灰度发布方法,其特征在于,所述创建目标实体类,包括:
获取初始化实体类;
获取至少两个灰度版本信息和一个旧版本信息;
在所述初始化实体类中以预设规则将所述至少两个灰度版本信息和一个旧版本信息配置于对应的路径中,得到所述目标实体类。
3.根据权利要求1所述的一种容器环境基于ingress控制器多灰度发布方法,其特征在于,所述使用所述灰度控制器基于所述目标实体类实例更新Nginx配置,包括:
使用所述灰度控制器的警告机制监控所述目标实体类实例,得到监控结果;
基于所述监控结果更新所述Nginx配置。
4.根据权利要求3所述的一种容器环境基于ingress控制器多灰度发布方法,其特征在于,所述使用所述灰度控制器的警告机制监控所述目标实体类实例,得到监控结果之前,还包括:
对所述目标实体类实例的资源的规格进行查验;
在查验通过的情况下,确定所述目标实体类实例创建成功。
5.根据权利要求3所述的一种容器环境基于ingress控制器多灰度发布方法,其特征在于,所述基于监控结果更新所述Nginx配置之后,还包括:
基于预设识别算法识别所述Nginx配置;
在所述Nginx配置发生变化的情况下重新加载Nginx配置;
在所述Nginx配置未发生变化的情况下将后端脚本传输至Nginx配置。
6.根据权利要求5所述的一种容器环境基于ingress控制器多灰度发布方法,其特征在于,所述预设识别算法包括:MD4算法、MD5算法、一致性哈希算法。
7.根据权利要求1所述的一种容器环境基于ingress控制器多灰度发布方法,其特征在于,所述基于所述Nginx配置实现当前应用的灰度发布之后,还包括:
接收用户访问请求;
基于所述Nginx配置将所述用户访问请求转发至对应的灰度版本;
将响应结果返回至用户,以供用户访问灰度服务。
8.根据权利要求1所述的一种容器环境基于ingress控制器多灰度发布方法,其特征在于,所述目标实体类包括n个存储地址,所述至少一个存储地址包括m个路径,其中,n和m为正整数。
9.一种电子设备,其特征在于,所述设备包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现如权利要求1至8任一所述的容器环境基于ingress控制器多灰度发布方法、设备及存储介质。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有程序,所述程序被处理器执行时用于实现如权利要求1至8任一所述的容器环境基于ingress控制器多灰度发布方法、设备及存储介质。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211094997.2A CN115168162B (zh) | 2022-09-08 | 2022-09-08 | 容器环境基于ingress控制器多灰度发布方法、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211094997.2A CN115168162B (zh) | 2022-09-08 | 2022-09-08 | 容器环境基于ingress控制器多灰度发布方法、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115168162A true CN115168162A (zh) | 2022-10-11 |
CN115168162B CN115168162B (zh) | 2022-12-06 |
Family
ID=83482454
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211094997.2A Active CN115168162B (zh) | 2022-09-08 | 2022-09-08 | 容器环境基于ingress控制器多灰度发布方法、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115168162B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116633812A (zh) * | 2023-05-15 | 2023-08-22 | 之江实验室 | 一种基于nginx智能容错路由的多版本同步测试方法及系统 |
CN117215596A (zh) * | 2023-08-02 | 2023-12-12 | 广州优谷信息技术有限公司 | 基于Helm的灰度发布方法、装置、电子设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110162382A (zh) * | 2019-04-09 | 2019-08-23 | 平安科技(深圳)有限公司 | 基于容器的灰度发布方法、装置、计算机设备及存储介质 |
CN110532008A (zh) * | 2019-08-29 | 2019-12-03 | 深圳前海环融联易信息科技服务有限公司 | 一种产品灰度发布方法、装置、计算机设备及存储介质 |
US20200112487A1 (en) * | 2018-10-05 | 2020-04-09 | Cisco Technology, Inc. | Canary release validation mechanisms for a containerized application or service mesh |
US20210011834A1 (en) * | 2018-03-26 | 2021-01-14 | Huawei Technologies Co., Ltd. | Service Upgrade Management Method, Apparatus, And Storage Medium |
-
2022
- 2022-09-08 CN CN202211094997.2A patent/CN115168162B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20210011834A1 (en) * | 2018-03-26 | 2021-01-14 | Huawei Technologies Co., Ltd. | Service Upgrade Management Method, Apparatus, And Storage Medium |
US20200112487A1 (en) * | 2018-10-05 | 2020-04-09 | Cisco Technology, Inc. | Canary release validation mechanisms for a containerized application or service mesh |
CN110162382A (zh) * | 2019-04-09 | 2019-08-23 | 平安科技(深圳)有限公司 | 基于容器的灰度发布方法、装置、计算机设备及存储介质 |
CN110532008A (zh) * | 2019-08-29 | 2019-12-03 | 深圳前海环融联易信息科技服务有限公司 | 一种产品灰度发布方法、装置、计算机设备及存储介质 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116633812A (zh) * | 2023-05-15 | 2023-08-22 | 之江实验室 | 一种基于nginx智能容错路由的多版本同步测试方法及系统 |
CN116633812B (zh) * | 2023-05-15 | 2023-12-22 | 之江实验室 | 一种基于nginx智能容错路由的多版本同步测试方法及系统 |
CN117215596A (zh) * | 2023-08-02 | 2023-12-12 | 广州优谷信息技术有限公司 | 基于Helm的灰度发布方法、装置、电子设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115168162B (zh) | 2022-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115168162B (zh) | 容器环境基于ingress控制器多灰度发布方法、设备及存储介质 | |
US11172022B2 (en) | Migrating cloud resources | |
US9350633B2 (en) | Dynamic optimization of command issuance in a computing cluster | |
US20160352836A1 (en) | Migrating cloud resources | |
WO2018206406A1 (en) | Adaptation of machine learning algorithms | |
EP3622447A1 (en) | Interoperation of machine learning algorithms | |
WO2018206374A1 (en) | Load balancing of machine learning algorithms | |
EP3622449A1 (en) | Autonomous logic modules | |
US10956667B2 (en) | Operational transformations proxy for thin clients | |
US11354152B2 (en) | Self-evolving microservices | |
US8856365B2 (en) | Computer-implemented method, computer system and computer readable medium | |
CN113961312A (zh) | 目标服务的部署方法、装置和电子设备 | |
US10721120B2 (en) | Infrastructure management device | |
US11914464B2 (en) | Method and system for predicting user involvement requirements for upgrade failures | |
CN112492060B (zh) | 一种服务资源处理方法及系统、代理设备、请求设备 | |
US20210096938A1 (en) | Api hub architecture | |
CN108958933A (zh) | 任务执行器的配置参数更新方法、装置及设备 | |
CN114070889B (zh) | 配置方法、流量转发方法、设备、存储介质及程序产品 | |
US11630812B2 (en) | Schema based type-coercion for structured documents | |
CN115580497A (zh) | 容器环境下数据传输控制方法、设备及存储介质 | |
US9288178B2 (en) | Inventory updating of an internet protocol (IP) alias within a highly available computing cluster | |
US11941543B2 (en) | Inferencing endpoint discovery in computing systems | |
CN109684386B (zh) | 报表协同编排方法及装置 | |
CN115686648A (zh) | 一种配置信息的管理方法、装置、设备及介质 | |
CN116149696A (zh) | 一种系统接口迁移方法、装置、计算机设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |