【问题标题】:Istio 1.3+ apply http filter only for specific routesIstio 1.3+ 仅对特定路由应用 http 过滤器
【发布时间】:2019-10-30 21:14:04
【问题描述】:

我有一个 EnvoyFilter 资源,它正在对身份验证服务进行 http 调用。此过滤器应用于 SIDECAR_INBOUND 并且运行良好。我只需要使用特定标签部署我的 POD 并应用过滤器。因此,该 POD 上的每个传入请求都通过此过滤器进行身份验证。

但最近,一些队友想要一个新功能:可以在同一个 POD 中拥有公共路由和私有路由。因此,只有在调用私有路由(例如 /private/getUsers 或 /public/getUsers)时,我才需要执行过滤器。

随着 Istio 1.3+ 版本的发布,我可以看到过滤器管理已经完全重构,具有新的功能和特性。但是文档不是很有帮助,不知道新版本的 EnvoyFilters 是否能够满足我的需求。

你知道它是否可能吗?

谢谢

【问题讨论】:

  • 能否也提供您的 K8s 版本?根据 Istio 文档:Istio 1.3 已在以下 Kubernetes 版本中进行了测试:1.13、1.14、1.15。
  • 今天我们使用 K8S 1.11.8 和 istio 1.2.5,我们最近部署了 istio 1.3.3。一切都在工作(和以前一样)

标签: kubernetes istio envoyproxy


【解决方案1】:

很遗憾,这不可能。您只能匹配提到的字段here,但不能匹配单个路由。

您可以在下面找到适用于所有路线但无法匹配特定路径的示例。

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: httproute
spec:
  configPatches:
  - applyTo: VIRTUAL_HOST
    patch:
      operation: MERGE
      value:
        request_headers_to_remove: [foo]

【讨论】:

    猜你喜欢
    • 2017-09-03
    • 2018-11-03
    • 2017-05-27
    • 1970-01-01
    • 2018-08-04
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 2020-04-03
    相关资源
    最近更新 更多