金丝雀发布(Canary Releases)的由来
17世纪,英国矿井工人发现,金丝雀对瓦斯这种气体十分敏感。空气中哪怕有极其微量的瓦斯,金丝雀也会停止歌唱;而当瓦斯含量超过一定限度时,虽然人类毫无察觉,金丝雀却早已毒发身亡。当时在采矿设备相对简陋的条件下,工人们每次下井都会带上一只金丝雀作为“瓦斯检测指标”,以便在危险状况下紧急撤离。
Kong的金丝雀发布简述
金丝雀发布又称灰度发布,是指在我们的生产环境中划分出一部分节点为灰度节点,当上新版本的时候,先上灰度环境并且会切换一部分流量过来,当灰度环境的流量都没有问题的时候,就会在整个生产环境上新版本。我理解的可能有问题,请留言或者进群讨论一下
Kong的金丝雀发布的实现
假设生产环境的状况如下:
- 创建upstream
upstreams/ POST
{
"name":"xjj.tv.com"
}
- 创建target
#灰度版本的target
/upstreams/b7208664-4c0b-4c64-98a2-683594bb1bfd/targets POST
{
"target":"172.16.0.92:8899",
"weight": 0
}
#生产版本
/upstreams/b7208664-4c0b-4c64-98a2-683594bb1bfd/targets POST
{
"target":"172.16.0.92:8810",
"weight": 1000
}
- b7208664-4c0b-4c64-98a2-683594bb1bfd 是上传面创建的upstream的id
- 创建service
services POST
{
"name": "xjj.yv.com",
"protocol":"http",
"host":"xjj.tv.com",
"path":"/",
"read_timeout":6000
}
- 创建路由
routes POST
{
"protocols": ["http"],
"methods": ["GET"],
"paths": ["/xjj_tv"],
"service":{"id":"2fc52878-1fe9-48ba-bc45-146da3822851"}
}
- 测试一下,注意多点几下
- 现在灰度上了新版本,我们要切一部分流量过去:
/upstreams/b7208664-4c0b-4c64-98a2-683594bb1bfd/targets POST
{
"target":"172.16.0.92:8810",
"weight": 800
}
/upstreams/b7208664-4c0b-4c64-98a2-683594bb1bfd/targets POST
{
"target":"172.16.0.92:8899",
"weight": 200
}
相当于切换了五分之一的流量过去
- 测试一下,点击多次,才会出现下面这个小姐姐
先写到这里了,有问题进QQ群630300475
来源:https://blog.csdn.net/u014686399/article/details/100084613