#envoyproxy #istio-sidecar
#envoyproxy #istio-sidecar
Вопрос:
Я пытаюсь заставить envoyFilter работать в istio-sidecar.
Кажется, что :
- Происходит внедрение. Поскольку мой фильтр присутствует в ресурсах моего кластера, и istiod загружает мои коляски всякий раз, когда я обновляю фильтр. (И мои модули и мой фильтр находятся в одном пространстве имен)
- Метка, которую я использую для выбора, присутствует в модуле.
Но мой скрипт полностью игнорируется. Пожалуйста, что я пропустил?
PS: я получил lua из ссылки envoy :
- https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/lua_filter.html?выделить=request_handle#конфигурация
- https://www.envoyproxy.io/docs/envoy/latest/configuration/http/http_filters/lua_filter#respond
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. Недавняя функция выполняет свою работу.
Ответ №1:
Я думаю, что вам следует изменить contect на «context: GATEWAY», поскольку он предназначен для входного трафика и должен применяться ко всем шлюзам.
Затем вы можете проверить, существует ли он, выполнив дамп конфигурации: kubectl exec $pod -n $namespace -c istio-proxy — pilot-agent запрос GET config_dump> dump.json
И выполните поиск «authent-filter», чтобы узнать, применен ли он.