问题
我们在default命名空间部署bookinfo应用,我们在另外一个命名空间foo配置虚拟服务和目标规则,将各个服务的流量全部路由到v1版本,如下图所示:
Bookinfo应用:
在foo命名空间定义的虚拟服务和目标规则:
此时通过Ingress gateway访问bookinfo应用显示对details和reviews服务的调用失败了。
原因
查看productpage日志可以看到,找不到上游的details和reviews服务(NC)。
原因在于目标规则的定义没有生效,我们在虚拟服务里定义的规则需要路由到v1版本,但是没有找到目标规则对v1版本的定义;这里建议您把目标规则定义到目标服务所在的命名空间或者根命名空间(默认istio-system)。
在default命名空间重新定义了目标规则之后,服务可以正常访问了: