У меня проблема, когда два EnvoyFilter с разными workloadSelector, которые должны применяться к разным рабочим нагрузкам модулей, вместо этого применяются к обеим рабочим нагрузкам. 9, и у меня есть два экземпляра одной и той же рабочей нагрузки развертывания в двух разных пространствах имен, и каждая рабочая нагрузка имеет сопутствующий элемент. К каждому развертыванию применяются разные метки.
kubectl get po --show-labels --all-namespaces -l app=myapp,namespace
NAMESPACE NAME ...truncated... LABELS
first myapp-58489c8fcd-kch9f ...truncated... app=myapp,namespace=first ...truncated...
second myapp-6f58dd65dd-tdjm7 ...truncated... app=myapp,namespace=second ...truncated...
Я хочу присоединить разные экземпляры Lua EnvoyFilter к каждой рабочей нагрузке в каждом пространстве имен, чтобы у каждого был свой собственный фильтр. Так, например, фильтр для первого пространства имен выглядит следующим образом. Второй аналогичен, но с другим workloadSelector
apiVersion: networking.istio.io/v1alpha3
kind: EnvoyFilter
metadata:
name: first-myapp-filter
...truncated...
spec:
workloadSelector:
labels:
app: myapp
namespace: first
Однако я вижу, что данная рабочая нагрузка обрабатывает ОБЕИХ envoyfilters, а не только фильтр, который соответствует селектору. Когда я смотрю на слушателей модуля в первом пространстве имен с istioctl, я вижу, что к нему прикреплены ОБЕИ фильтры.
"httpFilters": [
{"name": "envoy.lua", "config": {"inlineCode": "function ...truncated... end\n" }},
{"name": "envoy.lua", "config": {"inlineCode": "function ...truncated... end\n" }}
Селектор, похоже, работает не так, как я ожидал. Есть идеи, как отлаживать?