我有两个用于httpDelay的Istio RouteRule
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不能一起工作呢?
发布于 2018-02-28 05:48:11
这里发生了两件事。Istio中的RouteRule“优先级”不会推断合并。因此,具有最高优先级和匹配条件的规则将首先匹配,所有其他规则将被特使代理忽略。此外,即使您将这两个规则合并到一个规则中,不幸的是特使也无法处理这种情况。写入特使,以便在任何超时/重试之前应用故障
https://stackoverflow.com/questions/49013644
复制相似问题