Kubernetes - 为每个客户创建一个单独的命名空间

Kubernetes - 为每个客户创建一个单独的命名空间

我想在 Kubernetes 中部署一个传统的单片应用程序。
成千上万的客户使用此应用程序,每个客户都有自己的应用程序实例。如果我们有 5 个客户,我们应该运行此应用程序的 5 个独立实例。
该应用程序还调用 Kubernetes API 来运行一些作业。

我想确保一切都是隔离的,为每个客户创建单独的命名空间是个好主意吗?这会导致一些性能问题吗?有没有更好的解决方案?

答案1

简短回答:是的,命名空间隔离是朝着正确方向迈出的一大步,但是在尝试隔离集群资源时,IAM 配置和明确的 RBAC 策略是必须的。

长答案:这里你应该担心的是集群成本,Kubernetes 在设计上具有弹性和灵活性,因此如果你遇到性能瓶颈,只需一个命令即可扩展。如果你的集群不是本地集群,并且你计划使用云服务,我强烈建议Google Kubernetes 引擎 (GKE)因为它已经针对支持多租户进行了优化。

GCP 团队详述 K8s 多租户的最佳实践这里,我认为它将为您的问题提供更清晰的答案。

相关内容