如何阻止来自Kubernetes中特定名称空间的流量

时间:2020-06-08 05:02:06

标签: kubernetes kubernetes-networkpolicy

我的k8集群中有多个名称空间。我想要的是开发名称空间中的Pod可以与其他名称空间中的所有其他Pod通信,但是不应该与生产名称空间中的资源通信。

在这种情况下,我找不到文档。否认所有这样的政策

---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-egress
spec:
  podSelector: {}
  policyTypes:
  - Egress
  - Ingress

,但适用于同一名称空间中的pod级别。如何修改它以满足我的要求?

1 个答案:

答案 0 :(得分:2)

参考文档here

  1. 使用environment=dev

  2. 在开发环境中标记所有名称空间
  3. 在生产环境中使用environment=prod

  4. 标记所有名称空间

然后您可以具有以下网络策略

  1. 默认的默认拒绝策略
  2. 已制定一项政策,将来自带有标签environment=prod的命名空间的Pod流量白名单

如下

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: access-nginx
spec:
  podSelector: {}
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          environment: "prod"