rancher rke 集群备份
本文永久链接: https://www.xtplayer.cn/rancher/backup-restore/rancher-rke-cluster-backups/
如果 rancher 是 HA 架构部署,在 HA 架构下,rancher 的数据是保存在 rke local K8S 集群中。所以在 rancher HA 架构下只需要通过 RKE 备份 local 集群数据,即可同时备份 rancher 的数据。
重要提示 此方法直接使用 RKE 进行集群备份,它适用于 RKE 创建并导入的业务集群或者 RKE 部署的 local 集群
本节介绍在 Rancher HA 下如何备份数据。
Rancher Kubernetes Engine v0.1.7 或更高版本
RKE v0.1.7 以及更高版本才支持
etcd
快照功能rancher-cluster.yml
需要使用到安装 Rancher 的 RKE 配置文件
rancher-cluster.yml
,将此文件需放在与 RKE 二进制文件同级目录中
创建 ETCD 数据快照
有两种方案创建 etcd
快照: 定时自动创建快照和或手动创建快照,每种方式对应特定的场景。
方案 A: 定时自动创建快照
在 Rancher HA 安装后,我们建议配置 RKE 以定时(默认 5 分钟)自动创建快照,以便始终拥有可用的安全恢复点。
方案 B: 手动创建快照
我们建议在升级或恢复其他快照等事件之前创建一次性快照。
方案 A: 定时自动创建快照
对于通过 RKE 高可用安装的 Rancher,我们建议开启定时自动创建快照,以便始终拥有安全的恢复点。
定时自动创建快照服务是 RKE 附带的服务,默认没有开启。可以通过在 rancher-cluster.yml
中添加配置来启用 etcd-snapshot(定时自动创建快照)服务。
启用定时自动创建快照:
编辑
rancher-cluster.yml
配置文件;在
rancher-cluster.yml
配置文件中添加以下代码:rke 版本小于 0.2.x 或 rancher 版本小于 v2.2.0 时使用
services:
etcd:
snapshot: true # 设置 true 启用 ETCD 自动备份,设置 false 禁用;
creation: 6h0s # 快照创建间隔时间,不加此参数,默认 5 分钟;
retention: 24h # 快照有效期,此时间后快照将被删除;rke 版本大于等于 0.2.x 或 rancher 版本大于等于 v2.2.0 时使用
services:
etcd:
backup_config:
enabled: true # 设置 true 启用 ETCD 自动备份,设置 false 禁用;
interval_hours: 12 # 快照创建间隔时间,不加此参数,默认 5 分钟;
retention: 6 # etcd 备份保留份数;
# S3 配置选项
s3backupconfig:
access_key: "myaccesskey"
secret_key: "myaccesssecret"
bucket_name: "my-backup-bucket"
folder: "folder-name" # 此参数 v2.3.0 之后可用
endpoint: "s3.eu-west-1.amazonaws.com"
region: "eu-west-1"根据实际需求修改以上参数;
保存并关闭
rancher-cluster.yml
;打开Terminal并切换路径到 RKE 二进制文件所在目录.确保
rancher-cluster.yml
也在这个路径下;运行以下命令:
# MacOS
./rke_darwin-amd64 up --config rancher-cluster.yml
# Linux
./rke_linux-amd64 up --config rancher-cluster.yml
结果: RKE 会在每个 etcd 节点上定时获取快照,并将快照将保存到每个 etcd 节点的:
/opt/rke/etcd-snapshots/
目录下
方案 B: 手动创建快照
警告 1、在 rke v0.2.0 以前的版本,RKE 将备份证书和配置文件到
pki.bundle.tar.gz
文件中,并保存在/opt/rke/etcd-snapshots
目录中。通过 v0.2.0 之前的版本恢复系统时,需要快照和 pki 文件。
2、从 rke v0.2.0 开始,因为架构调整不再需要pki.bundle.tar.gz
文件,当 rke 创建集群后,会在配置文件当前目录下生成xxxx.rkestate
文件,文件中保存了集群的配置信息和各组件使用的证书信息。
手动创建快照:
打开Terminal并切换路径到 RKE 二进制文件所在目录.确保
rancher-cluster.yml
也在该路径下输入以下命令:
注意:替换
<SNAPSHOT.db>
为您设置的快照名称,例如:<SNAPSHOT.db># MacOS
./rke etcd snapshot-save --name <SNAPSHOT.db> --config rancher-cluster.yml
# Linux
./rke etcd snapshot-save --name <SNAPSHOT.db> --config rancher-cluster.yml
结果: RKE 会获取每个
etcd
节点的快照,并保存在每个 etcd 节点的/opt/rke/etcd-snapshots
目录下;
备份快照到安全位置
在创建快照后,应该把它保存到安全的地方,以便在集群遇到灾难情况时快照不受影响,这个位置应该是持久的。
复制 /opt/rke/etcd-snapshots
目录下所有文件到安全位置。
- 在 rke v0.2.0 以前的版本,备份
/opt/rke/etcd-snapshots
目录中的快照文件和pki.bundle.tar.gz
文件,以及 rke 配置文件到安全位置,通过 v0.2.0 之前的版本恢复系统时,需要这些文件。 - 在 rke v0.2.0 以及以后的版本,备份
/opt/rke/etcd-snapshots
目录中的快照文件和 rke 配置文件,以及配置文件当前目录下的xxxx.rkestate
文件,通过 v0.2.0 之后版本恢复系统时,需要这些文件。