【问题标题】:How to disable istio retry如何禁用 istio 重试
【发布时间】:2022-02-17 20:58:17
【问题描述】:

我们正在使用 Istio 1.11.2 并面临 Istio 重试的一些问题。

为了禁用自动重试,我们在 http 列表的 object 中添加了以下块。但是,Istio 仍然会重试请求。

apiVersion: networking.istio.io/v1beta1
kind: VirtualService
metadata:
  name: gateway
  namespace: development
spec:
  gateways:
  - development/ingressgw
  hosts:
  - gateway.dev.rtm.com
  http:
  - match:
    - uri:
        prefix: /
    retries:
      attempts: 0
    route:
    - destination:
        host: gateway.development.svc.cluster.local
        port:
          number: 443

【问题讨论】:

  • 这些重复请求有多少?您的网络基础设施究竟是什么样的?除了 VirtualService 你还有什么?你见过this question吗?
  • 503 重复了 3 次,我们重试尝试次数为 0。它是 istio 错误吗?我们正在使用 istio 1.11.2
  • 你能回答我的其他问题吗?
  • 这些重复请求有多少?从 appinsight 日志中我们可以确定,每次都会发生 3 次尝试,尽管在虚拟服务中重试尝试设置为 0,这在代理配置中显示不一样,其中 numberretry 仍然显示为默认值 2。似乎是这个问题和 istio 有一些与此相关的错误。
  • 您的网络基础架构到底是什么样的?我们的 AKS 集群配置了 istio 服务网格默认配置文件,每个应用程序都有单独的虚拟服务。它们与 ingressgateway 相关联。除了 VirtualService 你还有什么?虚拟服务以及目标规则

标签: istio istio-gateway istio-sidecar istio-operator


【解决方案1】:

您的 Istio 设置看起来不错。我检查并测试了它,在我的情况下一切都很好,我没有看到重复的连接尝试。 我也没有发现任何可能与此配置相关的错误。

此行为也可能是由应用程序本身引起的。请注意并确保应用程序没有重试策略。请参阅 this example 了解此类功能的工作原理。

还要确保您的 Istio 配置正确(主机、前缀、路由),并且您要准确检查此配置,而不是任何其他配置。您也可能设置了与您想要的不同的东西,因此它不起作用。您收到的值,3 次重复,可能表明 Istio 正在使用默认值。请参阅this issue 了解更多信息。

如果您确保您的 Istio 配置 100% 正确,并且您的应用程序没有在任何地方使用重试,请尝试使用命令 istioctl proxy-status <your service> 来验证特定服务的 Istio 特使配置,例如 this example。特别注意第2点in this paragraph

如果仍然没有帮助,请尝试在 https://discuss.istio.io/ 上创建一个线程。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-04-01
    • 2021-06-15
    • 2021-11-30
    • 1970-01-01
    • 1970-01-01
    • 2021-08-26
    • 1970-01-01
    • 2021-12-01
    相关资源
    最近更新 更多