<p>In kubenetes what are advantages and disadvantages using single shared pvc for all pod &amp; multiple pvc for each pod.</p>

<p><code>Statefulset with single PV/PVC</code> and <code>Statefulset with multiple PV/PVC</code> has different use cases and should be used according to the application you want to deploy. You can not precede one over another.</p>

<p>Let me explain you with example of databases, if you want to deploy the <code>relational database</code> like <code>postgresql</code> where all the data stored at one place. You need statefulset with single PV/PVC and all replicas to that write to that particular volume only. This is the only way to keep the data consistent in postgresql.</p>

<p>Now lets say you want to deploy a <code>distributed nosql database</code> like <code>cassandra/mongodb</code>, where the data is splitted along the different machines and cluster of database. In such databases, data is replicated over different nodes and in that case statefulsets pods acts as a different node of that database. So, such pods needs different volume to store their data. Hence if you're running cassandra statefulset with 3 pods, those pods must have different PV/PVC attached to them. Each node writes data on its own PV and which ultimately replicated to other nodes. </p>
