介绍#

Ingress-Nginx 是一个K8S ingress工具,支持配置 Ingress Annotations 来实现不同场景下的灰度发布和测试。 Nginx Annotations 支持以下 4 种 Canary 规则:

  • nginx.ingress.kubernetes.io/canary-by-header:基于 Request Header 的流量切分,适用于灰度发布以及 A/B 测试。当 Request Header 设置为 always时,请求将会被一直发送到 Canary 版本;当 Request Header 设置为 never时,请求不会被发送到 Canary 入口;对于任何其他 Header 值,将忽略 Header,并通过优先级将请求与其他金丝雀规则进行优先级的比较。

  • nginx.ingress.kubernetes.io/canary-by-header-value:要匹配的 Request Header 的值,用于通知 Ingress 将请求路由到 Canary Ingress 中指定的服务。当 Request Header 设置为此值时,它将被路由到 Canary 入口。该规则允许用户自定义 Request Header 的值,必须与上一个 annotation (即:canary-by-header)一起使用。

  • nginx.ingress.kubernetes.io/canary-weight:基于服务权重的流量切分,适用于蓝绿部署,权重范围 0 - 100 按百分比将请求路由到 Canary Ingress 中指定的服务。权重为 0 意味着该金丝雀规则不会向 Canary 入口的服务发送任何请求。权重为 100 意味着所有请求都将被发送到 Canary 入口。

  • nginx.ingress.kubernetes.io/canary-by-cookie:基于 Cookie 的流量切分,适用于灰度发布与 A/B 测试。用于通知 Ingress 将请求路由到 Canary Ingress 中指定的服务的cookie。当 cookie 值设置为 always时,它将被路由到 Canary 入口;当 cookie 值设置为 never时,请求不会被发送到 Canary 入口;对于任何其他值,将忽略 cookie 并将请求与其他金丝雀规则进行优先级的比较。

注意:金丝雀规则按优先顺序进行如下排序:

canary-by-header - > canary-by-cookie - > canary-weight

我们可以把以上的四个 annotation 规则可以总体划分为以下两类:

  • 基于权重的 Canary 规则

  • 基于用户请求的 Canary 规则

注意: Ingress-Nginx 实在0.21.0 版本 中,引入的Canary 功能,因此要确保ingress版本OK

测试,创建2个ingres服务

第二个服务增加ingres注解

nginx.ingress.kubernetes.io/canary=true
nginx.ingress.kubernetes.io/canary-by-header=canary
nginx.ingress.kubernetes.io/canary-by-header-value=true

测试

[root@k8s-node01 ~]# curl -H "canary: true" http://k8s-node02/
4
[root@k8s-node01 ~]# curl http://k8s-node02/
3

金丝雀发布配置

nginx.ingress.kubernetes.io/canary=true
nginx.ingress.kubernetes.io/canary-weight=10

实现蓝绿发布,更简单了,只需要创建对应的pod服务即可。

