<p>Is there any configuration snapshot mechanism on kubernetes?</p>

<p>The goal is to take a snapshot of all deployments/services/config-maps etc and apply them to a kubernetes cluster.</p>

<p>The steps that should be taken.</p>

<ul>
<li>Take a configuration snapshot</li>
<li>Delete the cluster</li>
<li>Create a new cluster</li>
<li>Apply the configuration snapshot to the new cluster</li>
<li>New cluster works like the old one</li>
</ul>

<p>State of the kubernetes is stored on etcd, so back up etcd data and restore would be able to restore cluster. But this would not backup any information stored in persistent volumes, that needs to be handled separately.</p>

<p>backup operater provided by coreos is a good option: </p>

<ul>
<li><a href="https://coreos.com/operators/etcd/docs/latest/user/walkthrough/backup-operator.html" rel="nofollow noreferrer">https://coreos.com/operators/etcd/docs/latest/user/walkthrough/backup-operator.html</a></li>
</ul>

<p>Taking backups with etcdctl : </p>

<ul>
<li><a href="https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/" rel="nofollow noreferrer">https://kubernetes.io/docs/tasks/administer-cluster/configure-upgrade-etcd/</a>
<a href="https://github.com/coreos/etcd/blob/master/etcdctl/README.md" rel="nofollow noreferrer">https://github.com/coreos/etcd/blob/master/etcdctl/README.md</a></li>
</ul>

<p>Heptio ark has capability to backup config and also volumes : </p>

<ul>
<li><a href="https://github.com/heptio/ark" rel="nofollow noreferrer">https://github.com/heptio/ark</a></li>
</ul>

<p>if you want a UI based option, these would be good :</p>

<ul>
<li><a href="https://github.com/kaptaind/kaptaind" rel="nofollow noreferrer">https://github.com/kaptaind/kaptaind</a>
<a href="https://github.com/mhausenblas/reshifter" rel="nofollow noreferrer">https://github.com/mhausenblas/reshifter</a></li>
</ul>
