k0s has integrated support for backing up cluster state and configuration. The k0s backup utility is aiming to back up and restore k0s managed parts of the cluster.
The backups created by
k0s backup command have following pieces of your cluster:
- certificates (the content of the
- etcd snapshot, if the etcd storage is used
- any custom defined manifests under the
- any image bundles located under the
- any helm configuration
Parts NOT covered by the backup utility:
- PersistentVolumes of any running application
- database content, in case if the
kine is used as a storage driver
- any configuration to the cluster introduced by manual changes (e.g. changes that weren't saved under the
Any of the backup/restore related operations MUST be performed on the controller node.
To create backup run the following command on the controller node:
# k0s backup --save-path=<directory>
save-pathvalue must exist and be writable. The default value is the current working directory. The command provides backup archive using following naming convention:
Because of the DateTime usage, it is guaranteed that none of the previously created archives would be overwritten.
To restore cluster state from the archive use the following command on the controller node:
# k0s restore /tmp/k0s_backup_2021-04-26T19_51_57_000Z.tar.gz
The command would fail if the data directory for the current controller has overlapping data with the backup archive content.
The command would use the archived
k0s.yaml as the cluster configuration description.
In case if your cluster is HA, after restoring single controller node, join the rest of the controller nodes to the cluster. E.g. steps for N nodes cluster would be: - Restore backup on fresh machine - Run controller there - Join N-1 new machines to the cluster the same way as for the first setup.