我们的命名空间中有3-4个不同的NetworkPolicy,它们是基于Pod选择器应用的。想知道有没有办法从Pod端知道哪个NetworkPolicy应用于它?
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中未显示
kubectl describe pod-name
因此,您可以使用上面的命令或描述networkpolicy本身来获得POD选择器,从而获得一个概念。
kubectl describe networkpolicies <name of policy>
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的网络策略规则
kubectl get network policy
kubectl get pod -l key=value
kubectl np-viewer -p pod-name
2条答案
按热度按时间jmo0nnb31#
如果使用POD选择器,则可以使用简单的方法
这将获取策略选择器,并将其用作输入和列出Pod
从Pod侧任何方向
您可以检查no POD侧,但我在某处看到
kubectl describe pod-name
可能显示我测试的网络策略,至少在minikube中未显示因此,您可以使用上面的命令或描述networkpolicy本身来获得POD选择器,从而获得一个概念。
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的网络策略规则