Skip to main content

备份集群

从 v2.2.0 版本开始支持

在 Rancher UI 中,可以轻松执行 RKE 集群的备份和恢复。

Rancher 建议为所有生产集群配置定期的etcd快照。此外,您也还可以轻松制作一次性快照。

etcd 数据库的快照将保存在etcd 本地机器节点上S3 备份中。配置 S3 的优点是,即便所有 etcd 节点都丢失了,快照文件在远程保存,这种情况下也可以还原集群。

快照是如何工作的#

Rancher 创建快照时,这个快照里包含三个组件:

  • etcd 中的集群数据
  • Kubernetes 版本
  • cluster.yml形式的集群配置

由于快照中已包含 Kubernetes 版本,因此可以将集群还原到先前的 Kubernetes 版本。

有了这些快照中的组件,您可以选择如何从快照中恢复集群:

  • 仅恢复 etcd 中的集群数据: 此还原类似于在 v2.4.0 之前的 Rancher 中还原快照。
  • 恢复 etcd 和 Kubernetes 版本: 如果由于升级 Kubernetes 版本导致集群出现故障,并且您尚未进行任何集群配置更改,则应使用此选项。
  • 恢复 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 中,您可以查看所有可用快照的列表。

  1. 全局视图中,单击要查看快照的集群。

  2. 在导航栏中单击工具 > 快照,以查看已保存快照的列表。这些快照包括创建时间的时间戳。

安全时间戳#

从 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 还原集群时,无法使用较早版本中创建的快照。

Last updated on by yzeng25