> For the complete documentation index, see [llms.txt](https://rocdu.gitbook.io/deep-understanding-of-istio/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rocdu.gitbook.io/deep-understanding-of-istio/4/5/5-1.md).

# 路由

## 请求路由

## 配置

应用虚拟服务和目标规则

```
kubectl apply -f samples/bookinfo/networking/virtual-service-all-v1.yaml
kubectl apply -f samples/bookinfo/networking/destination-rule-all.yaml
```

在这种情况下所有服务的v1版本将处理流量

## 根据header进行流量处理

接下来,您将更改路由配置,以便将来自特定用户的所有流量路由到特定服务版本。在这种情况下,来自名为Jason的用户的所有流量都将被路由到reviews:v2,其他的服务将继续转发到v1版本。

请注意,Istio对用户身份没有任何特殊的内置了解。该示例通过以下事实启用:productpage服务将自定义end-user标头添加到对评论服务的所有出站HTTP请求中。

* 运行以下命令以启用基于用户的路由:

```
kubectl apply -f samples/bookinfo/networking/virtual-service-reviews-test-v2.yaml
```

确认规则已创建:

```
kubectl get virtualservice reviews -o yaml
apiVersion: networking.istio.io/v1beta1
kind: VirtualService
...
spec:
  hosts:
  - reviews
  http:
  - match:
    - headers:
        end-user:
          exact: jason
    route:
    - destination:
        host: reviews
        subset: v2
  - route:
    - destination:
        host: reviews
        subset: v1
```

* 在/productpageBookinfo应用的上,以用户身份登录jason。

刷新浏览器。发现星级评分显示在每个评论的旁边。

* 以其他用户身份登录(选择您想要的任何名称)。

刷新浏览器。现在星星消失了。这是因为流量被路由到reviews:v1除Jason之外的所有用户。
