我目前在一家软件开发公司工作。我们正在考虑创建一个单一的Kubernetes集群,在那里我们想要托管我们所有的客户端项目(这些项目彼此之间完全无关)。
我们的想法是为每个客户端都有一个名称空间,在每个名称空间中我们可以有多个部署用于开发、登台、生产等。
这是一个坏主意,我应该有一个集群为每个客户端?以前有人尝试过这样的东西吗?结果如何?
我建议至少按集群来划分你的嫉妒。根据你的预算,也许你想只做开发;暂存到一个非prod集群中,但一定要将您的生产环境分开。
你可以有你的客户端命名空间,但它也要考虑你的客户端项目的复杂性(你是否需要入口,负载平衡器,PVC, PV等)。如果它们不是那么复杂,那么也许一些无服务器的东西(比如GCP的Cloud Run)可能是你的解决方案,既经济高效又易于管理…
…这就引出了我的下一个问题:您是在云中运行它,还是将它作为自管理的k8s集群?我以前曾在一个自管理的k8s集群上工作过(那是在managed-k8s在加拿大地区可用之前,我们出于遵从性原因将集群/数据保留在加拿大)。对于非prod,我们有一个命名空间的集群,我们的prod环境是每个客户机一个集群。管理它是困难的,但我们分开了prod,因为我们不想把所有的鸡蛋放在一个篮子里,因为我们实际上没有任何官方支持(除了StackOverflow或GitHub问题)。如果您正在使用云管理解决方案,我认为名称空间客户端项目设置是可行的。