蓝绿部署

使用upstream,可以轻松地为服务编排蓝绿部署。

设置“蓝色”环境,运行地址服务的版本v1:

# create an upstream
$ curl -X POST http://kong:8001/upstreams \--data "name=address.v1.service"# add two targets to the upstream
$ curl -X POST http://kong:8001/upstreams/address.v1.service/targets \--data "target=192.168.34.15:80"--data "weight=100"
$ curl -X POST http://kong:8001/upstreams/address.v1.service/targets \--data "target=192.168.34.16:80"--data "weight=50"# create a Service targeting the Blue upstream
$ curl -X POST http://kong:8001/services/ \--data "name=address-service" \--data "host=address.v1.service" \--data "path=/address"# finally, add a Route as an entry-point into the Service
$ curl -X POST http://kong:8001/services/address-service/routes/ \--data "hosts[]=address.mydomain.com"

主机头设置为的请求address.mydomain.com现在将由Kong代理到两个已定义的目标;2/3的请求将转到http://192.168.34.15:80/addressweight=100),而1/3 的请求将转到 http://192.168.34.16:80/addressweight=50)。

在部署地址服务的版本v2之前,请设置“绿色”环境:

# create a new Green upstream for address service v2
$ curl -X POST http://kong:8001/upstreams \--data "name=address.v2.service"# add targets to the upstream
$ curl -X POST http://kong:8001/upstreams/address.v2.service/targets \--data "target=192.168.34.17:80"--data "weight=100"
$ curl -X POST http://kong:8001/upstreams/address.v2.service/targets \--data "target=192.168.34.18:80"--data "weight=100"

要激活蓝色/绿色开关,我们现在只需要更新服务:

# Switch the Service from Blue to Green upstream, v1 -> v2
$ curl -X PATCH http://kong:8001/services/address-service \--data "host=address.v2.service"

主机头设置为的传入请求address.mydomain.com现在将由Kong代理到新目标;1/2的请求将转到http://192.168.34.17:80/addressweight=100),而其他1/2 的请求将转到 http://192.168.34.18:80/addressweight=100)。

与往常一样,通过Kong Admin API进行的更改是动态的,将立即生效。无需重新加载或重新启动,并且不会丢弃任何进行中的请求。

金丝雀发布

使用upstream,可以精确调整target权重,从而实现平稳释放受控的金丝雀

使用一个非常简单的2个target示例:

# first target at 1000
$ curl -X POST http://kong:8001/upstreams/address.v2.service/targets \--data "target=192.168.34.17:80"--data "weight=1000"# second target at 0
$ curl -X POST http://kong:8001/upstreams/address.v2.service/targets \--data "target=192.168.34.18:80"--data "weight=0"

通过重复请求,但每次更改权重,流量将缓慢地路由到另一个target。例如,将其设置为10%:

# first target at 900
$ curl -X POST http://kong:8001/upstreams/address.v2.service/targets \--data "target=192.168.34.17:80"--data "weight=900"# second target at 100
$ curl -X POST http://kong:8001/upstreams/address.v2.service/targets \--data "target=192.168.34.18:80"--data "weight=100"

通过Kong Admin API进行的更改是动态的,将立即生效。无需重新加载或重新启动,并且不会丢弃任何进行中的请求。

