You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置istio-sidecar envoyproxy不添加x-envoy-peer-metadata请求头?

如何禁用Istio Sidecar Envoy添加的x-envoy-peer-metadata和x-envoy-peer-metadata-id请求头

这两个请求头是Istio Sidecar在服务间通信时自动注入的元数据头,确实可以通过EnvoyFilter配置来禁用,以下是两种可行方案:

方案1:禁用所有Envoy自动添加的头(包含目标头)

通过开启路由过滤器的suppress_envoy_headers参数,可以一次性禁用包括x-envoy-peer-metadata、x-envoy-peer-metadata-id在内的所有Envoy默认注入头。

全局生效配置(所有Sidecar)

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: disable-envoy-metadata-headers
  namespace: istio-system
spec:
  configPatches:
    - applyTo: HTTP_FILTER
      match:
        context: SIDECAR_OUTBOUND
        listener:
          filterChain:
            filter:
              name: "envoy.filters.network.http_connection_manager"
              subFilter:
                name: "envoy.filters.http.router"
      patch:
        operation: MERGE
        value:
          typed_config:
            "@type": "type.googleapis.com/envoy.extensions.filters.http.router.v3.Router"
            suppress_envoy_headers: true

针对特定服务生效

修改metadata.namespace为目标服务所在命名空间,并添加workloadSelector指定服务标签:

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: disable-envoy-metadata-headers
  namespace: your-service-namespace
spec:
  workloadSelector:
    labels:
      app: your-target-app
  configPatches:
    - applyTo: HTTP_FILTER
      match:
        context: SIDECAR_OUTBOUND
        listener:
          filterChain:
            filter:
              name: "envoy.filters.network.http_connection_manager"
              subFilter:
                name: "envoy.filters.http.router"
      patch:
        operation: MERGE
        value:
          typed_config:
            "@type": "type.googleapis.com/envoy.extensions.filters.http.router.v3.Router"
            suppress_envoy_headers: true

方案2:仅移除指定的两个头(更精准)

如果需要保留其他Envoy默认头,仅移除x-envoy-peer-metadata和x-envoy-peer-metadata-id,可以使用Lua过滤器实现:

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: remove-specific-envoy-headers
  namespace: istio-system
spec:
  configPatches:
    - applyTo: HTTP_FILTER
      match:
        context: SIDECAR_OUTBOUND
        listener:
          filterChain:
            filter:
              name: "envoy.filters.network.http_connection_manager"
              subFilter:
                name: "envoy.filters.http.router"
      patch:
        operation: INSERT_BEFORE
        value:
          name: envoy.lua
          typed_config:
            "@type": "type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua"
            inline_code: |
              function envoy_on_request(request_handle)
                request_handle:headers():remove("x-envoy-peer-metadata")
                request_handle:headers():remove("x-envoy-peer-metadata-id")
              end

注意事项

  • 配置应用后,需滚动更新目标服务Pod以重启Sidecar,确保配置生效
  • 禁用这些头不会影响Istio核心流量管理、监控功能,但部分依赖服务元数据的高级规则(如基于元数据的路由)可能受影响
  • 安全文档建议禁用此类头的原因是它们可能泄露服务集群的元数据信息,禁用后可降低数据泄露风险

内容的提问来源于stack exchange,提问作者LarsMattssonNordnet

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:55:15