从 v2.2.0 版本开始支持

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

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

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

快照是如何工作的

import Tabs from ‘@theme/Tabs’; import TabItem from ‘@theme/TabItem’;

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 中,您可以查看所有可用快照的列表。

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