<p>We're migrating our app's deployments from using VMs to Kubernetes and as my knowledge of Kubernetes is very limited, I'm lost how I could set up deployment for multiple clients.
Right now we have a separate VM for each client but how to separate the clients in Kubernetes in a way that will be cost and resource efficient and easy to manage?</p>

<p>I managed to create dev and staging environments using namespaces and this is working great.
To update dev and staging deployment I just use <code>kubectl apply -f &lt;file&gt; --namespace staging</code>.</p>

<p>Now I need to deploy app to production for several clients (50+). They should be completely separate from each other (using separate environment variables and secrets) while code should be the same. And I don't know what is the best way to achieve that.</p>

<p>Could you please hint me what is the right way for that in Kubernetes?</p>

Tim Shilov
<p>You can use <a href="https://kustomize.io" rel="nofollow noreferrer">Kustomize</a>. It provides purely declarative approach to configuration customization to manage an arbitrary number of distinctly customized Kubernetes configurations.</p>

<p><a href="https://github.com/kubernetes-sigs/kustomize/tree/master/examples" rel="nofollow noreferrer">https://github.com/kubernetes-sigs/kustomize/tree/master/examples</a></p>
