腾讯云
开发者社区
文档
建议反馈
控制台
登录/注册
首页
学习
活动
专区
圈层
工具
MCP广场
文章/答案/技术大牛
搜索
搜索
关闭
发布
文章
问答
视频
用户
沙龙
专栏
专区
综合排序
丨
最热优先
丨
最新优先
时间不限
【ingress-nginx】通过特定的
请求
参数
做
灰度
发布
使用背景 一般在 web 业务
灰度
发布
中,在使用 ingress-nginx时, 比较常用的
灰度
策略是通过
请求
路径、header或者 cookie 的方式,使用方式官网文档都有介绍,参考:Canary 今天介绍一种特殊场景下的
灰度
思路, 即通过
请求
参数
的方式来做
灰度
流量接入,下面将介绍如何操作。 操作步骤 实验环境准备: 1.创建一个 TKE 集群。 第二个
灰度
服务的 ingress 在接收流量时对
请求
path rewrite 回写为原业务接口(/test) , 并带上原始
请求
参数
,
灰度
后端响应后返回,从而实现特定
请求
参数
的流量
灰度
。 实验过程验证: 1.没有匹配指定
请求
参数
的
请求
,可以得到原服务正常
请求
,如下图: 2.匹配指定
请求
参数
(key为 jokey)的
请求
,这里做了两种不同策略的重定向,可以根据实际业务调整。 查看
灰度
服务的后端日志,可以看到
请求
path 已经按照预期 Rewrite 回业务接口 path, 如下图: 总结 通过上面的试验过程详细介绍了如何在 ingress-nginx 下通过特定
请求
参数
的方式来做
灰度
发布
策略
Jokey
2025-02-01
1.7K
0
标签:
nginx
容器服务
kubernetes-ingress
灰度
发布
灰度
发布
,对于大厂来说是必不可少的,对于我这种从来没有
灰度
发布
过的,并不是很清楚,估计也有很多人不知道这个东西。以前只是直到
灰度
发布
,这次稍微了解一下。
灰度
发布
是指新版本或者新功能通过一定策略选取一些用户,让他们先使用,通过使用情况对功能、性能、稳定性等指标评估是否扩大范围直至全面
发布
。
灰度
发布
开始到结束期间的这一段时间,称为
灰度
期。 如果是客户端的
灰度
发布
,应该是可以按照用户逐渐推送更新安装包。而服务端的
灰度
发布
则会相应容易一些,毕竟是在后台实现。 现在有专门的
灰度
发布
模式A/B测试,通过业务代码区分流量访问不同代码。
灰度
发布
除了代码层面之外,对服务这块要求还是蛮大的,
灰度
发布
不同于预
发布
,
灰度
发布
是直接让线上用户参与,而一般预
发布
是
发布
到线上,由测试人员进行测试。 当然,会使用
灰度
发布
的,一般来说都是千万级别用户的项目了,虽然很想使用
灰度
发布
,但还是需要考虑实际场景,也希望以后能有机会使用
灰度
发布
。 (完)
wade
2020-04-24
2.2K
0
标签:
腾讯云测试服务
nginx
html
灰度
发布
1、什么是
灰度
发布
以下是百度词条的解释:
灰度
发布
(又名金丝雀
发布
)是指在黑与白之间,能够平滑过渡的一种
发布
方式。
灰度
发布
可以保证整体系统的稳定,在初始
灰度
的时候就可以发现、调整问题,以保证其影响度。 2、为什么要
灰度
发布
灰度
发布
的主要目的是保证系统的可用性。因为每一次线上变更都无法保证系统100%的无bug,所以变更后要在线上小范围验证,等没问题再全面放开。 3、常用的
灰度
发布
方式有哪些 1、按机器
灰度
? 线上有多台机器,先将新功能代码部署到其中的1台或多台机器,然后绑定到这些机器进行测试,测试完没问题再部署到所有机器。 用户
请求
首先访问负载均衡器,然后由负载均衡器路由到一台WEB,WEB调用到其中一台Service获取数据。
心平气和
2020-09-11
3.7K
0
标签:
数据库
sql
腾讯云测试服务
网站
负载均衡
灰度
发布
灰度
发布
浅析 定义
灰度
发布
就是已一种平滑过渡的方式来
发布
,通过切换线上新旧版本之间的路由权重,逐步从旧版本切换到新版本;比如要上线新功能,首先只是更新少量的服务节点,通过路由权重,让少部分用户体验新版本
灰度
发布
一个系统往往有接入层比如nginx(Openresty),网关层比如zuul,以及服务层比如各种rpc框架;在这几层都有路由功能,也就是说这几层都可以做
灰度
;接入层可以使用nginx+lua来实现
灰度
invokers.get(i)); } } } return result; } (invokers,context) dubbo在运行脚本的时候会传入三个
参数
分别是 具体可以参考官方文档:旧路由规则 测试 启动zookeeper,然后分别启动两台生产者,启动消费者时通过修改tag然后观察路由; 总结 本文分别从接入层,网关层,服务层这三层简要的介绍了通过路由规则来实现
灰度
发布
;已每层比较典型的中间件来介绍具体如何去实现简单的
灰度
发布
;总体来说就是使用中间件的路由功能,动态加载外部自定义的一些路由策略脚本,以此来达到
灰度
发布
的目的。
用户4158112
2020-12-09
2.3K
0
标签:
云数据库 Redis®
nginx
dubbo
lua
zookeeper
灰度
发布
什么是
灰度
发布
介绍
灰度
发布
流程之前我先一句话介绍一下什么是
灰度
发布
。
灰度
发布
就是,线上app无需停机就可以保证运行的是经过测试的稳定版本,且我们在冒烟测试时也不会影响到线上App的运行。 为什么我们要搞
灰度
发布
线上的服务每次都是我来构建,我可以非常负责任的讲,冒烟测试时不重新
发布
的几率很小,而且很多时候需要我去定位线上问题,这个过程我不知道你们痛不痛苦,反正我是很痛苦。 为了能让用户有更好的体验,也为了我不在那么痛苦所以我们急需要一款
灰度
发布
系统。
灰度
发布
系统怎么搞 一个很简单的理论,同时准备两份服务,让符合规则的
请求
路由到
灰度
接口,不符合规则的路由到之前
发布
的服务就好了哇~ 图片 代码实现 熟悉SpringCloudGateway的同学对于 让符合规则的
请求
路由到
灰度
接口,不符合规则的路由到之前
发布
的服务就好了哇~,对于这个简单的需求我们只要在path断言不变的前提下在增加一个管理规则的断言不就可以了吗,以指定
请求
头包含指定value的规则为例
姜同学
2022-10-27
2.5K
0
标签:
腾讯云测试服务
负载均衡
负载均衡缓存
Ingress
灰度
路由策略-基于
请求
头
灰度
应用背景:应用
发布
需要基于
请求
灰度
头进行
灰度
测试,携带
请求
头的
请求
灰度
到
灰度
服务。组件支持:ingress-nginx-controller自带的
灰度
策略。 curl -sSf -m 5 -H "Host: canary.demo.com" -H "X-Is-Gray: true" http://172.19.0.242六、测试结果由测试结果可以查看到携带
请求
灰度
头的被正确路由到
灰度
服务
dufu
2025-03-06
884
0
标签:
kubernetes-ingress
游戏
灰度
发布
,蓝绿部署、滚动部署、
灰度
发布
、金丝雀
发布
。。。 整个游戏的链条上,似乎大家都已经习惯,开发习惯,玩家也习惯 习惯麻痹了一切,没有提出更好的策略,大家都这么玩啊,无所谓啦~ 方案 细思极恐,我们应该,也需要做得更好
灰度
发布
/金丝雀
发布
灰度
发布
是在原有版本可用的情况下
灰度
发布
/金丝雀
发布
由以下几个步骤组成: 准备好部署各个阶段的工件,包括:构建工件,测试脚本,配置文件和部署清单文件。 从负载均衡列表中移除掉“金丝雀”服务器。 在之前的架构图中,稍作修改,在玩家与Gameserver之间增加一层ha-proxy,这样就有了
灰度
发布
的基础 玩家不再直接与game-server直连,而是与ha-proxy 透明性 对玩家来说,发版本就是透明的 ,发版本时,不再需要停机,入口也不需要关闭,7*24玩耍 流量灵活切换
灰度
百分比,可以灵活控制,这里面又涉及到路由规则,复杂了,可以先百分百切换 快速迭代 玩家无感,出现bug,可以快速修复,快速上线
码农戏码
2021-03-23
2.3K
0
标签:
网络安全
游戏
负载均衡
运维
编程算法
一、
灰度
发布
一、
灰度
发布
灰度
发布
是一种
发布
方式,也叫金丝雀
发布
,起源是矿工在下井之前会先放一只金丝雀到井里,如果金丝雀不叫了,就代表瓦斯浓度高。原因是金丝雀对瓦斯气体很敏感。
灰度
发布
的做法是:会在现存旧应用的基础上,启动一个新版应用,但是新版应用并不会直接让用户访问。而是先让测试同学去进行测试。 这种实现原理主要根据用户
请求
中的 Cookie 是否存在
灰度
标示 Cookie去判断是否为
灰度
用户,再决定是否返回
灰度
版本服务 nginx.ingress.kubernetes.io/canary:可选值为 代表是否开启
灰度
功能 nginx.ingress.kubernetes.io/canary-by-cookie:
灰度
发布
cookie 的 key。当 key 值等于 always 时,
灰度
触发生效。 二、滚动
发布
滚动
发布
,则是我们一般所说的无宕机
发布
。其
发布
方式如同名称一样,一次取出一台/多台服务器(看策略配置)进行新版本更新。
zaking
2022-05-10
2.3K
0
标签:
容器
html
网络安全
kubernetes
StatefulSet
灰度
发布
灰度
发布
(Gray Release)是一种流行的
发布
策略,可以使我们在不中断整个生产环境的情况下逐步将新版本的应用程序
发布
给一小部分用户,以确保它们能够正常运行。 因此,在
灰度
发布
中,我们可以使用不同的副本集来分别部署新版本和旧版本的应用程序,并逐步增加新版本的副本集,以确保它们能够正确运行。 下面是一个基于StatefulSet的
灰度
发布
示例:假设我们有一个名为web的StatefulSet,它有3个副本,使用的是RollingUpdate更新策略,版本号为v1,现在我们想要
发布
新版本的应用程序 ,并使用
灰度
发布
策略。 当我们想要进行
灰度
发布
时,我们可以通过 StatefulSet 的 RollingUpdate 更新策略来实现。
玖叁叁
2023-04-30
1.6K
0
标签:
kubernetes
灰度
发布
方案
一、
灰度
发布
定义
灰度
发布
(又名金丝雀
发布
)是指在黑与白之间,能够平滑过渡的一种
发布
方式。
灰度
发布
可以保证整体系统的稳定,在初始
灰度
的时候就可以发现、调整问题,以保证其影响度。 ? 二、实现思路方向 1、在代码中做。 demo逻辑:目标服务的端口和
灰度
服务端口的一致,并且
请求
方法的第一个
参数
类型是Long(userId)并且是
灰度
用户,则判断为
灰度
服务,否则按照默认随机调用其余非
灰度
服务 ? 四、springCloud
灰度
方案说明 Ribbon 提供了几个负载均衡的组件,其目的就是让
请求
转给合适的服务器处理 ? 首先在
请求
开始处,实现自己的
灰度
逻辑,比如下面的demo根据
请求
url如果包含‘version’向holder中添加route为A的标识,否则添加route为B的标识。
lyb-geek
2018-08-06
12.7K
0
标签:
负载均衡
负载均衡缓存
nginx
lua
问题归档
专栏文章
快讯文章归档
关键词归档
开发者手册归档
开发者手册 Section 归档