分享好友 最新动态首页 最新动态分类 切换频道
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优化、内容营销等多方面技巧,助你轻松打造热门,提升影响力。搭建推广在化浪潮席卷全球的今天,构建一个优秀的已成为企业及个人展示自我、拓展业务的关键,搭建完成后,如何有效地推广,使
维吉尼亚密码加密/解密在线工具
维吉尼亚密码加密/解密在线工具,工具链接:http://www.atoolbox.net/Tool.php?Id=856 维吉尼亚密码是在凯撒密码基础上产生的一种加密方法,它将凯撒密码的全部25种位移排序为一张表,与原字母序列共同组成26
高清美女写真生成法:用AI轻松打造虚拟女友!
Deep Dream Generator:这一工具基于谷歌的Deep Dream算法,虽不是专为写真设计,但能根据用户的照片生成颇具梦幻效果的画像。用户可以上传自己的照片,然后通过多种风格进行转换,虽然应用场景多样,但效果有时难以把握,需用户多加尝试。
逾期还款困难证明办理全攻略:信用卡、贫困、还款、如何一次搞定
逾期情况说明是指在个人、信用卡或其他金融产品出现逾期还款时需要向相关金融机构提交的一份书面说明。在这份说明中需要详细说明逾期的起因、逾期的金额、逾期的时间以及未来的还款计划等内容。这样金融机构可更好地理解借款人的实际情况从
贵阳爱采购标题撰写
解答:百度爱采购的优点有哪些?对中小企推广有什么优势?百度爱采购是百度集团旗下的 B2B 竖直搜索模块,致力于协助客户更切实解决企业发展趋势难点。服务平台靠着百度强劲的搜索技术性,服务项目大量客户,并运用AI技术性,结合要求案件
苹果可以长期充电使用吗 苹果手机可以一直充电吗
苹果手机一直以来都备受关注,其中电池续航一直是用户关注的焦点之一,而且苹果手机的电池技术一直处于行业领先地位,但对于长期充电使用,我们需要了解其中的原理和影响因素,在日常使用中,很多人习惯将手机整夜充电,但这样的做法是否会
魔乐+SwanLab: 快速可视化跟踪模型微调
SwanLab是一款开源、轻量级的AI实验跟踪工具,提供了一个跟踪、比较、和协作实验的平台,旨在加速AI研发团队100倍的研发效率。其提供了友好的API和漂亮的界面,结合了超参数跟踪、指标记录、在线协作、实验链接分享、实时消息通知等功能,
网站seo,优化-seo网站优化详解
百度网站SEO优化的方法主要包括以下几个方面:内容优化:提供高质量、原创且相关的内容,确保内容满足用户搜索意图,并优化标题、描述和元标签,增加关键词密度但不过度堆砌,同时利用图像、视频等可视化内容增强吸引力。网站结构优化:调
简明:为什么 WhatsApp 不支持中国手机号注册?2024年问题与解决-FB好用账号购买网-站长工具
前言:简明:为什么WhatsApp不支持中国手机号注册?FB好用账号购买网助你解决,来自汕尾市山柳絮钟表店的专业指导====================简明:为什么 WhatsApp 不支持中国手机号注册?2024年问题与解决-FB好用账号购买网-站长工具-宣传视频
阿里大模型来了,10个回合“单挑”文心一言,谁占上风?
文|雪豹财经社 李欣彤百度的文心一言上线不足一月,阿里的大语言模型也浮出水面。4月7日,阿里云在微信公众号官宣:自研大模型“通义千问”开始邀请用户测试体验。为何叫“通义千问”?根据通义千问自己的回答,这个名字表达了这款人工智能
相关文章
推荐文章
发表评论
0评