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

如何在Anthos Service Mesh中移除指定自定义Header?

移除Anthos Service Mesh自动添加的x-envoy-decorator-operation响应头

你可以通过EnvoyFilter自定义资源直接移除这个暴露集群信息的响应头,无需配置mTLS或修改业务代码,具体实现如下:

方案:使用响应头修改过滤器

通过Envoy自带的response_headers_modifier过滤器,在响应发送前移除指定头,配置简洁且可靠:

1. 创建EnvoyFilter配置文件

根据你的服务场景选择对应配置:

场景1:服务端向外部客户端返回响应时移除头

(比如你的stage-app服务接收外部请求,返回响应时去掉该头)

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: remove-decorator-header
  namespace: stage-app  # 替换为服务所在命名空间
spec:
  workloadSelector:
    labels:
      app: stage-app  # 替换为你的服务标签,匹配目标sidecar
  configPatches:
    - applyTo: HTTP_FILTER
      match:
        context: SIDECAR_INBOUND
        listener:
          filterChain:
            filter:
              name: "envoy.filters.network.http_connection_manager"
              subFilter:
                name: "envoy.filters.http.router"
      patch:
        operation: INSERT_BEFORE
        value:
          name: envoy.filters.http.response_headers_modifier
          typed_config:
            "@type": "type.googleapis.com/envoy.extensions.filters.http.response_headers_modifier.v3.ResponseHeadersModifier"
            remove_headers:
              - "x-envoy-decorator-operation"

场景2:客户端调用上游服务时移除返回的头

(比如你的服务作为客户端,调用其他服务后收到的响应中包含该头,需要移除)

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: remove-decorator-header
  namespace: stage-app
spec:
  workloadSelector:
    labels:
      app: stage-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: INSERT_BEFORE
        value:
          name: envoy.filters.http.response_headers_modifier
          typed_config:
            "@type": "type.googleapis.com/envoy.extensions.filters.http.response_headers_modifier.v3.ResponseHeadersModifier"
            remove_headers:
              - "x-envoy-decorator-operation"

全局生效配置(所有服务都移除该头)

如果需要对集群内所有服务生效,把namespace改为istio-system,并去掉workloadSelector(不推荐随意全局修改,建议按需配置):

apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
  name: global-remove-decorator-header
  namespace: istio-system
spec:
  configPatches:
    - applyTo: HTTP_FILTER
      match:
        context: ANY
        listener:
          filterChain:
            filter:
              name: "envoy.filters.network.http_connection_manager"
              subFilter:
                name: "envoy.filters.http.router"
      patch:
        operation: INSERT_BEFORE
        value:
          name: envoy.filters.http.response_headers_modifier
          typed_config:
            "@type": "type.googleapis.com/envoy.extensions.filters.http.response_headers_modifier.v3.ResponseHeadersModifier"
            remove_headers:
              - "x-envoy-decorator-operation"

2. 部署并验证

执行命令应用配置:

kubectl apply -f <你的配置文件名>.yaml

重新发起请求后,检查响应头,x-envoy-decorator-operation应该已被移除。

这个方案完全不依赖mTLS,仅通过Anthos Service Mesh的原生Envoy配置实现,无需修改任何业务代码。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 07:20:10