<p>I read a bit about <code>Deployment</code> vs <code>StatefulSet</code> in Kubernetes. We usually need <code>StatefulSet</code> when we have a stateful app, so every pod can have its own volume.</p>
<p>Now, I have a task to introduce persistence for <code>RabbitMq</code>. I will have only one pod replica of <code>RabbitMq</code>. Can I do it with <code>Deployment</code>? I don't see any problem with this. That one <code>RabbitMq</code> replica will have its own <code>PersistentVolume</code>(it will not share volume with other pods since I have only one replica). Also, I would say that if for any reason my <code>RabbitMq</code> pod gets restarted, it will continue to read and write from the same storage as before restart.</p>
<p>Am I missing something?</p>

<p>Even with 1 replica, a statefulset still gets you some thing, like stable network ID. You are right that most features stop mattering but it's really up to your specific needs.</p>
