首页 > 解决方案 > 使用网络策略将命名空间中的 pod 与其他命名空间隔离

问题描述

有没有办法将一个命名空间与访问其他命名空间隔离,但仍然能够离开集群我有 10 个命名空间,我希望这 1 个命名空间内的 pod 不能与其他命名空间通信,但仍然能够出去集群到外部资源,而这仅应用于 1 个命名空间,其他 9 个命名空间可以相互通信

标签: kuberneteskubernetes-networkpolicy

解决方案


试试这个

kind: NetworkPolicy
apiVersion: networking.k8s.io/v1
metadata:
  namespace: default //your 1 namespaces on which you want to deny all traffic.
  name: deny-from-other-namespaces
spec:
  podSelector:
    matchLabels:
  ingress:
 - from:
    - podSelector: {}

请注意有关此清单的一些事项:

  • 命名空间:默认将其部署到默认命名空间。请根据您的需要进行更改。
  • 它将策略应用于默认命名空间中的所有 pod,因为
    spec.podSelector.matchLabels 为空,因此会选择所有 pod。
  • 它允许来自默认命名空间中所有 pod 的流量,因为
    spec.ingress.from.podSelector 为空,因此会选择所有 pod。这是一个很棒的关于网络策略的 github repo,我从中取了这个例子。

推荐阅读