【问题标题】:Istio Circuit Breaker who trips it?Istio Circuit Breaker 谁跳闸了?
【发布时间】:2020-09-24 11:25:30
【问题描述】:

我目前正在研究 Istio 1.6 版本的服务网格。数据平面(Envoy 代理)由控制平面配置。

  1. 当我通过创建目标规则配置断路器并且断路器打开时,客户端 Sidecar 代理是否已经返回 503 或服务器端 Sidecar 代理?
  2. 客户端 Sidecar 代理是自动将请求路由到另一个可用的服务实例,还是简单地将 503 返回到应用程序容器?

提前致谢!

【问题讨论】:

  • 断路器的技术文档很少。我需要一些时间来测试从哪里发送错误 503。同时在istio documentation 中有很好的分步示例。

标签: istio circuit-breaker


【解决方案1】:
  1. 在日志条目中,您可以检查它们以找出被断路器停止的连接的两端。来自istio-proxy 容器的日志消息中存在连接双方的 IP 地址。
  {
  insertId: "..."
  labels: {
    k8s-pod/app: "circuitbreaker-jdwa8424"
    k8s-pod/pod-template-hash: "..."
  }
  logName: ".../logs/stdout"
  receiveTimestamp: "2020-06-09T05:59:30.209882320Z"
  resource: {
    labels: {
      cluster_name: "..."
      container_name: "istio-proxy"
      location: "..."
      namespace_name: "circuit"
      pod_name: "circuit-service-a31cb334d-66qeq"
      project_id: "..."
    }
    type: "k8s_container"
  }
  severity: "INFO"
  textPayload: "[2020-06-09T05:59:27.854Z] UO 0 0 0 "-" - - 172.207.3.243:443 10.1.13.216:36774 "
  timestamp: "2020-06-09TT05:59:28.071001549Z"
  }

消息来自运行 Envoy 的 istio-proxy 容器,该容器受请求发送到的 CircuitBreaker 策略的影响。还有中断连接的源和目标的 IP 地址。

  1. 它将返回 503。有配置 retries 的选项,但是我没有测试它与 CircuitBreaker 的协同作用,如果之前返回错误,重试实际上会转到不同的 pod。

也看看我找到的CircuitBreaker最详细的解释。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2021-05-12
    • 1970-01-01
    • 2020-03-04
    • 2021-01-11
    • 2018-10-05
    • 1970-01-01
    • 2021-01-10
    • 2020-06-30
    • 1970-01-01
    相关资源
    最近更新 更多