# Blue-Green Deployments

这是一个安全部署应用的方法,它通过提供两个版本的应用同时运行。为了部署一个新版本的应用,你需要将当前版本切换到新版本,然后关闭老版本。Blue-green deployment不会使应用停止服务,在必要的情况下允许你快速回滚应用到blue版本。


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

1. 创建一个upstream

curl -X POST http://kong:8001/upstreams \

    --data "name=address.v1.service"

2. 给upstream添加两个target

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"

3. 创建一个把Blue上游作为目标的Service

curl -X POST http://kong:8001/services/  \

    --data "name=address-service"  \

    --data "host=address.v1.service" \

    --data "path=/address"

4. 最后,为Service添加Route

curl -X POST http://kong:8001/services/address-service/routes/ \

    --data "hosts[]=address.mydomain.com"


将主机头设置为address.mydomain.com,就可以让那Kong代理这个请求转发到定义的两个目标;三分之二的请求将发送到http://192.168.34.15:80/address(权重=100),1/3将转到http://192.168.34.16:80/address(权重=50)。



# 设置“绿色”环境,运行版本2的地址服务

1.为地址服务v2,创建一个新的Green upstream

curl -X POST http://kong:8001/upstreams \

    --data "name=address.v2.service"

2.给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"

3.将服务从Blue环境转换为Green环境, v1 -> v2

curl -X PATCH http://kong:8001/services/address-service \

    --data "host=address.v2.service"


将主机头设置为address.mydomain.com,现在已经给Kong设置了一个新的目标;一半的请求将被发送到http://192.168.34.17:80/address(权重=100),另外1/2将转到http://192.168.34.18:80/address(权重=100)。

通常,通过Kong管理API的更改是动态的,并将立即生效。不需要重新加载或重启,在进度请求中不需要删除。


# 金丝雀版本

使用环型平衡器,目标权重可以精确地调整,允许一个平滑的、可控的金丝雀环境。

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

1.第一个目标权重 1000

curl -X POST http://kong:8001/upstreams/address.v2.service/targets \

    --data "target=192.168.34.17:80" \

    --data "weight=1000"

2.第二个目标权重 0

curl -X POST http://kong:8001/upstreams/address.v2.service/targets \

    --data "target=192.168.34.18:80" \

    --data "weight=0"

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

-第一个目标权重 900

curl -X POST http://kong:8001/upstreams/address.v2.service/targets \

    --data "target=192.168.34.17:80" \

    --data "weight=900"

-第二个目标权重 100

curl -X POST http://kong:8001/upstreams/address.v2.service/targets \

    --data "target=192.168.34.18:80" \

    --data "weight=100"

同样,通过Kong管理API的更改是动态的,并将立即生效。不需要重新加载或重启,在进度请求中不需要删除。


签名:这个人很懒,什么也没有留下!
最新回复 (0)
返回