问题描述
我正在尝试在入站请求中向特定工作负载添加特定的“x-envoy...”标头。更准确地说,它是 x-envoy-max-retries
标头。
我是这样做的:
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
Metadata:
name: strip-filter
namespace: default
spec:
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.lua
typed_config:
'@type': type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua
inlineCode: |
function envoy_on_request(request_handle)
request_handle:headers():add("test-header","1")
request_handle:headers():add("x-envoy-max-retries","0")
request_handle:headers():add("test-header","2")
end
workloadSelector:
labels:
app: test-app
成功添加了 test-header
及其两个值 - 可以从 sidecar 代理的日志中观察到,也可以通过登录工作负载手动观察。但 x-envoy-max-retries
标头丢失(且未应用)。
我在进行内部调用(使用来自另一个工作负载的工作负载的完全限定名称)以及外部调用(通过 VirtualService)时观察到这一点。
任何想法如何解决这个问题?我不想使用 VirtualServices 及其重试属性来禁用重试,因此虚拟服务对我来说是行不通的。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)