<p>I would like to run a Cassandra cluster under Kubernetes on Google Container Engine using the examples given here: <a href="https://github.com/kubernetes/kubernetes/tree/master/examples/storage/cassandra" rel="nofollow noreferrer">https://github.com/kubernetes/kubernetes/tree/master/examples/storage/cassandra</a></p>

<p>The file describes 3 ways to setup the cluster - PetSet(StatefulSet), Replication Controller and DaemonSet. Each one of them has its pros and cons.</p>

<p>While trying to choose the best setup for me, I noticed that I cannot figure out what to do with the storage and backups. </p>

<ol>
<li>How can I set or scale the storage size (increase/decrease node/cluster <strong>data storage</strong> size without data loss) ?</li>
<li>How do I manage backups and restores?</li>
</ol>

<p>The short answer is that there is no way to do this in kubernetes. Kubernetes does very little in terms of storage management.</p>

<p>If you have the flexibility of choosing other solutions, <a href="https://robinsystems.com/product-and-solutions/robin-for-databases/" rel="nofollow noreferrer">check this out</a>.</p>

<p>They provide a container-based solution that combines compute, network, storage, so you have full control over all resources required by cassandra, and perform snapshot/restore, scale out, scale up/down, etc.</p>
