Skip to main content

备份和恢复

K3s 的备份和恢复方式由您使用的数据存储类型决定。本文提供了基于外部数据存储嵌入式 etcd 数据存储两种存储方式的备份和恢复操作指导,请按需阅读以下章节完成备份和还原 K3s。

外部数据存储备份和还原#

当使用外部数据存储时,备份和恢复操作是在 K3s 之外处理的。数据库管理员需要对外部数据库进行备份,或者从快照或转储中进行恢复。

我们建议将数据库配置为执行定期快照

有关获取数据库快照和从快照还原数据库的详细信息,请参阅官方数据库文档:

嵌入式 etcd 数据存储备份和还原(实验性)#

v1.19.1+k3s1 可用

在本节中,您将学习如何创建 K3s 集群数据的备份,并从备份中恢复集群。

创建快照#

K3s 默认启用快照。快照目录默认为/server/db/Snapshots。要配置快照间隔或保留的快照数量,请参考下文的参数表格。

从快照恢复集群#

当 K3s 从备份中恢复时,旧的数据目录将被移动到/server/db/etcd-old/。然后 K3s 会尝试通过创建一个新的数据目录来恢复快照,然后从一个带有一个 etcd 成员的新 K3s 集群启动 etcd。

要从备份中恢复集群,运行 K3s 时,请使用--cluster-reset选项运行 K3s,同时给出--cluster-reset-restore-path,如下:

./k3s server \
--cluster-reset \
--cluster-reset-restore-path=<PATH-TO-SNAPSHOT>

结果:日志中出现一条信息,可以在没有标志的情况下重新启动 K3s。再次启动 K3s,可以成功运行并从指定的快照中恢复。

参数#

这些选项可以通过命令行或K3s 配置文件传递进来,这样可以更容易使用。

参数描述
--etcd-disable-snapshots禁用自动 etcd 快照
--etcd-snapshot-schedule-cron以 Cron 表达式的形式配置触发定时快照的时间点,例如:每 5 小时触发一次* */5 * * *,默认值为每 12 小时触发一次:0 */12 * * *
--etcd-snapshot-retention保留的快照数量,默认值为 5。
--etcd-snapshot-dir保存数据库快照的目录路径。(默认位置:${data-dir}/db/snapshots)
--cluster-reset忘记所有的对等体,成为新集群的唯一成员,也可以通过环境变量[$K3S_CLUSTER_RESET]进行设置。
--cluster-reset-restore-path要恢复的快照文件的路径

S3 兼容 API 支持#

K3s 支持向具有 S3 兼容 API 的系统写入 etcd 快照和从系统中恢复 etcd 快照。S3 支持按需和计划快照。

下面的参数已经被添加到server子命令中。这些标志也存在于etcd-snapshot子命令中,但是--etcd-s3部分被删除以避免冗余。

选项描述
--etcd-s3启用备份到 S3
--etcd-s3-endpointS3 endpoint url
--etcd-s3-endpoint-caS3 自定义 CA 证书连接到 S3 endpoint
--etcd-s3-skip-ssl-verify禁用 S3 SSL 证书验证
--etcd-s3-access-keyS3 access key
--etcd-s3-secret-keyS3 secret key
--etcd-s3-bucketS3 bucket name
--etcd-s3-regionS3 region/bucket 的位置(可选)。默认为 us-east-1
--etcd-s3-folderS3 文件夹

执行按需的 etcd 快照并将其保存到 S3:

k3s etcd-snapshot \
--s3 \
--s3-bucket=<S3-BUCKET-NAME> \
--s3-access-key=<S3-ACCESS-KEY> \
--s3-secret-key=<S3-SECRET-KEY>

要从 S3 中执行按需的 etcd 快照还原,首先确保 K3s 没有运行。然后运行以下命令:

k3s server \
--cluster-init \
--cluster-reset \
--etcd-s3 \
--cluster-reset-restore-path=<SNAPSHOT-NAME> \
--etcd-s3-bucket=<S3-BUCKET-NAME> \
--etcd-s3-access-key=<S3-ACCESS-KEY> \
--etcd-s3-secret-key=<S3-SECRET-KEY>
Last updated on by kingsd041