【问题标题】:Tenant isolation with Kubernetes on networking level在网络级别使用 Kubernetes 进行租户隔离
【发布时间】:2018-02-13 16:30:20
【问题描述】:

我们想要运行一个需要在网络级别进行租户分离的多租户场景。

这个想法是每个租户都会收到一个专用节点和一个其他租户节点可以加入的专用网络。租户节点应该能够在该网络中相互交互。

网络不应相互通信(真正的网络隔离)。

是否有任何架构模式可以实现这一点?

  • 每个租户一个 Kubernetes 集群?
  • 一个 Kubernetes 集群供所有租户使用,每个租户一个子网?
  • 一个跨 VPC 的 Kubernetes 集群(用 AWS 术语来说)?

【问题讨论】:

    标签: kubernetes multi-tenant


    【解决方案1】:

    在 Kubernetes 中处理多租户的常规方法是使用命名空间。但这是在 kube 集群内,这意味着您仍然拥有所有租户共享的相同底层网络解决方案。这实际上很好,因为您有 Network Policies 来限制集群中的网络。

    您显然可以为每个租户运行自治集群,但这并不完全是多租户,只是多个集群。可以在节点级别配置网络以按预期进行路由,但您仍然会遇到跨集群服务发现等问题。联合可以对此有所帮助,但我仍然建议采用命名空间+策略方法。

    【讨论】:

      【解决方案2】:

      我看到了四种在网络级别运行多租户 k8s 集群的方法:

      1. Namespaces
      2. Ingress rules
      3. allow/deny and ingress/egress Network Policies
      4. Network-aware Zones

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-03-12
        • 2015-08-02
        • 2015-07-23
        • 2015-08-19
        • 2022-07-29
        • 1970-01-01
        • 2018-11-16
        相关资源
        最近更新 更多