Kubernetes NetworkPolicy -是否有方法确定哪些NetworkPolicy应用于Pod

uz75evzq  于 2023-02-15  发布在  Kubernetes
关注(0)|答案(2)|浏览(116)

我们的命名空间中有3-4个不同的NetworkPolicy,它们是基于Pod选择器应用的。想知道有没有办法从Pod端知道哪个NetworkPolicy应用于它?

jmo0nnb3

jmo0nnb31#

如果使用POD选择器,则可以使用简单的方法

kubectl get pod -l \
  $( \
        kubectl get netpolicies <netpolicy-name> \
        -o jsonpath="{.spec.podSelector.matchLabels}"| \
        jq -r 'to_entries|map("\(.key)=\(.value)")[]' \
  )

这将获取策略选择器,并将其用作输入和列出Pod

从Pod侧任何方向

您可以检查no POD侧,但我在某处看到kubectl describe pod-name可能显示我测试的网络策略,至少在minikube中未显示

因此,您可以使用上面的命令或描述networkpolicy本身来获得POD选择器,从而获得一个概念。

kubectl describe networkpolicies <name of policy>
eh57zj3b

eh57zj3b2#

kubectl get network policy的输出应该显示pod选择器,然后可以使用kubectl get pod -l key=value列出受影响的pod。
您可以使用bash脚本/函数自动执行此操作。
我还建议检查“kubectl np-viewer”,这是一个kubectl插件,可以是found here。这个插件有你要求的开箱即用。
kubectl np-viewer -p pod-name打印影响当前命名空间中特定Pod的网络策略规则

相关问题