無効なセレクター
このメッセージは、`AuthorizationPolicy`、`RequestAuthentication`、`Telemetry`、または`WasmPlugin`などのポリシーのワークロードセレクターが、Kubernetes Gateway内のポッドを効果的にターゲットとしていない場合に発生します。
例
ポリシーのセレクターがKubernetes Gatewayと一致する場合、次のようなメッセージが表示されます。
Warning [IST0166] (AuthorizationPolicy default/ap-ineffective testdata/k8sgateway-selector.yaml:47) Ineffective selector on
Kubernetes Gateway bookinfo-gateway. Use the TargetRef field instead.
たとえば、次のようなKubernetes Gatewayポッドがある場合
apiVersion: v1
kind: Pod
metadata:
annotations:
istio.io/rev: default
labels:
gateway.networking.k8s.io/gateway-name: bookinfo-gateway
name: bookinfo-gateway-istio-6ff4cf9645-xbqmc
namespace: default
spec:
containers:
- image: proxyv2:1.21.0
name: istio-proxy
apiVersion: security.istio.io/v1
kind: AuthorizationPolicy
metadata:
namespace: default
name: ap-ineffective
spec:
selector:
matchLabels:
gateway.networking.k8s.io/gateway-name: bookinfo-gateway
action: DENY
rules:
- from:
- source:
namespaces: ["dev"]
to:
- operation:
methods: ["POST"]
そして、次のような`selector`を持つ`AuthorizationPolicy`がある場合
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: telemetry-example
namespace: default
spec:
tracing:
- randomSamplingPercentage: 10.00
selector:
matchLabels:
gateway.networking.k8s.io/gateway-name: bookinfo-gateway
targetRef:
group: gateway.networking.k8s.io
kind: Gateway
name: bookinfo-gateway
解決方法
ポリシーに`targetRef`と`selector`の両方がある場合、このメッセージは発生しません。例:
サイドカーまたはIstio Gatewayポッドには`selector`フィールドを、Kubernetes Gatewayポッドには`targetRef`フィールドを使用していることを確認してください。そうでない場合、ポリシーは適用されません。
apiVersion: telemetry.istio.io/v1
kind: Telemetry
metadata:
name: telemetry-example
namespace: default
spec:
tracing:
- randomSamplingPercentage: 10.00
targetRef:
group: gateway.networking.k8s.io
kind: Gateway
name: bookinfo-gateway