我正在尝试使envoyFilter在istio-sidecar中工作
似乎:
- 注入发生。因为我的过滤器存在于我的集群资源中,每当我更新过滤器时,istod就会推送到我的侧车。(和我的pod和我的过滤器在同一个命名空间)
- 我用来选择的标签出现在pod上。
但是我的脚本完全被忽略了。请问,我错过了什么?
PS:我从特使的参考得到lua:
- https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/lua_filter.html?highlight=request_handle配置
- https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/lua_filter
piVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: authent-filter
namespace: sma-app-integration
spec:
workloadSelector:
labels:
com.effia.smartaccess/secured: enabled
configPatches:
- applyTo: HTTP_FILTER
match:
context: SIDECAR_INBOUND
listener:
portNumber: 8080
filterChain:
filter:
name: "envoy.http_connection_manager"
subFilter:
name: "envoy.router"
patch:
operation: INSERT_FIRST
value:
name: envoy.filters.http.lua
typed_config:
"@type": "type.googleapis.com/envoy.extensions.filters.http.lua.v3.Lua"
inlineCode: |
function envoy_on_request(request_handle)
request_handle:respond({[":status"] = "100"},"nope")
end
编辑:我们不能让它工作,然后切换到Nginx。最近的一个功能可以完成这项工作。
我觉得你应该把content改成" context: gateway ";因为这是针对入口流量的,必须应用于所有网关。
然后你可以通过执行配置转储来检查它是否存在:kubectl exec $pod -n $namespace -c istio-proxy——pilot-agent request GET config_dump>dump.json
搜索" authenticate -filter"查看它是否被应用。