# 概述

对于部署在 K8s 集群中的多语言微服务应用,为了确保升级操作的安全性,可以使用金丝雀发布(即灰度发布)进行小规模验证, 验证通过后通过流量倾斜完成升级。

# 为组件添加灰度发布运维特征

1.创建应用。

2.为应用创建编排。

3.在可视化编排编辑器中,拖拽普通组件server至画布中。

4.点击上一步中的组件图标。

  • 填写组件名称:demo

  • 容器 0:

    • 镜像:xishengcai/canary

    • 镜像版本:latest

      img.png

    • 高级配置

      • 环境变量:VERSION: v1
      • 端口:80

5.在可视化编排编辑器左侧工具栏下滑,可以看到服务网格开关按钮,向右滑动开启服务网格。

6.拖拽运维特征灰度发布到刚才的组件下。

7.点击存储挂载图标,然后填写右侧弹框中的参数:

  • 容器 0:
    • 镜像:xishengcai/canary
    • 高级配置 > 环境变量:VERSION: v2
  • 策略类型 > 流量比例:
    • 当前版本: 20

    • 预先发布版本: 80

      img.png

8.添加一个测试组件 busybody。

  • 容器 0:
    • 镜像:busybody:latest

    • 高级配置 > 启动命令:tail -f /etc/hosts

      img.png

9.保存并部署。

# 结果验证

1.通过 shell 工具登陆到 centos 容器内,执行命令。

for i in {1..100};do curl http://canary/hello;sleep 0.5;done

img.png

命令执行效果。

image-20210609110925178