分享好友 最新动态首页 最新动态分类 切换频道
canary-注解方式
2024-12-26 20:59

当对服务进行版本更新升级时,需要使用到滚动升级、分批暂停发布、蓝绿发布以及灰度发布等发布方式。本文将介绍在云容器引擎集群中如何通过Nginx Ingress Controller来实现应用服务的灰度发布。

灰度及蓝绿发布是为新版本创建一个与老版本完全一致的生产环境,在不影响老版本的前提下,按照一定的规则把部分流量切换到新版本,当新版本试运行一段时间没有问题后,将用户的全量流量从老版本迁移至新版本。

其中AB测试就是一种灰度发布方式,一部分用户继续使用老版本的服务,将一部分用户的流量切换到新版本,如果新版本运行稳定,则逐步将所有用户迁移到新版本。

云容器引擎控制台灰度发布功能的用法如下。

canary-注解方式:使用canary- Annotation配置蓝绿发布与灰度发布,canary-* Annotation是社区官方实现的灰度发布方式。

基于客户端请求的流量切分场景:假设当前线上环境,您已经有一套服务Service A对外提供7层服务,此时上线了一些新的特性,需要发布上线一个新的版本Service A'。但又不想直接替换Service A服务,而是希望将请求头中包含foo=bar或者Cookie中包含foo=bar的客户端请求转发到Service A'服务中。待运行一段时间稳定后,可将所有的流量从Service A切换到Service A'服务中,再平滑地将Service A服务下线。

基于服务权重的流量切分场景:假设当前线上环境,您已经有一套服务Service B对外提供7层服务,此时修复了一些问题,需要发布上线一个新的版本Service B'。但又不想将所有客户端流量切换到新版本Service B'中,而是希望将20%的流量切换到新版本Service B'中。待运行一段时间稳定后,再将所有的流量从Service B切换到Service B'服务中,再平滑地将Service B服务下线。

针对以上多种不同的应用发布需求,天翼云容器云服务引擎Ingress Controller支持了多种流量切分方式:基于Request Header的流量切分,适用于灰度发布以及AB测试场景。基于Cookie的流量切分,适用于灰度发布以及AB测试场景。基于Query Param的流量切分,适用于灰度发布以及AB测试场景。基于服务权重的流量切分,适用于蓝绿发布场景。

Nginx Ingress Controller通过下列canary-* Annotation来支持应用服务的灰度发布机制。

步骤一:部署服务。部署Nginx服务并通过Nginx Ingress Controller对外提供7层域名访问。创建Deployment和Service。创建nginx.yaml。


执行以下命令,创建Deployment和Service。


部署Ingress,创建ingress.yaml。


执行以下命令,部署Ingress。


测试访问情况。执行以下命令,获取外部IP。


执行以下命令,查看路由访问情况。


期望输出:


步骤二:灰度发布新版本服务

发布一个新版本的Nginx服务并配置路由规则。部署新版本的Deployment和Service。创建nginx1.yaml。


执行以下命令,创建Deployment和Service。


设置访问新版本服务的路由规则。容器支持设置以下三种路由规则,您可以根据实际情况选择路由规则。设置满足特定规则的客户端才能访问新版本服务。以下示例仅请求头中满足foo=bar的客户端请求才能路由到新版本服务。按照以上条件,创建新的Ingress资源gray-release-canary。


查看路由访问情况。执行以下命令,访问服务。


预期输出:


执行以下命令,请求头中满足foo=bar的客户端请求访问服务。


预期输出:


在满足特定规则的基础上设置一定比例的请求被路由到新版本服务中。以下示例要求请求头中满足foo=bar的客户端请求,且仅允许其中50%的流量被路由到新版本服务中。按照以下内容,修改步骤2中创建的Ingress。


查看路由访问情况。执行以下命令,访问服务。


预期输出:


执行以下命令,请求头中满足foo=bar的客户端请求访问服务。


预期输出:


重复执行以上命令。可以看到,仅请求头中满足foo=bar的客户端请求,且只有50%的流量才能路由到新版本服务。重复执行以上命令。可以看到,仅请求头中满足foo=bar的客户端请求,且只有50%的流量才能路由到新版本服务。按照以下内容,修改步骤2创建的Ingress。


执行以下命令,查看路由访问情况。


重复执行以上命令,可以看到仅50%的流量路由到新版本服务。

步骤三:删除老版本服务基于Helm的发布管理

