![](/img/trans.png)
[英]network policy - Kubernetes : Allow traffic from one namespace to pods listening on one port
[英]How to use network policy to allow access to pods only from a specific namespace to another in kubernetes?
当您显然不能在 netpol 中使用spec.namespaceSelector
时,我该如何实现?
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-from-ns-netpol
namespace: special-ns
spec:
namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: app
ingress:
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: cka-exam
所以,这是行不通的。
您提供的 API 资源定义似乎不符合架构。 Kubernetes v1.26 中的NetworkPolicySpec显示允许以下字段: [policyTypes, podSelector, egress, ingress]
。
我建议查看网络策略文档。
定义网络策略时,将其分配给命名空间。 然后,您可以使用.spec.podSelector
属性将该网络策略缩小为仅适用于选择的 Pod(在该命名空间中)。 正如文档所述,“一个空的podSelector
选择命名空间中的所有 pod。”
这意味着如果您想阻止所有进入命名空间special-ns
中的 Pod 的入口流量,您可以将网络策略分配给special-ns
命名空间并将.spec.podSelector
属性留空,以便它选择special-ns
中的所有 Pod . 如果没有定义任何ingress
规则,资源将是默认拒绝所有入口流量定义。
然后,您可以使用ingress
属性来定义传入流量的来源限制或规则。 看起来您现有的定义是正确的,因此仅允许来自命名空间cka-exam
中存在的 Pod 的入口流量。
kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
name: allow-from-ns-netpol
namespace: special-ns
spec:
ingress:
- from:
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: cka-exam
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.