AWS S3(Simple Storage Service)是亚马逊云服务提供的一种高度可扩展、安全且经济高效的对象存储服务。它允许用户在任何位置存储和检索任意数量的数据,非常适合存储和分发静态文件、备份数据以及作为数据湖的存储层。

集群备份

一、创建S3桶

1、登录AWS控制台

访问 https://console.aws.amazon.com/ 并使用您的AWS账户凭证登录。

2、打开S3服务控制台

在AWS服务列表中,找到"存储",然后选择"S3"服务。或者直接在搜索框中输入"S3" 快捷进入。

Rancher 快照备份至 S3 及备份恢复_kubernetes

3、创建存储桶

在S3控制台中,单击"创建存储桶"按钮。

Rancher 快照备份至 S3 及备份恢复_备份文件_02

4、选择AWS区域

选择要在其中创建存储桶的AWS区域,通常选择离您的应用程序或用户最近的区域,以获得更好的性能和更低的延迟。右上角可以切换区域。

记住这个区域的编号字符串:

Rancher 快照备份至 S3 及备份恢复_rancher_03

5、命名存储桶

输入一个全局唯一的存储桶名称。存储桶名称必须遵循特定的命名规则,例如只能包含小写字母、数字和连字符(-)。

6、配置存储桶设置(可选)

根据您的需求,可以配置存储桶的其他设置,例如:

  • 存储桶所有权
  • 存储桶版本控制
  • 存储桶加密
  • 对象锁定
  • 标签
  • 静态网站托管等

7、创建存储桶

检查您的设置,然后单击 “创建存储桶” 按钮。

存储桶创建后,我们进入存储桶创建一个 etcd 文件夹,后面我们 rancher 的 etcd 快照就存储到这个文件夹中。

Rancher 快照备份至 S3 及备份恢复_Endpoint_04

Rancher 快照备份至 S3 及备份恢复_kubernetes_05

8、创建生命周期

这一步很重要,因为这涉及钱包问题,持续占用存储是要收费的,如下截图示例设置了28天过期删除。

Rancher 快照备份至 S3 及备份恢复_备份文件_06


Rancher 快照备份至 S3 及备份恢复_AWS_07

二、创建安全凭证 Access Key 和 Secret Key

进入右上角 AWS 的 “安全凭证” 中,创建访问密钥。

Rancher 快照备份至 S3 及备份恢复_kubernetes_08

Rancher 快照备份至 S3 及备份恢复_kubernetes_09

注意将 Secret Key 复制记录下来,因为这个只显示一次,回到列表页面后就无法再查看这个值了。

创建的访问密钥,下面在 Rancher 中配置使用。

二、配置 Rancher 中的集群快照存储到 S3

登录 Rancher 》集群管理》编辑目标集群,在 etcd 配置中启用备份快照到S3,然后填写 S3 相关参数信息,最后保存。

需要填写的参数包括:

  • AWS Access Key
  • AWS Secret Key
  • 创建的桶名称
  • 存储到的桶中的文件路径
  • Region 区域编号
  • Endpoint 端点(可选)

配置如下图所示:

Rancher 快照备份至 S3 及备份恢复_备份文件_10

注意: 使用海外亚马逊,Endpoint 可以不填,默认是海外地址。如果使用亚马逊中国,则 Endpoint 应填写 s3.cn-north-1.amazonaws.com.cn,其中第二段修改为自己对应区域的 region 值。

点击保存之后,集群需要同步配置,需要一点时间,等待集群状态回复正常。

三、创建快照并验证结果

进入集群》快照》立即创建快照,然后集群状态会变成 Updating,稍等一会等待集群状态恢复正常。

然后进入 AWS S3 的捅目录中查看快照文件,文件被成功上传说明成功。

Rancher 快照备份至 S3 及备份恢复_kubernetes_11

Rancher 快照备份至 S3 及备份恢复_备份文件_12

注:如果你使用的是海外亚马逊,那么国内的网络情况你懂得,大部分时候调用S3接口是网络超时的。所以当你看到你的S3中没有文件时,也不奇怪,请通过查看日志判断是否是网络问题。你可以使用亚马逊中国,这个网络一般没问题。

官方关于集群的恢复文档:https://ranchermanager.docs.rancher.com/zh/v2.8/how-to-guides/new-user-guides/backup-restore-and-disaster-recovery/restore-rancher-launched-kubernetes-clusters-from-backup

集群恢复

一、基于S3复制集群

在需要被复制的集群上操作:

  1. 进入要被复制的集群的配置页面
  2. 配置 ETCD 的 S3 备份到一个新位置
  3. 手动立即创建一个集群快照并成功(假定该快照文件在S3上为A)

在新集群上操作:

  1. 搭建全新集群
  2. 配置ETCD的S3备份到新位置
  3. 手动创建一个新集群快照并成功(假定该快照文件在S3上为B)
  4. 从S3存储控制台替换新集群快照备份文件(即用A文件替换B文件)
  5. 使用仅etcd方式恢复集群

Rancher 快照备份至 S3 及备份恢复_rancher_13

二、基于本地备份恢复集群

当我们为集群配置了S3备份后,集群实际上仍然是先进行的本地备份,然后再多了一个将本地文件上传到S3的步骤。

本地备份恢复分为,在当前集群恢复 和 将损坏的集群恢复到一个新建的集群上,这两种方式。

如果是新建一个集群,将当前崩溃的集群恢复到新集群上,参考上面S3复制集群的步骤。

如果是要还原恢复当前集群,我们需要基于本地快照文件的方式进行,不同集群类型的官方恢复资料如下:

  • RKE集群本地快照位置为/opt/rke/etcd-snapshots,文档详见: https://docs.rancher.cn/docs/rke/etcd-snapshots/_index
  • RKE2集群 本地快照位置为/var/lib/rancher/rke2/server/db/snapshots,文档详见:https://docs.rke2.io/zh/backup_restore
  • K3s集群本地快照位置为/var/lib/rancher/k3s/server/db/snapshots,文档详见:https://docs.k3s.io/zh/datastore/backup-restore

找到ETCD快照备份文件,按照官方文档进行恢复。


(END)