使用Kubernetes命名空间隔离用户。这种架构是否适应了?

时间:2016-11-28 21:19:42

标签: cloud kubernetes google-cloud-platform

我想分析一个解决方案,以隔离专用于每个用户(或我的客户端)的环境。

每个客户都有一个私人环境:

  • WebUI中
  • mongodb数据库
  • 专用于API的应用程序的3个微服务

所有客户端都将在同一版本上运行相同的应用程序。

为什么我认为这是一个很好的解决方案?

  • Facilate限制名称空间的配额
  • 严格按用户隔离,以确保安全等。
  • 易于扩展
  • ...

我不知道这个架构是否适应了,我可以在同一个集群中拥有1000个用户,因此有1000个名称空间。

我不知道这是否是正确的思考方式。有任何反馈或任何人可以帮助完成这种方法会很棒吗?

enter image description here

1 个答案:

答案 0 :(得分:2)

你绝对可以做到这一点。虽然,Kubernetes没有提供任何机制来隔离命名空间中的运行pod。一个命名空间中的pod可以与另一个pod联系。要在命名空间之间实现网络级隔离,您需要使用类似Calico的内容。

Calico和Kubernetes已被许多私人团体用于支持多租户架构(基本上是您描述的场景)。我个人用它来扩展到100多个客户端(每个客户端运行1个数据库+ redis和10个以上的服务)。

Kubernetes每个节点限制1000个pod。因此,对于您的1000个客户端(假设每个运行3个服务+ 1个DB),您将需要至少4个节点来支持此架构。

我不是这些技术的专家。但是所有这些技术都是新的并且正在迅速变化,因此它具有自己的优势和劣势。所以我不能说这将工作无法正常工作。这个领域是如此复杂,我想,你必须弄脏你的膝盖才能找到答案。

对我们来说,我们还没有遇到障碍。但我们正在逐渐远离这种架构,并在客户端的基础架构上托管集群。这使我们的架构更简单,更易于维护和推理。