使用k8s实现灰度发布,金丝雀,蓝绿发布相关推荐

  1. k8s 使用Nginx Ingress实现灰度发布和蓝绿发布

    **导语:**云原生最佳实践系列,涵盖了灰度发布.弹性伸缩.集群迁移.网络通信.应用容器化改造等等场景,针对各行业面临的应用现状,提出最佳解决方案,并提供详细操作指导,希望对您有所帮助. Ingres ...

  2. 灰度发布与滚动发布、蓝绿发布介绍

    文章目录 灰度发布与滚动发布.蓝绿发布介绍 一.灰度发布与滚动发布.蓝绿发布介绍 1.蓝绿部署 2.滚动发布 3.灰度发布 二.灰度发布好处 三.Gitee上高热度的开源灰度发布系统 四.安装使用 灰 ...

  3. k8s_deployment 以及灰度发布、滚动发布和蓝绿发布的零散笔记

    deployment 可以简写为deploy Deployment 相比与replicaSet 多出一些功能设定. Deployment VS replicaSet PS: 对比版本 1.18.0 项 ...

  4. k8s之滚动更新、金丝雀发布、蓝绿发布

    k8s Pod三种升级方式 哪几种发布方式 滚动更新 金丝雀发布 蓝绿发布 演示时间 滚动更新 金丝雀发布 蓝绿发布 哪几种发布方式 滚动更新 滚动更新通过设置MaxSurge和MaxUnavaila ...

  5. CI/CD发布方式-蓝绿发布、灰度发布和滚动发布

    发布方式 应用程序升级面临最大挑战是新旧业务切换,将软件从测试的最后阶段带到生产环境,同时要保证系统不间断提供服务.长期以来,业务升级渐渐形成了几个发布策略:蓝绿发布.灰度发布和滚动发布,目的是尽可能 ...

  6. 一文看懂ingress nginx实现灰度发布和蓝绿发布过程

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

  7. k8s 应用更新策略:灰度发布和蓝绿发布

    生产环境如何实现蓝绿部署? 什么是蓝绿部署? 蓝绿部署中,一共有两套系统:一套是正在提供服务系统,标记为"绿色":另一套是准备发布的系统,标记为"蓝色".两套系 ...

  8. 灰度(金丝雀)发布、蓝绿部署、滚动发布

    概念 一.灰度(金丝雀)发布 定义 灰度发布又叫金丝雀发布,只升级部分服务,即让一部分用户继续用老版本,一部分用户开始用新版本,如果用户对新版本没什么意见,那么逐步扩大范围,把所有用户都迁移到新版本上 ...

  9. K8S的灰度发布、滚动更新、蓝绿发布

    K8S灰度发布.蓝绿发布.滚动更新 一.简介 1.1灰度发布(金丝雀发布) 金丝雀发布一般是先发1台机器,或者一个小比例,例如2%的服务器,主要做流量验证用,也称为金丝雀 (Canary) 测试,国内 ...

  10. 为何互联网大厂都在采用蓝绿发布、滚动发布、灰度发布?

    在互联网软件的生产过程中有一环是必不可少的,那便是部署.发布.通过把代码部署在特定环境中,再对外向用户发布新功能.早期的时候互联网刚刚发展起来,涌入互联网的网民还比较少,服务器资源也比较昂贵.紧张,这 ...

最新文章

  1. JavaScript - this详解 (三)
  2. 【 C 】const 进一步解读(由switch引出)
  3. 虚拟机linux系统王及密码的破解方式——重设root密码
  4. python的进阶之路_Python 从入门到进阶之路(三)
  5. DAZ studio 4.9基础
  6. 第六节:教你如何在html中绑定数据
  7. jupyter notebook 使用pip安装库,解决报错:zsh:1: command not found: pip
  8. Oracle hint手动优化
  9. 耳机使用说明书 jbl ua_怎么挑选一款适合自己的蓝牙耳机?看看这篇文章!
  10. mysql concat字符串拼接函数使用
  11. 从怎样解题到怎样解决问题
  12. clickHouse 使用常见问题踩坑
  13. 数据库系统原理与应用教程(081)—— MySQL 视图(View)的创建与使用
  14. 论文学习笔记:PoseFix: Model-agnostic General Human Pose Refinement Network
  15. code::blocks自动补全诸如socket或者其它一些库中的函数
  16. 深度信念网络python_深度信念网络python
  17. 《夜深人静写算法》数论篇 - (22) 卢卡斯定理
  18. 刘强东:我不是中国互联网“坏孩子”
  19. 【C++/CPP】OpenCV丨2. 常用操作丨1. 创建Mat丨
  20. 适合跨境电商亚马逊专业货源平台有哪些?

热门文章

  1. 洛谷 p1000 超级玛丽游戏
  2. jq获取页面高度_通过 jQuery 获取浏览器窗口高度问题
  3. 100元人民币兑换成1元、2元、5元人名币的所有兑换方案
  4. proxmox ve 中文社区_安装proxmox VE(PVE)教程
  5. Docker 创建 Bamboo6.7.1 以及与 Crowd3.3.2 实现 SSO 单点登录
  6. 以资本串起一个软件局
  7. ask函数有几个形式参数HTML,第七章 函数
  8. “无法删除数据库,因为该数据库当前正在使用“问题解决
  9. 2016初中计算机考试试题,2016年计算机二级考试MS Office习题及答案
  10. 聚焦智慧计算战略,浪潮信息为企业数字智能化发展提供绿色智慧算力