VirtualServiceIneffectiveMatch
當虛擬服務包含一個永遠不會被使用的匹配規則時,會出現此訊息,因為先前的規則指定了相同的匹配。
範例
您將會收到此訊息
Info [IST0131] (VirtualService tls-routing.default) VirtualService rule #1 match #0 is not used (duplicates a match in rule #0).
當您的叢集具有以下虛擬服務時
apiVersion: networking.istio.io/v1
kind: VirtualService
metadata:
name: tls-routing
spec:
hosts:
- www1.googleapis.com
- api1.facebook.com
tls:
- match:
- port: 2443
sniHosts:
- www1.googleapis.com
route:
- destination:
host: www1.googleapis.com
- match:
- port: 2443
sniHosts:
- www1.googleapis.com
route:
- destination:
host: api1.facebook.com
在此範例中,虛擬服務針對相同的匹配指定了兩個不同的目標。 Istio 將使用第一個匹配,並且永遠不會將流量傳送到第二個目標。
如何解決
如果您需要流量傳送到多個位置,請使用 mirror
。
重新排序您的路由,使最明確的路由排在最前面。將「全部捕獲」路由放在最後。