流量会转发给 VirtualService,是因为 Istio 中的 Ingress Gateway 配置了与 VirtualService 相关的路由规则。
Istio Ingress Gateway 是集群外部访问 Istio 服务网格的入口,它可以将来自 Internet 的请求转发到 Kubernetes 集群中的对应服务。在配置 Ingress Gateway 的时候,我们可以指定要使用哪个 VirtualService 对象来匹配该请求,并按照 VirtualService 对象中定义的路由规则进行转发。
举个例子,如果我们在 VirtualService 对象中定义了一个路径匹配规则 /foo,并将其指向后端服务 my-service。当一个请求到达 Istio Ingress Gateway 并携带了 /foo 路径时,Ingress Gateway 就会查找所有已定义的 VirtualService 对象,并尝试将该请求与 /foo 路径匹配的对象联系起来。一旦匹配成功,Ingress Gateway 就会按照该对象中定义的后端服务转发请求到 my-service。
因此,在 Istio 中流量能够被正确地转发到后端服务,需要先通过 Ingress Gateway 和 VirtualService 进行路由配置和匹配。




