Continental Innovates with Rancher and Kubernetes
The way K3s is backed up and restored depends on which type of datastore is used.
When an external datastore is used, backup and restore operations are handled outside of K3s. The database administrator will need to back up the external database, or restore it from a snapshot or dump.
We recommend configuring the database to take recurring snapshots.
For details on taking database snapshots and restoring your database from them, refer to the official database documentation:
Available as of v1.19.1+k3s1
In this section, you’ll learn how to create backups of the K3s cluster data and to restore the cluster from backup.
Snapshots are enabled by default.
The snapshot directory defaults to /server/db/snapshots.
To configure the snapshot interval or the number of retained snapshots, refer to the options.
When K3s is restored from backup, the old data directory will be moved to /server/db/etcd-old/. Then K3s will attempt to restore the snapshot by creating a new data directory, then starting etcd with a new K3s cluster with one etcd member.
To restore the cluster from backup, run K3s with the --cluster-reset option, with the --cluster-reset-restore-path also given:
./k3s server \
Result: A message in the logs says that K3s can be restarted without the flags. Start k3s again and should run successfully and be restored from the specified snapshot.
These options can be passed in with the command line, or in the configuration file, which may be easier to use.
* */5 * * *
0 */12 * * *
K3s supports writing etcd snapshots to and restoring etcd snapshots from systems with S3-compatible APIs. S3 support is available for both on-demand and scheduled snapshots.
The arguments below have been added to the server subcommand. These flags exist for the etcd-snapshot subcommand as well however the --etcd-s3 portion is removed to avoid redundancy.
To perform an on-demand etcd snapshot and save it to S3:
k3s etcd-snapshot \
To perform an on-demand etcd snapshot restore from S3, first make sure that K3s isn’t running. Then run the following commands:
k3s server \
k3s supports a set of subcommands for working with your etcd snapshots.
note The save subcommand is the same as k3s etcd-snapshot. The latter will eventually be deprecated in favor of the former.
These commands will perform as expected whether the etcd snapshots are stored locally or in an S3 compatible object store.
For additional information on the etcd snapshot subcommands, run k3s etcd-snapshot.
Delete a snapshot from S3.
k3s etcd-snapshot delete \
Prune local snapshots with the default retention policy (5). The prune subcommand takes an additional flag --snapshot-retention that allows for overriding the default retention policy.
k3s etcd-snapshot prune
k3s etcd-snapshot prune --snapshot-retention 10