创建定时快照
#
概述RKE v0.2.0 或以上的版本和 v0.2.0 之前的版本创建定时快照的方式不同,请阅读下文对应的章节获取对应信息。
#
RKE v0.2.0 或以上的版本您可以启用etcd-snapshot
服务,使用相关的配置参数,开启定时备份 etcd 节点快照功能。
etcd-snapshot
在etcd
容器之外的服务容器中运行。默认设置下,etcd-snapshot
服务会为每一个具有etcd
角色的节点创建快照,然后将这些快照储存在本地的/opt/rke/etcd-snapshots
路径下。如果您配置了 AWS S3 相关的参数,RKE 会将快照上传到 S3 Backend。
可配置的参数在下文的表格中有详细的描述。
#
快照服务日志运行已经启用etcd-snapshot
的集群时,您可以在命令行工具中输入docker logs etcd-rolling-snapshots
,查看etcd-rolling-snapshots
日志,确认集群是否已开启定时快照功能。如果集群已经开启定时快照功能,输入该命令后,返回的消息包含了每个快照的创建时间、创建信息、名称和运行时间,与下方代码示例相似。
#
Etcd-Snapshot 服务的可配置参数创建定时快照时,可配置的参数如下表所示。
参数 | 说明 | S3 相关 |
---|---|---|
interval_hours | 创建快照的间隔时间。如果您使用 RKE v0.2.0 定义了creation 参数,interval_hours 会覆盖这个参数。如果不输入这个值,默认间隔是 5 分钟。支持输入正整数表示小时,如 1 表示间隔时间为 1 小时,每小时会创建一个快照。(默认: 12) | |
retention | 快照的存活时间,当快照存活的时间超过这个限制后,会自动删除快照。如果在etcd.retention 和etcd.backup_config.retention 都配置了限制,RKE 会以etcd.backup_config.retention 为准。(默认: 6) | |
bucket_name | S3 的 桶名称(bucket name) | * |
folder | 指定 S3 存储节点快照的文件夹(可选), RKE v0.3.0 及以上版本可用 | * |
access_key | S3 的 accessKey | * |
secret_key | S3 的 secretKey | * |
region | S3 的 桶所在的区域(可选) | * |
endpoint | 指定 S3 端点 URL 地址,默认值为 s3.amazonaws.com | * |
custom_ca | 自定义证书认证,用于连接 S3 端点。使用私有存储时必填,RKE v0.2.5 及以上版本可用。 | * |
说明:
- 如果 AWS EC2 示例配置了 IAM 认证,则
--access-key
和--secret-key
不是必填项。- 表格第三列标记为"* "的参数,是 S3 相关的参数。
#
使用自定义 CA 证书认证 S3备份快照可以被存储在自定义S3
备份机器,如minio上。如果 S3 Backend 使用的是自签名证书或自定义证书,需要使用--s3-endpoint-ca
将自定义证书验证并连接到 S3 Backend。
#
使用 IAM 认证 S3 并储存节点快照RKE 支持使用 IAM 角色权限管理进行 S3 认证,请确认集群和节点具有以下权限:
- 集群的 etcd 节点必须分配有 IAM 角色,并且这个角色需要有读写 S3 存储节点快照的桶的权限。
- 节点必须有权限访问 S3 端点。
以下是IAM 策略示例代码,给节点开放了在 S3 上读取和写入备份快照的权限。
关于如何为应用开放访问 S3 的权限,请查看 AWS 的文档使用 IAM 角色向在 Amazon EC2 实例上运行的应用程序授予权限。
#
配置快照服务的 YAML 示例#
RKE v0.2.0 之前的版本您可以启用etcd-snapshot
服务和相关的配置参数,以开启定时备份 etcd 节点快照功能。etcd-snapshot
在etcd
容器之外的服务容器中运行。默认设置下,etcd-snapshot
服务会为每一个具有etcd
角色的节点创建快照,然后将这些快照储存在本地的/opt/rke/etcd-snapshots
路径下。
RKE 会为证书生成备份,在同一路径下将证书保存为pki.bundle.tar.gz
文件。恢复集群时,会用到快照和 pki 文件。
#
快照服务日志运行已经启用etcd-snapshot
的集群时,您可以在命令行工具中输入docker logs etcd-rolling-snapshots
,查看etcd-rolling-snapshots
日志,确认集群是否开启定时快照功能。输入该命令后,返回的消息包含了创建时间、创建信息、快照名称和 runtime,与下方代码示例相似。
Etcd-Snapshot
的可配置参数#
本地参数 | 描述 |
---|---|
snapshot | 布尔值,默认为false ,不启动定时备份功能。将它设置为true 时,会启动定时备份功能。 |
creation | 创建快照的间隔时间,默认间隔是5m0s ,即 5 分钟。 |
retention | 保存快照的时间,默认值为24h ,即 24 小时。当快照存活的时间超过这个限制后,会自动删除快照。 |