CN114064062A - 基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置 - Google Patents

基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置 Download PDF

Info

Publication number
CN114064062A
CN114064062A CN202210048079.XA CN202210048079A CN114064062A CN 114064062 A CN114064062 A CN 114064062A CN 202210048079 A CN202210048079 A CN 202210048079A CN 114064062 A CN114064062 A CN 114064062A
Authority
CN
China
Prior art keywords
gray
service
namespace
user
user request
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
Application number
CN202210048079.XA
Other languages
English (en)
Other versions
CN114064062B (zh
Inventor
任玉鹏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Kuaicheng Technology Co ltd
Original Assignee
Beijing Kuaicheng Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Kuaicheng Technology Co ltd filed Critical Beijing Kuaicheng Technology Co ltd
Priority to CN202210048079.XA priority Critical patent/CN114064062B/zh
Publication of CN114064062A publication Critical patent/CN114064062A/zh
Application granted granted Critical
Publication of CN114064062B publication Critical patent/CN114064062B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置,还包括灰度发布配置参数信息;实施过程中将灰度发布配置参数信息下发至微服务网关,用户请求经过网关时,由网关结合灰度发布配置参数信息对用户请求进行初始灰度标记,灰度发布过程中的流量切换和执行的控制权置于微服务网关中。本发明不使用服务网格技术,线上运行服务与灰度测试服务使用Namespace隔离,同时打通两个Namespace中的服务通信,避免传统蓝绿发布方案存在的资源利用率只有50%的局限,实现硬件资源利用率最大化,并可以通过调整灰度发布参数实现切换不同版本服务承载的流量,并在灰度测试失败时,快速回滚。

Description

基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和 装置
技术领域
本发明涉及计算机技术领域,尤其涉及基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置。
背景技术
近几年,随着互联网用户数量的迅速增长,对互联网产品的要求越来越高,一方面要求为用户提供稳定的服务,一方面要求及时响应用户需求、产品快速迭代。所以,基于系统稳定性和快速业务迭代的综合考虑,现在一般采用灰度发布的方式,发布新的版本。
传统的基于集中式服务注册发现机制例如Nacos的微服务集群迁移至Kubernetes平台后,由于使用Kubernetes服务发现机制,导致绝大多数传统的实现灰度发布组件迁移至K8S环境中失效;在Kubernetes管理平台下,利用Service Mesh等云原生技术实现服务灰度发布是目前的通用做法。但是Service Mesh等云原生技术对于大多数中小型企业来说,学习曲线较陡,且需要一定的时间成本,维护难度也较大。
发明内容
本发明是针对上述问题,提供基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置。
本发明解决上述技术问题的技术方案如下:
一种基于Kubernetes平台和负载均衡组件的缺省灰度发布方法,包括:
配置灰度发布配置参数信息,所述灰度发布配置信息包括灰度测试服务列表、参与灰度发布的用户类型和灰度标识;
将所述灰度发布配置参数信息下发至业务网关,通过所述业务网关接收用户请求,结合灰度发布配置对用户请求做灰度标记;
基于标记后的所述用户请求,确定所述用户请求在第一命名空间和第二命名空间的灰度发布策略,并根据所述灰度发布策略校验下游服务是否处于灰度测试服务列表中实现动态路由能力,控制灰度发布过程中的流量切换和执行过程。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步地,所述基于标记后的所述用户请求,确定所述用户请求在第一命名空间和第二命名空间的灰度发布策略,具体包括:
创建所述第一命名空间和所述第二命名空间,所述第一命名空间是基于K8S建立的稳定服务命名空间,所述第二命名空间是基于K8S建立的灰度服务命名空间;
当所述用户请求存在灰度标记时,将所述用户的流量导入所述第二命名空间中的对应服务中;
当所述用户请求不存在灰度标记时,将所述用户的流量导入所述第一命名空间中的对应服务中。
进一步地,所述根据所述灰度发布策略校验下游服务是否处于灰度测试服务列表中实现动态路由能力,控制灰度发布过程中的流量切换和执行过程,具体包括:
根据所述用户请求和所述灰度发布配置参数信息,判断所述用户是否所述参与灰度发布的用户类型;
若是,则校验下游服务是否处于灰度测试服务列表中,校验通过则将所述用户请求路由到所述第二命名空间,即灰度测试服务命名空间,否则路由回第一命名空间;
若否,无需校验下游服务是否处于灰度测试服务列表中,直接将用户请求路由至所述第一命名空间。
进一步地,所述方法还包括:
配置所述业务网关的部署方式、部署地址、集群、命名空间、镜像、访问方式、启动参数、部署目录和部署脚本;
配置所述第一命名空间和所述第二命名空间的路由策略,所述路由策略包括基于权重、请求头、请求路径和cookie配置流量分发策略。
本方法发明的有益效果是:提出了一种基于Kubernetes平台和负载均衡组件的缺省灰度发布方法,包括配置灰度发布配置参数信息,所述灰度发布配置信息包括灰度测试服务列表、参与灰度发布的用户类型和灰度标识等;将所述灰度发布配置参数信息下发至业务网关,通过所述业务网关接收用户请求,将所述用户请求根据请求所述灰度发布配置参数信息请求进行灰度标记即流量染色;基于标记后的所述用户请求,确定所述用户请求在第一命名空间和第二命名空间的灰度发布策略,并根据所述灰度发布策略,控制灰度发布过程中的流量切换和执行过程。本发明不使用服务网格技术,同时打通两个Namespace中的服务通信,实现硬件资源利用率最大化,并可以方便地切换不同版本的流量,实现业务的可控灰度发布,并在灰度测试失败时,快速回滚。
本发明解决上述技术问题的另一技术方案如下:
一种基于Kubernetes平台和负载均衡组件的缺省灰度发布装置,包括:
配置模块,用于配置灰度发布配置参数信息,所述灰度发布配置信息包括灰度测试服务列表、参与灰度发布的用户类型和灰度标识;
标记模块,用于将所述灰度发布配置参数信息下发至业务网关,通过所述业务网关接收用户请求,结合灰度发布配置对用户请求做灰度标记;
发布模块,用于基于标记后的所述用户请求,确定所述用户请求在第一命名空间和第二命名空间的灰度发布策略,并根据所述灰度发布策略,控制灰度发布过程中的流量切换和执行过程。
进一步地,所述发布模块,具体用于创建所述第一命名空间和所述第二命名空间,所述第一命名空间是基于K8S建立的稳定服务命名空间,所述第二命名空间是基于K8S建立的灰度服务命名空间;
当所述用户请求存在灰度标记时,将所述用户的流量导入所述第二命名空间中的对应服务中;
当所述用户请求不存在灰度标记时,将所述用户的流量导入所述第一命名空间中的对应服务中。
进一步地,所述标记模块,具体用于根据所述用户请求和所述灰度发布配置参数信息,判断所述用户是否所述参与灰度发布的用户类型;
若是,则校验下游服务是否处于灰度测试服务列表中,校验通过则将所述用户请求路由到第二命名空间,即灰度测试服务命名空间,否则路由回第一命名空间;
若否,无需校验下游服务是否处于灰度测试服务列表中,直接将用户请求路由至第一命名空间。
进一步地,还包括预配模块,用于配置所述业务网关的部署方式、部署地址、集群、命名空间、镜像、访问方式、启动参数、部署目录和部署脚本;
配置所述第一命名空间和所述第二命名空间的路由策略,所述路由策略包括基于权重、请求头、请求路径和cookie配置流量分发策略。
此外,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述技术方案中任一项所述的基于Kubernetes平台和负载均衡组件的缺省灰度发布方法的步骤。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述技术方案中任一项所述的基于Kubernetes平台和负载均衡组件的缺省灰度发布方法的步骤。
本发明附加的方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明实践了解到。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所示的一种基于Kubernetes平台和负载均衡组件的缺省灰度发布方法的流程示意图;
图2为本发明另一实施例所示的一种基于Kubernetes平台和负载均衡组件的缺省灰度发布装置的模块示意图;
图3为本发明另一实施例所示的一种基于Kubernetes平台和负载均衡组件的缺省灰度发布方法的流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
如图1所示,本发明实施例所述的一种基于Kubernetes平台和负载均衡组件的缺省灰度发布方法,包括以下步骤:
110、配置灰度发布配置参数信息,所述灰度发布配置信息包括灰度测试服务列表、参与灰度发布的用户类型和灰度标识。
120、将所述灰度发布配置参数信息下发至业务网关,通过所述业务网关接收用户请求,结合灰度发布配置对用户请求做灰度标记。
130、基于标记后的所述用户请求,确定所述用户请求在第一命名空间和第二命名空间的灰度发布策略,并根据所述灰度发布策略校验下游服务是否处于灰度测试服务列表中实现动态路由能力,控制灰度发布过程中的流量切换和执行过程。
应理解,网关下游位于用户请求链路上的服务结点,同时需要具备识别灰度标记以及动态路由的能力。其中动态路由能力包括:位于当前服务结点的下游服务不参与灰度测试的场景下即当前服务结点的下游服务结点不在灰度测试服务列表中,当前服务结点将用户请求动态路由到线上运行服务第一命名空间,否则路由至同一命名空间即第二命名空间中的对应服务,即实现服务的缺省发布,进而实现全链路的灰度发布。
关于全链路灰度发布中的缺省发布:众所周知,随着互联网用户量级的增大,互联网产品后台经历了从单体服务到分布式再到微服务以及Serverless等阶段的发展。一个用户请求的处理需要多个后台服务结点的串/并行处理。在全链路的灰度发布的实现中,存在位于一条用户请求链路的多个服务结点,部分结点升级发布,另一部分不需要升级发布的场景。本专利提到的缺省发布就是为了适应这种场景。基于服务间负载均衡组件组件以及灰度发布配置中的灰度测试服务列表让网关下游的服务结点具备动态路由能力如附图3。例如:对于满足灰度测试条件的请求优先进入灰度服务Namespace中如网关→服务1,若目标服务不参与本次灰度测试如服务2,则请求导回至稳定版服务Namespace,对于服务3、服务4的调用逻辑同理。
进一步地,步骤130中基于标记后的所述用户请求,确定所述用户请求在第一命名空间和第二命名空间的灰度发布策略,具体包括:
创建所述第一命名空间和所述第二命名空间,所述第一命名空间是基于K8S建立的稳定服务命名空间,所述第二命名空间是基于K8S建立的灰度服务命名空间;
当所述用户请求存在灰度标记时,将所述用户的流量导入所述第二命名空间中的对应服务中;
当所述用户请求不存在灰度标记时,将所述用户的流量导入所述第一命名空间中的对应服务中。
进一步地,步骤120中根据所述灰度发布策略校验下游服务是否处于灰度测试服务列表中实现动态路由能力,控制灰度发布过程中的流量切换和执行过程,具体包括:
根据所述用户请求和所述灰度发布配置参数信息,判断所述用户是否所述参与灰度发布的用户类型;
若是,则校验下游服务是否处于灰度测试服务列表中,校验通过则将所述用户请求路由到所述第二命名空间,即灰度测试服务命名空间,否则路由回第一命名空间;
若否,无需校验下游服务是否处于灰度测试服务列表中,直接将用户请求路由至所述第一命名空间。
进一步地,还包括:
配置所述业务网关的部署方式、部署地址、集群、命名空间、镜像、访问方式、启动参数、部署目录和部署脚本。
配置所述第一命名空间和所述第二命名空间的路由策略,所述路由策略包括基于权重、请求头、请求路径和cookie配置流量分发策略。
应理解,灰度发布(又名金丝雀发布)是指在黑与白之间,能够平滑过渡的一种发布方式。在其上可以进行A/B testing,即让一部分用户继续用产品特性A,一部分用户开始用产品特性B,如果用户对B没有什么反对意见,那么逐步扩大范围,把所有用户都迁移到B上面来。灰度发布可以保证整体系统的稳定,在初始灰度的时候就可以发现、调整问题,以保证其影响度。
kubernetes,简称K8s,是用8代替名字中间的8个字符“ubernete”而成的缩写。是一个开源的,用于管理云平台中多个主机上的容器化的应用。
传统的应用部署方式是通过插件或脚本来安装应用。这样做的缺点是应用的运行、配置、管理、所有生存周期将与当前操作系统绑定,这样做并不利于应用的升级更新/回滚等操作,kubernetes是通过部署容器方式实现,每个容器之间互相隔离,每个容器有自己的文件系统 ,容器之间进程不会相互影响,能区分计算资源。
如图2所示,本发明所要解决的技术问题,是为了中小型企业在迁移至容器云环境即kubernetes集群中,不使用服务网格技术,提出的一种基于Kubernetes双NameSpace服务缺省发布实现全链路灰度发布的方法。同时,打通两个NameSpace中的服务通信,实现硬件资源利用率最大化,并可以方便地切换不同版本的流量,实现业务的可控灰度发布,并在灰度测试失败时,快速回滚。关于提到的双Namespace以及灰度缺省发布解释如下:双Namespace,其中,Namespace是Kubernets中的概念,可以对kubernetes中的pod(业务容器)进行归类管理。本文使用两个Namespace实现灰度发布,一个Namespace用于部署稳定版服务;一个Namespace用于部署灰度服务。灰度缺省发布:在微服务集群中,一个用户请求可能需要多个服务串行处理,最终再逐级返回用户。例如:一个用户请求,可能需要服务1、服务2、服务3、服务4串行处理,若其中服务1、服务3版本升级,服务2和服务4不参与升级。那么传统的基于双Namespace蓝绿发布方案,需要服务1—4一起部署。本文提出的方案,可以在不额外部署服务2、服务4的场景下,实现全链路灰度发布的解决方法。
应理解,首先设置背景,基于K8S的双Namespace环境,一个Namespace部署stable版本服务,另一个部署gray版本服务,传统的微服务集群,如使用Spring Cloud框架搭建的微服务集群。实现过程:关于可能涉及的灰度发布相关配置,灰度测试阶段如禁用灰度服务、内部验证、导流部分线上流量、服务升级/回滚;参与灰度测试服务列表;灰度服务承担线上流量比重;用户类型如内部验证用户、线上测试用户及其他;后台服务识别不同终端的灰度标记。对于业务网关的二次开发:实时获取外部灰度测试配置,并在本地应用;识别灰度请求,并做初始标记;获取参与灰度测试的服务列表,最终结合请求灰度标记,决定转发至stable/gray服务。
这部分热更新的能力,不论是K8S环境中的config或是微服务中常用的集中式远程配置中心Nacos均支持热更新功能,可根据企业自身环境落地应用。
根据业务需要,根据用户请求特征如用户访问来源、用户类型或用户区域等,拦截用户请求并做是/否灰度的初始标记;待转发的服务存于在实时更新到本地的参与灰度测试服务列表,且当前用户请求拥有灰度标记两个条件同时满足,进入灰度版本服务。对于网关下游服务的二次开发,需要具备的能力,识别网关中加入的灰度标记,实时获取外部灰度测试配置,并在本地应用主要是校验下游服务是否参与灰度测试:参与,则转发至灰度服务;不参与,则导回至稳定版服务。实现上述能力的具体方法:从网关服务在用户请求标记的位置获取灰度标识如请求头、请求路径、cookie等,打通容器云环境K8S集群双Namespace资源,实现硬件资源利用最大化。
灰度Namespace中的服务,可以参与系统日常运行,提升硬件资源利用率,系统容量;在灰度测试中,不必要部署支撑系统运行的全部服务,只需部分本次升级服务即可。
服务在K8S集群中通信,均采用全域名方式;需要灰度测试服务列表,即灰度Namespace中全部服务列表的配合,作为灰度缺省发布时,灰度Namespace中不存在目标服务的情况下,将流量导回至稳定版服务;同理在稳定版服务的灰度流量,也可以导回至灰度Namespace。具体实现流量在两个Namespace中穿梭,可以通过改造服务间负载均衡组件组件如Ribbon的IRule二次开发实现。
具体实施方式:步骤一:灰度服务上线部署如镜像打包-> Deployment更新;步骤二:修改灰度测试相关配置;步骤三:逐级扩大测试范围如禁用灰度服务、内部验证、线上公测;步骤四:灰度测试通过,全部服务升级;步骤五:恢复灰度测试相关配置,线上双Namespace共同支撑系统运行。
基于上述实施例所提出的一种基于Kubernetes平台和负载均衡组件的缺省灰度发布方法,包括配置灰度发布配置参数信息,所述灰度发布配置信息包括灰度测试服务列表、参与灰度发布的用户类型和灰度标识;将所述灰度发布配置参数信息下发至业务网关,通过所述业务网关接收用户请求,将所述用户请求分解后得到用户的子请求,并利用所述灰度发布配置参数信息对所述子请求进行灰度标记;基于标记后的所述用户的子请求,确定所述用户请求在第一命名空间和第二命名空间的灰度发布策略,并根据所述灰度发布策略,控制灰度发布过程中的流量切换和执行过程。本发明不使用服务网格技术,同时打通两个NameSpace中的服务通信,实现硬件资源利用率最大化,并可以方便地切换不同版本的流量,实现业务的可控灰度发布,并在灰度测试失败时,快速回滚。
如图3所示,一种基于Kubernetes平台和负载均衡组件的缺省灰度发布装置,包括:
一种基于Kubernetes平台和负载均衡组件的缺省灰度发布装置,包括:
配置模块,用于配置灰度发布配置参数信息,所述灰度发布配置信息包括灰度测试服务列表、参与灰度发布的用户类型和灰度标识;
标记模块,用于将所述灰度发布配置参数信息下发至业务网关,通过所述业务网关接收用户请求,结合灰度发布配置对用户请求做灰度标记;
发布模块,用于基于标记后的所述用户请求,确定所述用户请求在第一命名空间和第二命名空间的灰度发布策略,并根据所述灰度发布策略,控制灰度发布过程中的流量切换和执行过程。
进一步地,所述发布模块,具体用于创建所述第一命名空间和所述第二命名空间,所述第一命名空间是基于K8S建立的稳定服务命名空间,所述第二命名空间是基于K8S建立的灰度服务命名空间;
当所述用户请求存在灰度标记时,将所述用户的流量导入所述第二命名空间中的对应服务中;
当所述用户请求不存在灰度标记时,将所述用户的流量导入所述第一命名空间中的对应服务中。
进一步地,所述标记模块,具体用于根据所述用户请求和所述灰度发布配置参数信息,判断所述用户是否所述参与灰度发布的用户类型;
若是,则校验下游服务是否处于灰度测试服务列表中,校验通过则将所述用户请求路由到第二命名空间,即灰度测试服务命名空间,否则路由回第一命名空间;
若否,无需校验下游服务是否处于灰度测试服务列表中,直接将用户请求路由至第一命名空间。
进一步地,还包括预配模块,用于配置所述业务网关的部署方式、部署地址、集群、命名空间、镜像、访问方式、启动参数、部署目录和部署脚本;
配置所述第一命名空间和所述第二命名空间的路由策略,所述路由策略包括基于权重、请求头、请求路径和cookie配置流量分发策略。
此外,本发明提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述技术方案中任一项所述的基于Kubernetes平台和负载均衡组件的缺省灰度发布方法的步骤。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述技术方案中任一项所述的基于Kubernetes平台和负载均衡组件的缺省灰度发布方法的步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。
基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
以上,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

Claims (10)

1.一种基于Kubernetes平台和负载均衡组件的缺省灰度发布方法,其特征在于,包括:
配置灰度发布配置参数信息,所述灰度发布配置信息包括灰度测试服务列表、参与灰度发布的用户类型和灰度标识;
将所述灰度发布配置参数信息下发至业务网关,通过所述业务网关接收用户请求,结合灰度发布配置对用户请求做灰度标记;
基于标记后的所述用户请求,确定所述用户请求在第一命名空间和第二命名空间的灰度发布策略,并根据所述灰度发布策略校验下游服务是否处于灰度测试服务列表中实现动态路由能力,控制灰度发布过程中的流量切换和执行过程。
2.根据权利要求1所述的基于Kubernetes平台和负载均衡组件的缺省灰度发布方法,其特征在于,所述基于标记后的所述用户请求,确定所述用户请求在第一命名空间和第二命名空间的灰度发布策略,具体包括:
创建所述第一命名空间和所述第二命名空间,所述第一命名空间是基于K8S建立的稳定服务命名空间,所述第二命名空间是基于K8S建立的灰度服务命名空间;
当所述用户请求存在灰度标记时,将所述用户的流量导入所述第二命名空间中的对应服务中;
当所述用户请求不存在灰度标记时,将所述用户的流量导入所述第一命名空间中的对应服务中。
3.根据权利要求2所述的基于Kubernetes平台和负载均衡组件的缺省灰度发布方法,其特征在于,所述根据所述灰度发布策略校验下游服务是否处于灰度测试服务列表中实现动态路由能力,控制灰度发布过程中的流量切换和执行过程,具体包括:
根据所述用户请求和所述灰度发布配置参数信息,判断所述用户是否所述参与灰度发布的用户类型;
若是,则校验下游服务是否处于灰度测试服务列表中,校验通过则将所述用户请求路由到所述第二命名空间,即灰度测试服务命名空间,否则路由回第一命名空间;
若否,无需校验下游服务是否处于灰度测试服务列表中,直接将用户请求路由至所述第一命名空间。
4.根据权利要求1所述的基于Kubernetes平台和负载均衡组件的缺省灰度发布方法,其特征在于,所述方法还包括:
配置所述业务网关的部署方式、部署地址、集群、命名空间、镜像、访问方式、启动参数、部署目录和部署脚本;
配置所述第一命名空间和所述第二命名空间的路由策略,所述路由策略包括基于权重、请求头、请求路径和cookie配置流量分发策略。
5.一种基于Kubernetes平台和负载均衡组件的缺省灰度发布装置,其特征在于,包括:
配置模块,用于配置灰度发布配置参数信息,所述灰度发布配置信息包括灰度测试服务列表、参与灰度发布的用户类型和灰度标识;
标记模块,用于将所述灰度发布配置参数信息下发至业务网关,通过所述业务网关接收用户请求,结合灰度发布配置对用户请求做灰度标记;
发布模块,用于基于标记后的所述用户请求,确定所述用户请求在第一命名空间和第二命名空间的灰度发布策略,并根据所述灰度发布策略,控制灰度发布过程中的流量切换和执行过程。
6.根据权利要求5所述的基于Kubernetes平台和负载均衡组件的缺省灰度发布装置,其特征在于,
所述发布模块,具体用于创建所述第一命名空间和所述第二命名空间,所述第一命名空间是基于K8S建立的稳定服务命名空间,所述第二命名空间是基于K8S建立的灰度服务命名空间;
当所述用户请求存在灰度标记时,将所述用户的流量导入所述第二命名空间中的对应服务中;
当所述用户请求不存在灰度标记时,将所述用户的流量导入所述第一命名空间中的对应服务中。
7.根据权利要求6所述的基于Kubernetes平台和负载均衡组件的缺省灰度发布装置,其特征在于,
所述标记模块,具体用于根据所述用户请求和所述灰度发布配置参数信息,判断所述用户是否所述参与灰度发布的用户类型;
若是,则校验下游服务是否处于灰度测试服务列表中,校验通过则将所述用户请求路由到所述第二命名空间,即灰度测试服务命名空间,否则路由回所述第一命名空间;
若否,无需校验下游服务是否处于灰度测试服务列表中,直接将用户请求路由至所述第一命名空间。
8.根据权利要求7所述的基于Kubernetes平台和负载均衡组件的缺省灰度发布装置,其特征在于,
还包括预配模块,用于配置所述业务网关的部署方式、部署地址、集群、命名空间、镜像、访问方式、启动参数、部署目录和部署脚本;
配置所述第一命名空间和所述第二命名空间的路由策略,所述路由策略包括基于权重、请求头、请求路径和cookie配置流量分发策略。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-4中任一项所述的基于Kubernetes平台和负载均衡组件的缺省灰度发布方法的步骤。
10.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至4中任一项所述的基于Kubernetes平台和负载均衡组件的缺省灰度发布方法的步骤。
CN202210048079.XA 2022-01-17 2022-01-17 基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置 Active CN114064062B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210048079.XA CN114064062B (zh) 2022-01-17 2022-01-17 基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210048079.XA CN114064062B (zh) 2022-01-17 2022-01-17 基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置

Publications (2)

Publication Number Publication Date
CN114064062A true CN114064062A (zh) 2022-02-18
CN114064062B CN114064062B (zh) 2022-05-13

Family

ID=80231135

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210048079.XA Active CN114064062B (zh) 2022-01-17 2022-01-17 基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置

Country Status (1)

Country Link
CN (1) CN114064062B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114466003A (zh) * 2022-03-21 2022-05-10 北京有竹居网络技术有限公司 一种通信方法及其相关设备
CN114979104A (zh) * 2022-05-27 2022-08-30 苏州浪潮智能科技有限公司 一种实现无服务器的系统、方法、计算机设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140157371A1 (en) * 2012-12-05 2014-06-05 Chegg, Inc. Authenticated Access to Accredited Testing Services
CN111176713A (zh) * 2019-12-04 2020-05-19 江苏艾佳家居用品有限公司 一种基于Kubernetes平台和Istio网格技术的灰度发布编排方法
CN112035228A (zh) * 2020-08-28 2020-12-04 光大科技有限公司 一种资源调度方法及装置
CN113050978A (zh) * 2019-12-26 2021-06-29 中国移动通信集团北京有限公司 应用的灰度发布控制方法、装置、设备及计算机存储介质
CN113382051A (zh) * 2021-06-01 2021-09-10 中国民航信息网络股份有限公司 一种全链路的灰度发布方法及灰度发布系统
CN113824790A (zh) * 2021-09-23 2021-12-21 大连华信计算机技术股份有限公司 一种支持企业级应用的云原生PaaS管理平台

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140157371A1 (en) * 2012-12-05 2014-06-05 Chegg, Inc. Authenticated Access to Accredited Testing Services
CN111176713A (zh) * 2019-12-04 2020-05-19 江苏艾佳家居用品有限公司 一种基于Kubernetes平台和Istio网格技术的灰度发布编排方法
CN113050978A (zh) * 2019-12-26 2021-06-29 中国移动通信集团北京有限公司 应用的灰度发布控制方法、装置、设备及计算机存储介质
CN112035228A (zh) * 2020-08-28 2020-12-04 光大科技有限公司 一种资源调度方法及装置
CN113382051A (zh) * 2021-06-01 2021-09-10 中国民航信息网络股份有限公司 一种全链路的灰度发布方法及灰度发布系统
CN113824790A (zh) * 2021-09-23 2021-12-21 大连华信计算机技术股份有限公司 一种支持企业级应用的云原生PaaS管理平台

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114466003A (zh) * 2022-03-21 2022-05-10 北京有竹居网络技术有限公司 一种通信方法及其相关设备
CN114466003B (zh) * 2022-03-21 2023-12-05 北京有竹居网络技术有限公司 一种通信方法及其相关设备
CN114979104A (zh) * 2022-05-27 2022-08-30 苏州浪潮智能科技有限公司 一种实现无服务器的系统、方法、计算机设备及存储介质
CN114979104B (zh) * 2022-05-27 2023-07-21 苏州浪潮智能科技有限公司 一种实现无服务器的系统、方法、计算机设备及存储介质

Also Published As

Publication number Publication date
CN114064062B (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
CN112000348B (zh) 服务灰度发布的控制方法、装置、计算机设备
CN114064062B (zh) 基于Kubernetes平台和负载均衡组件的缺省灰度发布方法和装置
CN113014651B (zh) 灰度发布方法、应用服务器及灰度发布系统
CN108510389A (zh) 基于区块链的智能合约调用方法、设备及可读存储介质
CN109787830A (zh) 灰度发布控制方法、装置、系统、电子设备及存储介质
CN109358971B (zh) 动态网络环境中快速且负载均衡的服务功能链部署方法
CN106301829A (zh) 一种网络业务扩容的方法和装置
CN110032393A (zh) 一种微服务发布方法、装置、设备及介质
CN109189494B (zh) 配置灰度发布方法、装置、设备及计算机可读存储介质
CN109474936A (zh) 应用于多个lora网关之间的物联网通讯方法及系统
CN110489139B (zh) 一种基于微服务的实时数据处理方法及其相关设备
CN112671582B (zh) 一种基于边缘推理集群的人工智能推理方法和系统
CN106856438A (zh) 一种网络业务实例化的方法、装置及nfv系统
CN108494582A (zh) 一种低耦合自动化运维系统及方法
EP3855689A1 (en) Method, apparatus, and system for providing service, storage medium, and electronic device
CN111625474B (zh) 一种联盟链的自动测试方法
CN110716730B (zh) 灰度发布方法、装置、设备及计算机可读存储介质
CN115550373B (zh) 基于云平台管控的联合试验任务环境负载均衡建模方法
WO2024036470A1 (en) Computing power network system
CN113259146B (zh) 微服务访问控制方法及装置、微服务系统
US11736525B1 (en) Generating access control policies using static analysis
Goudarzi et al. A mathematical optimization model using red deer algorithm for resource discovery in CloudIoT
US11665167B2 (en) Dynamically deployed limited access interface to computational resources
CN102868664B (zh) 基于服务分发网络的服务系统和服务分发方法
CN114138897A (zh) 一种基于区块链BaaS平台的跨链管理方法

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