0

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

我无法找到这种情况的文档。有这样的拒绝所有政策

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

但它适用于同一命名空间中的 pod 级别。我怎样才能修改它以满足我的要求?

4

1 回答 1

2

参考这里的文档

  1. 标记开发环境中的所有命名空间environment=dev

  2. 标记生产环境中的所有命名空间environment=prod

然后你可以有如下网络策略

  1. 您已经拥有的默认拒绝策略
  2. 制定政策,将来自带有标签的命名空间的 pod 流量列入白名单environment=prod

如下

apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: access-nginx
spec:
  podSelector: {}
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          environment: "prod"
于 2020-06-08T05:59:27.343 回答