<p>I find tons of articles and documentation describing the advantages of StatefulSets over Deployments for stateful applications on Kubernetes. What I haven't been able to figure out is the opposite: the disadvantages of StatefulSets when compared to Deployments, in particular for <em>stateless</em> applications.</p>

<p>Could someone please explain why not simply always use StatefulSets for both stateful and stateless applications?</p>

<p>The most basic difference is that you would get ability to persist <strong>pod level state</strong> with statefulsets. Using volumeClaimTemplates, each replica will get a <strong>unique PersistentVolumeClaim</strong> with statefulset whereas all replicas would share the PersistentVolumeClaim with a deployment. This comes at a cost of <strong>slow scale ups and scale downs</strong> for statefulsets. </p>

<p>Deployments also have cool features related to "deployment" like rolling update with <strong>maxSurge and maxUnavailable.</strong></p>
