在k8s networkpolicy docs 你读到:
默认情况下,Pod 是非隔离的;他们接受来自任何
来源。
Pod 通过选择它们的 NetworkPolicy 被隔离。一次
在选择特定 pod 的命名空间中有任何 NetworkPolicy,
该 pod 将拒绝任何不允许的任何连接
网络策略。 (命名空间中未被选中的其他 pod
任何 NetworkPolicy 都将继续接受所有流量。)
网络政策不冲突;它们是添加剂。如果有任何政策或
策略选择一个 pod,该 pod 被限制在允许的范围内
这些策略的入口/出口规则的联合。因此,顺序
评估不影响政策结果
这意味着一旦您使用网络策略分配(选择)一个 pod,您就永远不会设置拒绝规则,因为默认情况下每一个都被拒绝。您只指定允许规则。
这个beeing解释让我们回到k8s docs,你可以阅读以下内容:
在入口中可以指定四种选择器
从节或出口到节:
podSelector:这会选择与
应允许作为入口源或出口的 NetworkPolicy
目的地。
namespaceSelector:选择特定的命名空间
应允许 Pod 作为入口源或出口目的地。
namespaceSelector 和 podSelector:单个 to/from 条目
同时指定 namespaceSelector 和 podSelector 选择特定的
特定命名空间中的 Pod
[...]
我不会在这里粘贴所有文档,请检查其余的 here。
现在回答你的问题:"I need to know if i can do it without adding a labels to namspace and pod or not ?"
您在上面提到的文档中应该注意的是,您只能使用标签来定位命名空间和 pod。
并且当你不使用命名空间标签选择器时,选择器默认为部署 networkpolicy 的命名空间。
所以,是的,只要您在要定位的命名空间中部署网络策略,您就可以在不向命名空间添加标签的情况下执行此操作。并且你也可以在不给 pod 添加标签的情况下做到这一点,只要这是命名空间中唯一的 pod。