Gateway / VirtualService实践 - II

本节我们将测试流量分配http header匹配

流量分配

reviews VirtualService定义中加入v3版本,设置v1:v2:v3 = 60:20:20:

image-20220813213703177

保存yaml,不断刷新浏览器(alb地址),我们将有几率访问到v3版本的页面:

image-20220813213735548

使用curl模拟用户流量访问:

while sleep 0.1; do curl -sS 'http://a8a1deecac1ad4ba7993b01e393d363d-322922569.us-west-2.elb.amazonaws.com/productpage' &>/dev/null; done

在Kiali的graph页面能看到v3版本:

image-20220813213804358

在Service里查看 weight distribution

image-20220813214021753

http header匹配

更新reviews VirtualService定义如下:

spec:
  hosts:
  - reviews
  http:
  - match:
    - headers:
        end-user:
          exact: test
    route:
    - destination:
        host: reviews
        subset: v2
  - route:
    - destination:
        host: reviews
        subset: v3

当http header为end-user=test时,将访问到v2版本;默认访问到v3版本

image-20220813215343944

保存配置。现在我们使用test用户来测试页面:

image-20220813215401650

用户名输入test,密码随便输入。

当用户为test时,访问到的是v2版本:

image-20220813215421451

将用户登出,访问到的是v3版本,而且不断刷新浏览器都是这一个版本:

image-20220813215439538


VirtualService控制流量访问的方式有很多,本节先介绍这两种,在后面会介绍其他方式