K3S 备份与恢复
概述
参考:
使用嵌入式 etcd 数据存储进行备份和恢复
创建快照
默认情况下,K3s 会在 00:00 和 12:00 自动创建快照,并保留 5 个快照。当然,你也可以禁用自动快照或者通过 k3s etcd-snapshot save
来手动创建快照。
快照目录默认为 ${data-dir}/server/db/snapshots
。data-dir
的默认值为 /var/lib/rancher/k3s
,你可以通过设置 --data-dir
标志来更改。
从快照恢复集群
当 K3s 从备份中恢复时,旧的数据目录将被移动到 ${data-dir}/server/db/etcd-old/
。然后 K3s 将尝试通过创建一个新的数据目录来恢复快照,最后使用具有一个 etcd 成员的新 K3s 集群启动 etcd。
在此示例中有 3 个 K3s Server 节点,分别是 S1
、S2
和 S3
,快照位于 S1
上:
- 在 S1 上,使用
--cluster-reset
选项运行 K3s,同时指定--cluster-reset-restore-path
:
ls /var/lib/rancher/k3s/server/db/snapshots/
on-demand-ip-172-31-3-36-1688025329
systemctl stop k3s
k3s server \
--cluster-reset \
--cluster-reset-restore-path=/var/lib/rancher/k3s/server/db/snapshots/on-demand-ip-172-31-3-36-1688025329
- 在
S2
和S3
上,停止 K3s。然后删除数据目录/var/lib/rancher/k3s/server/db/
:
systemctl stop k3s
rm -rf /var/lib/rancher/k3s/server/db/
- 在
S1
上,再次启动 K3s:
systemctl start k3s
S1
启动成功后,在S2
和S3
上,再次启动 K3s 以加入恢复后的集群:
systemctl start k3s
S2
和 S3
虽然使用空的数据目录来启动 K3s 服务,但启动时会自动到 S1
去同步数据,从而完成 S2
和 S3
的恢复。
另外,k3s etcd-snapshot
子命令支持 S3 兼容的 API,这样我们可以将快照自动或手动的上传到 S3 中存储,并且用于 K3s 的数据恢复。
K3s 集群的灾难恢复
TODO
反馈
此页是否对你有帮助?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.