Kubernetes 当下游服务抛出5xx(500、502、503、504)错误时,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

我有一些微服务,客户服务和客户评级服务。前者调用后者

我在调用客户评级服务时设置了一个断路器,并强制此服务始终抛出5xx错误以验证断路器。不管客户服务部怎么称呼它,显然电路从来没有断过

客户评级服务-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
客户评级服务-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上报告”,请继续。我已经提供了更多关于发生这种情况的原因的信息: