基于容器云和服务网格的应用发布方法及流量路由方法技术

技术编号:32729682 阅读:14 留言:0更新日期:2022-03-20 08:35
本发明专利技术公开了基于容器云和服务网格的应用发布方法及流量路由方法。该应用发布方法应用于kubernetes中,通过应用发布模板设置用于发布不同版本的第一应用的参数;根据所述应用发布模板和参数生成容器云的第一资源配置和服务网格的第二资源配置;生成所述第一资源配置和第二资源配置后,形成虚拟服务和目标规则第一流量路由规则、所述目标规则和微服务的第二流量路由规则以及各个微服务之间的调用关系;发布所述不同版本的第一应用,所述不同版本的第一应用以微服务的形式部署。本发明专利技术技术方案实现了自动生成容器云和服务网格的资源配置,降低了人工在容器云和服务网格中采用灰度发布方式发布应用的门槛。度发布方式发布应用的门槛。度发布方式发布应用的门槛。

【技术实现步骤摘要】
基于容器云和服务网格的应用发布方法及流量路由方法


[0001]本专利技术涉及容器云
,尤其涉及基于容器云和服务网格的应用发布方法及流量路由方法。

技术介绍

[0002]灰度发布是指在环境中同时部署集了新版本应用和旧版本应用,并通过调整流量策略,让一部分用户继续用老版本,一部分用户开始用新版本,并逐步扩大新版本的使用范围,最终把所有用户都迁移到新版本上面来。通过灰度发布的方式可以减少因版本升级引起的不良影响范围,通过升级过程中对试用用户的使用反馈,调整发布策略,从而提高用户满意度。
[0003]灰度发布的模式包括蓝绿发布、金丝雀发布和AB测试。现有技术方案中,将应用部署集在主机时,实现灰度发布需要通过负载均衡器上编写各类脚本,配合主机上的应用发布,实现灰度发布。此种发布方式存在脚本编写难度高和应用部署集配合难度高的缺点。将应用部署集在容器云(kubernetes)时,实现灰度发布可以通过服务网格(istio)实现各类灰度发布,此种发布方式存在服务网格(istio)使用难度高和跨多个微服务情况下实现多个微服务的灰度发布的操作难度高的问题。现有灰度发布模式存在以下缺陷:
[0004](1)灰度发布只能针对单个微服务实施灰度发布,无法针对多个微服务实施灰度发布;
[0005](2)灰度发布操作流程复杂;
[0006](3)灰度发布与应用的部署集协同配合难度高;
[0007](4)istio服务网格使用门槛高,普及难;
[0008](5)需要多个环境支持灰度发布。

技术实现思路

