我想分析一个解决方案,以隔离专用于每个用户(或我的客户端)的环境。
每个客户都有一个私人环境:
所有客户端都将在同一版本上运行相同的应用程序。
为什么我认为这是一个很好的解决方案?
我不知道这个架构是否适应了,我可以在同一个集群中拥有1000个用户,因此有1000个名称空间。
我不知道这是否是正确的思考方式。有任何反馈或任何人可以帮助完成这种方法会很棒吗?
答案 0 :(得分:2)
你绝对可以做到这一点。虽然,Kubernetes没有提供任何机制来隔离命名空间中的运行pod。一个命名空间中的pod可以与另一个pod联系。要在命名空间之间实现网络级隔离,您需要使用类似Calico的内容。
Calico和Kubernetes已被许多私人团体用于支持多租户架构(基本上是您描述的场景)。我个人用它来扩展到100多个客户端(每个客户端运行1个数据库+ redis和10个以上的服务)。
Kubernetes每个节点限制1000个pod。因此,对于您的1000个客户端(假设每个运行3个服务+ 1个DB),您将需要至少4个节点来支持此架构。
我不是这些技术的专家。但是所有这些技术都是新的并且正在迅速变化,因此它具有自己的优势和劣势。所以我不能说这将工作或无法正常工作。这个领域是如此复杂,我想,你必须弄脏你的膝盖才能找到答案。
对我们来说,我们还没有遇到障碍。但我们正在逐渐远离这种架构,并在客户端的基础架构上托管集群。这使我们的架构更简单,更易于维护和推理。