[英]Istio RouteRules doesn't work together
我有两个Istio RouteRule
用于httpDelay
:
apiVersion: config.istio.io/v1alpha2
kind: RouteRule
metadata:
name: foo-delay
spec:
destination:
name: foo-server
precedence: 5
route:
- labels:
serving: "true"
httpFault:
delay:
fixedDelay: 7.000s
percent: 100
对于httpReqTimeout
:
apiVersion: config.istio.io/v1alpha2
kind: RouteRule
metadata:
name: foo-timeout-default
spec:
destination:
name: foo-server
route:
- labels:
serving: "true"
httpReqTimeout:
simpleTimeout:
timeout: 5s
precedence: 3
但是,我无法使这两个RouteRules
一起工作。 对于此配置,我对foo-server
有延迟,但请求超时不起作用,因此我从foo-server
接收数据。 我试图更改httpDelay
规则precedence: 2
。 在这种情况下,根本不会有任何延迟,并且我认为httpReqTimeout
可以正常工作。 在这两种情况下,我都可以看到创建了两个规则:
>istioctl get routerules
NAME KIND NAMESPACE
foo-delay RouteRule.v1alpha2.config.istio.io default
foo-timeout-default RouteRule.v1alpha2.config.istio.io default
为什么这两个RouteRules
不能一起使用?
这里发生两件事。 Istio中的RouteRule“优先级”不会推断出合并。 因此,具有最高优先级和匹配条件的规则将首先匹配,而其他所有规则都将被特使代理忽略。 此外,即使将这两个规则合并为一个规则,不幸的是,特使无法处理这种情况。 编写使节以使错误在任何超时/重试之前适用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.