跳到主要内容

流量打标

为指定 workload 的出流量自动加上特定 header

label-outbound-traffic.yaml
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: label-outbound-traffic
namespace: test # 指定 workload 所在命名空间,改为 istio-system 表示不限制命名空间
spec:
workloadSelector: # 选中指定 workload,去掉表示对所有 workload 生效
labels:
app: productpage
configPatches:
- applyTo: HTTP_FILTER
match:
context: SIDECAR_OUTBOUND
listener:
filterChain:
filter:
name: envoy.http_connection_manager
subFilter:
name: envoy.router
patch:
operation: INSERT_BEFORE
value:
name: envoy.lua
typed_config:
"@type": "type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua"
# 自动加上 key 为 workload 的 header,value 为 workload 的具体名称,key 和 value 均可根据需求自定义
inlineCode: |
function envoy_on_request(request_handle)
request_handle:headers():add("workload", os.getenv("ISTIO_META_WORKLOAD_NAME"))
end