Kubernetes 当下游服务抛出5xx(500、502、503、504)错误时,Istio断路器未在连续错误上断开电路
我有一些微服务,客户服务和客户评级服务。前者调用后者 我在调用客户评级服务时设置了一个断路器,并强制此服务始终抛出5xx错误以验证断路器。不管客户服务部怎么称呼它,显然电路从来没有断过 客户评级服务-Istio虚拟服务Kubernetes 当下游服务抛出5xx(500、502、503、504)错误时,Istio断路器未在连续错误上断开电路,kubernetes,openshift,istio,circuit-breaker,Kubernetes,Openshift,Istio,Circuit Breaker,我有一些微服务,客户服务和客户评级服务。前者调用后者 我在调用客户评级服务时设置了一个断路器,并强制此服务始终抛出5xx错误以验证断路器。不管客户服务部怎么称呼它,显然电路从来没有断过 客户评级服务-Istio虚拟服务 ... spec: hosts: - customer-rating-service gateways: ~ http: - route: - destination: host: customer-rating
...
spec:
hosts:
- customer-rating-service
gateways: ~
http:
- route:
- destination:
host: customer-rating-service
subset: v1
...
spec:
host: customer-rating-service
trafficPolicy:
outlierDetection:
baseEjectionTime: 30s
consecutiveErrors: 1
maxEjectionPercent: 100
minHealthPercent: 0
tls:
mode: ISTIO_MUTUAL
subsets:
- labels:
version: v1
name: v1
客户评级服务-Istio目的地规则
...
spec:
hosts:
- customer-rating-service
gateways: ~
http:
- route:
- destination:
host: customer-rating-service
subset: v1
...
spec:
host: customer-rating-service
trafficPolicy:
outlierDetection:
baseEjectionTime: 30s
consecutiveErrors: 1
maxEjectionPercent: 100
minHealthPercent: 0
tls:
mode: ISTIO_MUTUAL
subsets:
- labels:
version: v1
name: v1
正如您所见,我已经设置了连续错误:1
,因此在第一次从客户服务调用到客户评级服务后,由于这会返回5xx错误(我尝试抛出不同的错误500、502、503…),电路应该会断开。但是,每次后续调用都会到达客户评级服务。问题在哪里
注意:每个服务只有一个实例 此功能适用于Istio 1.3(但不适用于1.2)。请参见我在中提出的问题,如果您的意思是“在github上报告”,请继续。我已经提供了更多关于发生这种情况的原因的信息: