<p>I have a two-cluster multi-region HA enabled in production working in MS Azure.</p>

<p>I was asked to reuse the same cluster to manage several new projects using Microservices.</p>

<p>What is the best practice here ? Should I create a cluster per app ? Is it better to isolate every project in different clusters and cloud account subcriptions?</p>

<p>Looking forward for opinions.</p>

<p>Thanks.</p>

<p>I would suggest you slice and dice your cluster by using <strong>Namespaces</strong>.You can easily create a namespace by using the following command.</p>

<pre><code>kubectl create namespace my-project
</code></pre>

<p>Now you can feed your all manifest files (deployment, services, secrets, PersistentVolumeClaims) to API Server to that my-project namespace. for instance,</p>

<pre><code>kubectl create -f my-deployment.yaml --namespace my-project
</code></pre>

<p>Do not forget to use <strong>namespace flag</strong> otherwise these manifest would be applied to the default namespace.</p>

<p>If you want to delete your project. you just need to delete the namespace.It will delete all of the resources related to that project.</p>

<pre><code>kubectl delete namespace my-project
</code></pre>

<p>furthermore, You can limit the quota to each namespace for resources utilization.</p>

<p>you can further dig up with <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/" rel="nofollow noreferrer">Namespace</a></p>

<p><strong>Edited</strong></p>

<p>Namespaces are virtual clusters in a physical cluster </p>
