VirtualServiceUnreachableRule
当虚拟服务包含一个永远不会被使用的匹配规则(因为之前的规则指定了相同的匹配)时,会出现此消息。当存在多个没有任何匹配的规则时,也会出现此消息。
示例
您将收到此消息
Warning [IST0130] (VirtualService sample-foo-cluster01.default) VirtualService rule #1 not used (only the last rule can have no matches).
当您的集群包含以下虚拟服务时
apiVersion: networking.istio.io/v1
kind: VirtualService
metadata:
name: sample-foo-cluster01
namespace: foo
spec:
hosts:
- sample.foo.svc.cluster.local
http:
- fault:
delay:
fixedDelay: 5s
percentage:
value: 100
route:
- destination:
host: sample.foo.svc.cluster.local
- mirror:
host: sample.bar.svc.cluster.local
route:
- destination:
host: sample.bar.svc.cluster.local
subset: v1
在此示例中,虚拟服务同时指定了故障和镜像。允许同时使用两者,但它们必须位于同一路由条目中。此处用户使用了两个不同的 http 路由条目(每个 -
一个),第一个覆盖了第二个。
如何解决
当您有一个没有 match
的 http
时,只能有一个 http 路由。在这种情况下,删除 mirror
之前的 "-"
表示存在一个匹配不上的路由,该路由同时注入故障和镜像,而不是一个路由注入故障,另一个路由镜像。
设置复杂路由时,请注意 YAML 格式。
重新排序您的路由,使最具体的路由排在最前面。将“捕获所有”路由放在最后。