系统运行一段时间后,当新版本服务已经稳定并且符合预期后,需要下线老版本的服务,仅保留新版本服务在线上运行。为了达到该目标,需要将旧版本的Service指向新版本服务的Deployment,并且删除旧版本的Deployment和新版本的Service。修改旧版本Service,使其指向新版本服务。


执行以下命令,请求头中满足foo=bar的客户端请求访问服务。


预期输出:


重复执行以上命令,可以看到请求全部被路由到了新版本的服务。执行以下命令,删除Canary Ingress资源gray-release-canary。


删除旧版本的Deployment和新版本的Service。执行以下命令,删除旧版本的Deployment。


执行以下命令,删除新版本的Service。

最新文章
高质量Seo外链如何做
做高质量Seo外链的方法:1、友情链接,交换尽量找相关性高,权重高,导出链接少,收录好的,快照更新快的外链;2、进行软文推广,在文章中添加锚文本;3、在百度经验,百度文库,百度知道等百度产品中发布文章,添加锚文本链接。前端(vue
为什么亚马逊的关键词出价会上涨,广告投放成本增加浮动比较大!
亚马逊的关键词出价上涨和广告投放成本浮动大,主要是由于以下几个因素:1. 竞争激烈:亚马逊广告平台是一个竞价广告系统,卖家和品牌之间会竞相投放广告,特别是在一些热门产品或热门关键词上,竞争非常激烈。当多个卖家针对同一个关键词
我国筑牢粮食安全屏障
立足国内,确保谷物基本自给;适度进口,优化粮食贸易结构——我国筑牢粮食安全屏障○ 改革开放以来,我国成为世界最大的粮食进口国,每年粮食进口量超过1亿吨○ 2018年我国粮食产量突破13000亿斤,已经连续多年稳定在12000亿斤以上○ 我国
第621讲:视频号怎么带货?6个类目案例告诉你
视频号最近流量有抬头之势,在讲案例之前,我们先大致做一个复盘,就是视频号的玩法和框架,视频号无非就是两个步骤,第一是如何引流,第二是如何变现。我们先看如何引流,视频号主要还是引流到公众号,这是最核心变现的地方,因为公众号商
智能AI生成剧本精彩台词创意集锦
在数字技术的飞速发展下人工智能已经渗透到了各个领域其中之一便是创意产业。智能不仅可以协助设计师实行创意设计还能在剧本创作中发挥巨大作用。本文将为您展示智能生成剧本中的精彩台词创意集锦让您领略在创意写作领域的无限魅力。在传统
独立站页面SEO检查及优化策略
一、网站结构检查1.主导航设计是否合理2.是否有面包屑导航3.URL结构和设计是否合理(2)检查URL是否简短且主题清晰避免在URL上进行关键词堆积,避免出现奇怪的字符,避免单词全部堆积在一起,避免包含日期,避免直接使用标题做URL,不要让g
“春晓”初成,国潮现世,摩尔线程绘出一幅GPU创“芯”图 原创
几个月以来,芯片圈波澜频起。AMD和英伟达的相关举动对高性能计算产业产生了不小影响。这场芯片产业的风云突变,将国产GPU推向了漩涡中心。近年来,我国数字经济发展取得显著成效,为社会经济健康发展提供了强大动力。与此同时,我国数字经
【Django】使用谷歌身份验证Google authenticator
#Google-Authenticator Google身份验证器##用法###步骤1-注册申请$ google = new GoogleAuthenticator ();// Register applicationecho $ google - getQRCodeUrl ( 'MyApplicationName' );// Save secret Key$ secretKey = $ go
锡兰红茶排行
以下是锡兰红茶排行榜的简要介绍:宝锡兰是斯里兰卡的知名红茶,起源于1867年,以其精选不同海拔的茶叶制作出多种风味的混合茶而闻名。宝锡兰红茶茶香浓,口感清爽,适合早晨饮用,可以提神醒脑。迪尔玛是斯里兰卡的另一大红茶,以其高颜值
百度平台推广的营销收费模式
百度平台推广的营销收费模式主要采用竞价排名和包年服务两种方式。竞价排名是根据用户搜索关键词的出价和点击量来计费,企业可以根据自身需求设定预算和关键词出价,获得更多的曝光和点击量。包年服务则是按照年度固定费用提供一定数量的关
相关文章
推荐文章
发表评论
0评