在我的K8S集群中,我拥有所有微服务的“私有(private)”部分和“公共(public)”部分。
公共(public)部分是区块链,我希望能够为客户提供一个区块链节点,以便他们可以审计私有(private)区块链。
现在,如果我在K8S中注册一个节点,它将能够与所有 namespace 进行通信。
我的微服务应该能够在区块链中进行读取和写入,但是区块链节点不应该能够与其他 namespace 进行通信。

最佳答案

您可以使用network policy来限制不同 namespace 的pod之间的通信。因此,用于区块链的 namespace 可以具有标签,并且您可以使用网络策略仅允许来自具有该标签的 namespace 中的Pod的通信。
从文档herenamespaceSelector:这将选择特定的 namespace ,应将所有Pod用作该 namespace 的入口源或出口目的地

  ...
  ingress:
  - from:
    - namespaceSelector:
        matchLabels:
          app: blockchain
  ...

关于kubernetes - 我如何在Kubernetes中拥有2个独立的命名空间而无需通信,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62557118/

10-16 18:17