[0009]本专利技术提供一种基于容器云和服务网格的应用发布方法及流量路由方法,实现了自动生成容器云和服务网格的资源配置,降低了人工在容器云和服务网格中采用灰度发布方式发布应用的门槛。
[0010]本专利技术一实施例提供一种基于容器云和服务网格的应用发布方法,应用于kubernetes中,其特征在于,包括以下步骤:
[0011]通过应用发布模板设置用于发布不同版本的第一应用的参数;所述参数包括:新版本域名、旧版本域名、新版本流量比例、旧版本流量比例、各个微服务的服务名、各个微服务的标签版本信息、各个微服务的头部信息的匹配规则、各个微服务访问路径前缀,以及各个微服务是否为默认入口微服务;
[0012]根据所述应用发布模板和参数生成容器云的第一资源配置和服务网格的第二资源配置;生成所述第一资源配置和第二资源配置后,形成虚拟服务和目标规则的第一流量路由规则、所述目标规则和微服务的第二流量路由规则以及各个微服务之间的调用关系;
[0013]发布所述不同版本的第一应用,所述不同版本的第一应用部署在容器云中,并通过访问微服务的部署集来访问不同版本的第一应用。
[0014]进一步地,所述新版本域名用于设置蓝绿发布时,访问新版本应用的域名信息;
[0015]所述旧版本域名用于设置蓝绿发布时,访问旧版本应用的域名信息;
[0016]所述新版本流量比例用于设置金丝雀发布时,访问新版本应用的流量比例;
[0017]所述旧版本流量比例用于设置金丝雀发布时,访问旧版本应用的流量比例;
[0018]所述各个微服务的服务名,用于设置目标规则所指向的微服务;
[0019]所述各个微服务的标签版本信息,用于设置目标规则中的目标子集的标签上的版本信息,所述版本信息包括新版本信息和旧版本信息;
[0020]所述各个微服务的头部信息的匹配规则,用于设置所述头部信息中的版本标记信息的匹配规则;所述头部信息为HTTP header;
[0021]所述各个微服务访问路径前缀,用于设置访问微服务的访问路径前缀的匹配规则;
[0022]所述各个微服务是否为默认入口微服务,用于设置在默认情况下是否访问当前网关的默认微服务,所述默认情况指访问路径不符合所述各个微服务访问路径前缀的匹配规则。
[0023]本专利技术又一实施例提供一种基于容器云和服务网格的流量路由方法,适用于如权利要求1所述的基于容器云和服务网格的应用发布方法发布的第一应用,其特征在于,包括以下步骤:
[0024]通过虚拟服务接收来自网关的第一请求,所述虚拟服务根据预设的第一流量路由规则,将所述第一请求路由至对应目标规则中的目标子集;所述目标规则包括标签信息为新版本的目标子集和标签信息为旧版本的目标子集;
[0025]根据所述目标子集的标签信息上的版本信息将所述第一请求路由至对应版本的微服务的部署集;
[0026]根据所述部署集上运行的版本信息和所述微服务和其他微服务之间的调用关系,将所述第一请求路由至其他微服务的部署集,以使所述第一请求访问对应版本的第一应用。
[0027]进一步地,所述第一流量路由规则包括以下分发规则中的一种或多种组合:
[0028]第一分发规则为:将从不同网关进入的请求,根据所述不同网关各自对应的版本信息,将进入的请求路由至对应目标规则的目标子集;所述从不同网关进入的请求,在进入网关之间,根据域名和网关的对应关系,将请求路由至相应的网关;
[0029]第二分发规则为:针对从同一网关进入的请求,根据预设的头部信息匹配规则,将符合所述头部信息匹配规则的进入的请求和不符合所述头部信息匹配规则的进入的请求,分别路由至对应目标规则的目标子集;所述头部信息为HTTP header;
[0030]第三分发规则为:针对从同一网关进入的请求,按照预设的新版本的流量比例和旧版本的流量比例,将进入的请求随机路由至对应目标规则的目标子集。
[0031]进一步地,当所述第一流量路由规则包括分发规则中的多种组合时,所述虚拟服务按照分发规则的优先级执行流量路由规则;所述分发规则的优先级为:所述第一分发规则的优先级高于所述第二分发规则的优先级高于所述第三分发规则的优先级。
[0032]进一步地,当第一流量路由规则包括第一分发规则和第二分发规则时,所述虚拟服务根据预设的第一流量路由规则将所述第一请求路由至对应目标规则的目标子集,具体为:
[0033]所述虚拟服务确定第一请求的网关对应的版本信息为旧版本时,获取所述第一请求的头部信息,将符合所述头部信息匹配规则的第一请求路由至对应目标规则的标签信息为新版本的目标子集,将不符合所述头部信息匹配规则的第一请求路由至对应目标规则的标签信息为旧版本的目标子集;
[0034]所述虚拟服务确定第一请求的网关对应的版本信息为新版本时,将第一请求路由至对应目标规则的标签信息为新版本的目标子集。
[0035]进一步地,当第一流量路由规则包括第一分发规则和第三分发规则时,所述虚拟服务根据预设的第一流量路由规则将所述第一请求路由至对应目标规则的目标子集,具体为:
[0036]所述虚拟服务确定第一请求的网关对应的版本信息为旧版本时,按照预设的新版本的流量比例路由相应比例的第一请求至对应目标规则的标签信息为新版本的目标子集,按照预设的旧版本的流量比例路由相应比例的第一请求至对应目标规则的标签信息为旧本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于容器云和服务网格的应用发布方法,应用于kubernetes中,其特征在于,包括以下步骤:通过应用发布模板设置用于发布不同版本的第一应用的参数;所述参数包括:新版本域名、旧版本域名、新版本流量比例、旧版本流量比例、各个微服务的服务名、各个微服务的标签版本信息、各个微服务的头部信息的匹配规则、各个微服务访问路径前缀,以及各个微服务是否为默认入口微服务;根据所述应用发布模板和参数生成容器云的第一资源配置和服务网格的第二资源配置;生成所述第一资源配置和第二资源配置后,形成虚拟服务和目标规则的第一流量路由规则、所述目标规则和微服务的第二流量路由规则以及各个微服务之间的调用关系;发布所述不同版本的第一应用,所述不同版本的第一应用部署在容器云中,并通过访问微服务的部署集来访问不同版本的第一应用。2.根据权利要求1所述的基于容器云和服务网格的应用发布方法,其特征在于,所述新版本域名用于设置蓝绿发布时,访问新版本应用的域名信息;所述旧版本域名用于设置蓝绿发布时,访问旧版本应用的域名信息;所述新版本流量比例用于设置金丝雀发布时,访问新版本应用的流量比例;所述旧版本流量比例用于设置金丝雀发布时,访问旧版本应用的流量比例;所述各个微服务的服务名,用于设置目标规则所指向的微服务;所述各个微服务的标签版本信息,用于设置目标规则中的目标子集的标签上的版本信息,所述版本信息包括新版本信息和旧版本信息;所述各个微服务的头部信息的匹配规则,用于设置所述头部信息中的版本标记信息的匹配规则;所述头部信息为HTTP header;所述各个微服务访问路径前缀,用于设置访问微服务的访问路径前缀的匹配规则;所述各个微服务是否为默认入口微服务,用于设置在默认情况下是否访问当前网关的默认微服务,所述默认情况指访问路径不符合所述各个微服务访问路径前缀的匹配规则。3.一种基于容器云和服务网格的流量路由方法,适用于如权利要求1所述的基于容器云和服务网格的应用发布方法发布的第一应用,其特征在于,包括以下步骤:通过虚拟服务接收来自网关的第一请求,所述虚拟服务根据预设的第一流量路由规则,将所述第一请求路由至对应目标规则中的目标子集;所述目标规则包括标签信息为新版本的目标子集和标签信息为旧版本的目标子集;根据所述目标子集的标签信息上的版本信息将所述第一请求路由至对应版本的微服务的部署集;根据所述部署集上运行的版本信息和所述微服务和其他微服务之间的调用关系,将所述第一请求路由至其他微服务的部署集,以使所述第一请求访问对应版本的第一应用。4.根据权利要求3所述的基于容器云和服务网格的流量路由方法,其特征在于,所述第一流量路由规则包括以下分发规则中的一种或多种组合:第一分发规则为:将从不同网关进入的请求,根据所述不同网关各自对应的版本信息,将进入的请求路由至对应目标规则的目标子集;所述从不同网关进入的请求,在进入网关之前,根据域名和网关的对应关系,将请求路由至相应的网关;第二分发规则为:针对从同一网关进入的请求,根据预设的头部信息匹配规则,将符合
所述头部信息匹配规则的进入的请求和不符合所述头部信息匹配规则的进入的请求,分别路由至对应目标规则的目标子集;所述头部信息为HTTP header;第三分发规则为:针对从同一网关进入的请求,按照预设的新版本的流量比例和旧版本的流量比例,将进入的请求随机路由至对应目标规则的目标子集。5.根据权利要求4所述的基于容器云和服务网格的...

【专利技术属性】
技术研发人员:曾海剑
申请(专利权)人:广州云擎互动信息技术有限公司
类型:发明
国别省市:

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

1