> HTTP流量镜像指的是将流量转发到原目标服务的同时将流量给另外一个目标服务,请求正常的关注原始服务,而等待不用镜像的流量返回。
#### 什么场景需要用的流量镜像
例如上线了新的版本,但对于可靠性不是很有信心,可以将请求的流量将传入当前使用的版本镜像到新的版本来测试,对当前使用的版本不会产生影响,同时也可以测试到新版本的性能等方面。
#### 通过例子来理解
目前是使用的v1版本的api,由于业务需求新增v2版本的api,但v2没有经过完整的测试,SRE团队对于上线后不是很有信心去确保可靠性。所以采取了流量镜像针对v1版本的流量镜像到v2版本来进行可靠性验证。
apiVersionapps/v1 kindDeployment metadata labels appnginx namenginx-v1-deployment spec replicas1 selector matchLabels appnginx version1 strategy rollingUpdate maxSurge25% maxUnavailable25% typeRollingUpdate template metadata labels appnginx version1 spec containersimage'nginx:latest' namenginx-deployment ---apiVersionapps/v1 kindDeployment metadata labels appnginx namenginx-v2-deployment spec replicas1 selector matchLabels appnginx version2 strategy rollingUpdate maxSurge25% maxUnavailable25% typeRollingUpdate template metadata labels appnginx version2 spec containersimage'nginx:latest' namenginx-deployment ---apiVersionv1 kindService metadata namenginx-service spec portsport80 protocolTCP targetPort80 selector appnginx typeClusterIP ---apiVersionnetworking.istio.io/v1alpha3 kindDestinationRule metadata namenginx-dr spec hostnginx-service subsetsnamev1 labels version1namev2 labels version2---apiVersionnetworking.istio.io/v1alpha3 kindVirtualService metadata namenginx-vs spec hosts"*" httproutedestination hostnginx-service subsetv1 mirror hostnginx-service subsetv2
