<p>I have 3 micro service applications, which shall be deployed in K8s. 
Do I need to create 3 deployment files and 3 service files for this or to concatenate all 3 deployments to a single file (as well as services) ?</p>

Jithin Kumar S
<p>You did not provide information about thoses microservices.</p>

<p>You can do it in one file, however the Best Practise is to have each <code>Applicataion</code> / <code>Microservice</code> in separate <a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/" rel="nofollow noreferrer">Deployments</a>.</p>

<p>Currently it might be only 3 <code>microservices</code> but in the future you may consider adding new features and new <code>microservices</code> will be needed.</p>

<p>If you have each <code>microservice</code> in different <code>deployment</code> You will be able to make fast configuration changes, without scrolling many rows of YAML code (less likely that you will make a syntax mistake inside the file). 
It will easier to troubleshoot specific <code>microservices</code> and manage traffic between them - you can use <a href="https://istio.io/docs/concepts/what-is-istio/" rel="nofollow noreferrer">Istio</a> to do that.</p>

<p>As each microservice will be in different <code>deployment</code> you will have more versatility as you will be able to create some <a href="https://kubernetes.io/docs/concepts/workloads/pods/init-containers/" rel="nofollow noreferrer">initContainers</a> or there will be need to use <a href="https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale/" rel="nofollow noreferrer">Horizontal Pod Autoscaler</a>.</p>

<p>In addition you don't need to limit only to <code>Deployments</code>. You can also use <a href="https://kubernetes.io/docs/concepts/workloads/controllers/statefulset/" rel="nofollow noreferrer">StatefulSets</a> for specific applications (i.e apps which requiring Databases).</p>

<p>You also can create your own <a href="https://helm.sh/docs/" rel="nofollow noreferrer">Helm</a> chart which allow you to deploy application using one command but have all deployments organized in directories.</p>
