Istio的流量镜像也叫影子流量,是将生产的流量镜像拷贝到测试集群或者其他版本中去,简单地说也就是引导实时流量到另一个微服务的版本中去。
将流量路由到reviews:v1版本
我们先应用之前的virtual-service-all-v1.yaml,将流量路由到微服务的v1版本
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: productpage spec: hosts: - productpage http: - route: - destination: host: productpage subset: v1 --- apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: details spec: hosts: - details http: - route: - destination: host: details subset: v1 --- apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: ratings spec: hosts: - ratings http: - route: - destination: host: ratings subset: v1 --- apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews spec: hosts: - reviews http: - route: - destination: host: reviews subset: v1
|
我们刷新下/productage页面,发现流量确实都路由到reviews:v1版本了,看下reviews:v1日志

reviews:v1日志中确实有访问日志,一会我们将流量镜像到reviews:v2版本,目前reviews:v2是没有访问日志的
将流量镜像到reviews:v2版本
应用virtualservice规则
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: reviews spec: hosts: - reviews http: - route: - destination: host: reviews subset: v1 mirror: host: reviews subset: v2
|
刷新/productage页面,查看reviews的v1和v2版本的日志


我们发现2个版本的微服务版本日志中都有访问日志的输出,v1访问的流量确实被镜像到了v2版本中去