通过Kong实现金丝雀发布

╰+攻爆jí腚メ 2024-04-17 06:25 137阅读 0赞

金丝雀发布(Canary Releases)的由来

17世纪,英国矿井工人发现,金丝雀对瓦斯这种气体十分敏感。空气中哪怕有极其微量的瓦斯,金丝雀也会停止歌唱;而当瓦斯含量超过一定限度时,虽然人类毫无察觉,金丝雀却早已毒发身亡。当时在采矿设备相对简陋的条件下,工人们每次下井都会带上一只金丝雀作为“瓦斯检测指标”,以便在危险状况下紧急撤离。

Kong的金丝雀发布简述

金丝雀发布又称灰度发布,是指在我们的生产环境中划分出一部分节点为灰度节点,当上新版本的时候,先上灰度环境并且会切换一部分流量过来,当灰度环境的流量都没有问题的时候,就会在整个生产环境上新版本。
我理解的可能有问题,请留言或者进群讨论一下

Kong的金丝雀发布的实现

假设生产环境的状况如下:
在这里插入图片描述

  • 创建upstream

    upstreams/ POST
    {

    1. "name":"xjj.tv.com"

    }

  • 创建target

    灰度版本的target

    /upstreams/b7208664-4c0b-4c64-98a2-683594bb1bfd/targets POST

    {

    1. "target":"172.16.0.92:8899",
    2. "weight": 0

    }

    生产版本

    /upstreams/b7208664-4c0b-4c64-98a2-683594bb1bfd/targets POST
    {

    1. "target":"172.16.0.92:8810",
    2. "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
    {

    1. "target":"172.16.0.92:8810",
    2. "weight": 800

    }

    /upstreams/b7208664-4c0b-4c64-98a2-683594bb1bfd/targets POST
    {

    1. "target":"172.16.0.92:8899",
    2. "weight": 200

    }

相当于切换了五分之一的流量过去
在这里插入图片描述

  • 测试一下,点击多次,才会出现下面这个小姐姐
    在这里插入图片描述

先写到这里了,有问题进QQ群630300475

发表评论

表情:
评论列表 (有 0 条评论,137人围观)

还没有评论,来说两句吧...

相关阅读

    相关 通过Kong实现蓝绿部署

    蓝绿部署的起源 蓝绿部署的灵感起源于 “海腾”(海豚),海豚是永远不睡觉的,这是因为海豚有两个脑子,左脑和右脑,平时的时候左脑和右脑都在工作,而在休息的时候右脑是运作...