Kong网关之蓝绿部署和金丝雀发布相关推荐

  1. 蓝绿部署、金丝雀发布(灰度发布)、AB测试……

    点击关注公众号,Java干货及时送达 来源 | https://www.jianshu.com/p/0df88fe4a1e3 随着微服务架构的普及,线上服务越来越多,随之而来的就是部署越来越频繁:随着 ...

  2. 使用级联功能实现蓝绿部署和金丝雀发布

    点击蓝色"程序猿DD"关注我 回复"资源"获取独家整理的学习资料! 作者:米开朗基杨 来源:公众号「云原生实验室」 上篇文章介绍了 Contour 分布式架构的 ...

  3. 一文搞懂蓝绿部署和金丝雀发布

    在之前关于CI/CD的文章中,我们简单讨论了蓝绿部署和金丝雀发布以及它们在持续交付中所扮演的角色.这些都是十分有效的方法,能够大大降低与应用程序部署相关的风险.所以,这篇文章我们来深入介绍蓝绿部署和金 ...

  4. 科普:蓝绿部署、金丝雀发布(灰度发布)、A/B测试

    蓝绿部署(Blue-green Deployments) 蓝绿部署的目的是减少发布时的中断时间.能够快速撤回发布. It's basically a technique for releasing y ...

  5. 蓝绿部署、金丝雀发布(灰度发布)、A/B测试的准确定义

    作者: 李佶澳   转载请保留:原文地址   发布时间:2018/10/23 14:02:00 说明 蓝绿部署 金丝雀发布 A/B测试 参考 说明 蓝绿部署.A/B测试.金丝雀发布,以及灰度发布.流量 ...

  6. 【项目实战】正确辨析蓝绿部署、金丝雀发布(灰度发布)、滚动发布、A/B测试

    一.背景 蓝绿部署.A/B测试.金丝雀发布,以及灰度发布.流量切分等,经常被混为一谈,影响沟通效率. 根本原因是这些名词经常出现,人们耳熟能详能够熟练地谈起,对这些术语的理解却没有达成一致. 下面是从 ...

  7. Contour 学习笔记(二):使用级联功能实现蓝绿部署和金丝雀发布

    上篇文章介绍了 Contour 分布式架构的工作原理,顺便简单介绍了下 IngressRoute 的使用方式.本文将探讨 IngressRoute 更高级的用法,其中级联功能是重点. 1. Ingre ...

  8. kubernetes基于nginx-ingress进行蓝绿部署、金丝雀发布(canary)

    kubernetes基于nginx-ingress进行蓝绿部署.金丝雀发布(canary) 用户通过负载均衡器访问v1版本,关掉v1版本,接触到v2版本. 在关闭版本a部署版本b,此技术意味着服务的停 ...

  9. 实战演示k8s部署go服务,实现滚动更新、重新创建、蓝绿部署、金丝雀发布

    1 前言 本文主要实战演示k8s部署go服务,实现滚动更新.重新创建.蓝绿部署.金丝雀发布 2 go服务镜像准备 2.1 初始化项目 cd /Users/flying/Dev/Go/go-lesson ...

最新文章

  1. visio交换机图标_分享 | 华为交换机开局配置一本通,弱电新人学习!
  2. SAP UI5 WebIDE里使用Mock数据的工作原理介绍
  3. vux 组件库首次使用安装
  4. vue学习路线图,学习vue就是那么清晰。
  5. EasyRMS录播管理服务器项目实战:windows上开机自启动NodeJS服务
  6. win10改成ubundu主题_如何将ubuntu引导win10,修改为win10引导ubuntu
  7. 作者:聂敏,男,电子科技大学教育大数据研究所博士生。
  8. Vue Router history模式的配置方法及其原理
  9. MongoDB最大连接数的查看与修改
  10. php mysql索引最左原则_MySQL 索引使用策略及优化
  11. AIML框架标签详解
  12. android 发送短信的两种方式
  13. transformer 模型的decoder部分 带gif动图
  14. nginx反向代理指定dns
  15. 【Ubuntu小工具安装】
  16. 如何群发邮件不进垃圾邮箱?群发邮件进了垃圾箱怎么办?
  17. RabbitMQ 安装及常用操作命令
  18. wordpress网站防止被别人iframe框架调用的九种方法
  19. 安卓语音识别(RecognizerIntent)
  20. App Store里“简书”app的评价分析

热门文章

  1. win10 安装IIS出现找不到引用的汇编,错误0x80073701
  2. 清华人工智能研究院孙茂松:大数据与富知识双轮驱动成NLP未来发展关键
  3. [生存志] 第42节 晋献假途灭虢
  4. AtomicInteger如何保证线程安全?
  5. Windows中cuda安装教程及调试Error总结
  6. jenkins 安装记录
  7. 局部 变量被屏蔽的同时与全局变量中的细节
  8. 关于DNF还原VM的一些个人观点
  9. 计算机毕业设计之 [含论文+源码等]基于java+ssh+mysql实现的美食网站
  10. PC企业微信登录提示版本过低怎么办?