备份集群
从 v2.2.0 版本开始支持
在 Rancher UI 中,可以轻松执行 RKE 集群的备份和恢复。
Rancher 建议为所有生产集群配置定期的etcd
快照。此外,您也还可以轻松制作一次性快照。
etcd 数据库的快照将保存在etcd 本地机器节点上或S3 备份中。配置 S3 的优点是,即便所有 etcd 节点都丢失了,快照文件在远程保存,这种情况下也可以还原集群。
#
快照是如何工作的- Rancher v2.4.0+
- Rancher v2.4.0 之前的版本
Rancher 创建快照时,这个快照里包含三个组件:
- etcd 中的集群数据
- Kubernetes 版本
cluster.yml
形式的集群配置
由于快照中已包含 Kubernetes 版本,因此可以将集群还原到先前的 Kubernetes 版本。
有了这些快照中的组件,您可以选择如何从快照中恢复集群:
- 仅恢复 etcd 中的集群数据: 此还原类似于在 v2.4.0 之前的 Rancher 中还原快照。
- 恢复 etcd 和 Kubernetes 版本: 如果由于升级 Kubernetes 版本导致集群出现故障,并且您尚未进行任何集群配置更改,则应使用此选项。
- 恢复 etcd,Kubernetes 版本和集群配置: 如果在升级时同时更改了 Kubernetes 版本和集群配置,则应使用此选项。
我们始终建议您在每次升级之前拍摄新快照。
当 Rancher 创建快照时,快照中仅包含 etcd 数据。
由于快照中未包含 Kubernetes 版本,因此无法选择将集群还原到之前的 Kubernetes 版本。
我们始终建议您在每次升级之前拍摄新快照。
#
配置周期性快照您可以配置定期制作快照的频率以及保留多少快照。时间量以小时为单位。用户可以使用这些带时间戳的快照,将集群状态恢复到某个时间点。
默认情况下,RKE 集群配置为定期拍摄快照(保存到本地磁盘)。为了防止本地磁盘故障,建议使用S3 备份或对这个磁盘路径通过某种方式进行冗余备份。
在创建集群或编辑集群期间,可以在集群选项的高级部分找到快照的配置。单击显示高级选项。
在高级集群选项部分中,有几个选项可以配置:
选项 | 描述 | 默认值 |
---|---|---|
etcd 快照备份目标 | 选择您需要备份的存储目标,local(本地备份)或者 S3(AWS S3 备份) | local(本地备份) |
启用定期 etcd 快照 | 启用/停用 etcd 定期快照功能 | 是(启用) |
etcd 定期快照周期 | 定期快照之间的时间间隔(小时) | 12 小时 |
定期 etcd 快照保留数量 | 要保留的快照数量 | 6 |
#
一次性快照除了定期快照外,您可能还需要创建“一次性”快照。例如,在升级集群的 Kubernetes 版本之前,最好备份集群的状态以防止升级失败。
1.在全局视图中,找到要创建一次性快照的集群。
2.单击省略号(...)> 立即快照。
结果: 根据您的etcd 快照备份目标,将拍摄一次快照并将其保存在选定的备份目标中。
#
etcd 快照备份目标Rancher 支持两种不同的备份目标:
#
本地磁盘备份默认情况下,选择 local(本地)
备份目标。此选项的好处是没有额外的配置。快照会自动保存到RKE 集群的 etcd 节点中的 /opt/rke/etcd-snapshots
路径。所有定期快照均以配置的时间间隔拍摄。使用 local(本地)
备份目标的不利之处在于,如果发生灾难,并且 所有的 etcd 节点丢失,则无法恢复集群。
#
S3 备份S3
备份目标允许用户配置兼容 S3 的后端来存储快照。此选项的主要好处是,如果集群丢失所有 etcd 节点,由于快照存储在外部,仍可以还原该集群。Rancher 建议使用诸如 S3
之类的外部目标进行备份,虽然这需要一些额外的配置,为了保证您的数据安全,建议您考虑此项。
选项 | 描述 | 是否必须 |
---|---|---|
S3 Bucket 名称 | 存储备份的 S3 bucket 名称 | * |
S3 区域 | 备份 S3 Bucket 的区域 | |
S3 区域终结点 | 备份 S3 Bucket 区域终结点 | * |
S3 Access Key | 有权限访问 S3 Bucket 的 access key | * |
S3 Secret Key | 有权限访问 S3 Bucket 的 secret key | * |
自定义 CA 证书 | 访问私有 S3 服务的自定义 CA 证书 从 v2.2.5 版本开始支持 |
#
使用一个自定义 CA 证书访问 S3从 v2.2.5 版本开始支持
备份快照可以存储在自定义的 S3
备份中,例如 minio。如果 S3 后端使用自签名或自定义证书,请使用 自定义CA证书
选项提供自定义证书以连接到 S3 后端。
#
S3 快照存储的 IAM 支持除了使用 API 凭证外,S3
备份目标还支持对 AWS API 使用 IAM 身份验证。IAM 角色授予应用程序在对 S3 存储进行 API 调用时可以使用的临时权限。要使用 IAM 身份验证,必须满足以下要求:
- 集群 etcd 节点必须具有实例角色,该角色具有对指定备份存储桶的读/写访问权限。
- 集群 etcd 节点必须对指定的 S3 端点具有网络访问权限。
- Rancher Server 所在节点必须具有实例角色,该实例角色已对指定的备份存储桶进行读/写。
- Rancher Server 所在节点必须具有对指定 S3 端点的网络访问权限。
要授予应用程序对 S3 的访问权限,请参阅使用 IAM 角色向在 Amazon EC2 实例上运行的应用程序授予权限。
#
查看可用的快照在 Rancher UI 中,您可以查看所有可用快照的列表。
在全局视图中,单击要查看快照的集群。
在导航栏中单击工具 > 快照,以查看已保存快照的列表。这些快照包括创建时间的时间戳。
#
安全时间戳从 v2.3.0 开始支持
从 v2.2.6 版本开始,快照文件已打上时间戳,以简化使用外部工具和脚本处理文件的步骤,但是在某些与 S3 兼容的后端中,这些时间戳不可用。从 Rancher v2.3.0 开始,添加了 safe_timestamp
选项以支持兼容的文件名。当此标志设置为 true
时,快照文件名时间戳中的所有特殊字符将被替换。
注意: 此选项在用户界面中无法直接配置,只能通过
编辑为Yaml
功能在 Yaml 中配置使用。
#
在 Rancher v2.2.0 之前的版本中创建的集群里启用定期快照如果您有任何使用 v2.2.0 之前创建的 Rancher 启动的 Kubernetes 集群(RKE 集群),在升级 Rancher 之后,您必须编辑集群并且保存它,以启用更新的快照功能。即使您已经在 v2.2.0 之前创建了快照,也必须执行此步骤,否则您在通过 UI 还原集群时,无法使用较早版本中创建的快照。