我们正在将应用程序的部署从使用虚拟机迁移到Kubernetes,由于我对Kubernete的了解非常有限,我不知道如何为多个客户端设置部署。现在,我们为每个客户端都有一个单独的VM,但如何在Kubernetes中以成本和资源高效且易于管理的方式分离客户端?
我设法使用名称空间创建了开发和暂存环境,这非常有效。为了更新开发和阶段部署,我只使用kubectl apply -f <file> --namespace staging
。
现在我需要为几个客户端(50多个(将应用程序部署到生产环境中。它们应该彼此完全分离(使用单独的环境变量和机密(,而代码应该是相同的。我不知道实现这一目标的最佳方式是什么。
你能告诉我在Kubernetes中什么是正确的方法吗?
您可以使用Kustoize。它为配置定制提供了纯粹的声明性方法,以管理任意数量的独特定制的Kubernetes配置。
https://github.com/kubernetes-sigs/kustomize/tree/master/examples
- 一个(或一组名称空间(由客户提供
- kustomize有一个非常好的模式系统,可以处理一般配置和客户端的一些调整
- 使用
NetworkPolicy
隔离客户端之间的网络