创建一次性快照

概述

v0.2.0 或以上的版本和 v0.2.0 之前的版本创建一次性快照的方式不同,请阅读下文对应的章节获取创建一次性快照的信息。

RKE v0.2.0 或以上的版本

打开命令行工具,输入rke etcd snapshot-save命令,运行后即可保存 cluster config 文件内每个 etcd 节点的快照。RKE 会将节点快照保存在/opt/rke/etcd-snapshots路径下。运行上述命令时,RKE 会创建一个用于备份快照的容器。完成备份后,RKE 会删除该容器。您可以将一次性快照适配 S3 的后端主机。具体过程如下:

  1. 首先,运行以下命令,在本地创建一个一次性快照:

    rke etcd snapshot-save --config cluster.yml --name snapshot-name

    结果: 创建了一个快照,保存在 /opt/rke/etcd-snapshots路径下。

  2. 然后,运行以下命令,将这个快照保存到 S3。

    rke etcd snapshot-save \
    --config cluster.yml \
    --name snapshot-name \
    --s3 \
    --access-key S3_ACCESS_KEY \
    --secret-key S3_SECRET_KEY \
    --bucket-name s3-bucket-name \
    --folder s3-folder-name \ # Optional - Available as of v0.3.0
    --s3-endpoint s3.amazonaws.com

    结果: 保存在 /opt/rke/etcd-snapshots路径下的快照已经上传至 S3。

rke etcd snapshot-save 命令的可配置参数

创建一次性快照时,可配置的参数如下表所示:

参数描述S3 相关参数
--name指定快照名称
--config指定 YAML 文件名称,如果不指定,则会使用cluster.yml文件
--s3启用 S3 存储服务备份节点快照*
--s3-endpoint指定 S3 端点 URL 地址,默认值为 s3.amazonaws.com*
--s3-endpoint-ca指定 CA 证书文件的路径连接自定义 S3 端点(可选), RKE v0.2.5 及以上版本可用*
--access-keyS3 的 accessKey*
--secret-keyS3 的 secretKey*
--bucket-nameS3 的 桶名称(bucket name)*
--folder指定 S3 存储节点快照的文件夹(可选), RKE v0.3.0 及以上版本可用*
--regionS3 的 桶所在的区域(可选)*
--ssh-agent-auth使用 SSH_AUTH_SOCK 定义的 SSH Agent Auth
--ignore-docker-version禁用 Docker 版本检查

说明:

  • 如果 AWS EC2 示例配置了 IAM 认证,则--access-key--secret-key不是必填项。
  • 表格第三列标记为"* "的参数,是 S3 相关的参数。

使用自定义 CA 证书认证 S3

v0.2.0 或以上的版本可用

备份快照可以被存储在自定义S3备份机器,如minio上。如果 S3 Backend 使用的是自签名证书或自定义证书,需要使用--s3-endpoint-ca将自定义证书验证并连接到 S3 Backend。

使用 IAM 认证 S3 并储存节点快照

RKE 支持使用 IAM 角色权限管理进行 S3 认证。集群的 etcd 节点必须分配有 IAM 角色,并且这个角色需要有读写 S3 存储节点快照的桶的权限。节点必须有权限访问 S3 端点。

以下是IAM 策略示例代码,给节点开放了在 S3 上读取和写入备份快照的权限。

{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "ListObjectsInBucket",
"Effect": "Allow",
"Action": ["s3:ListBucket"],
"Resource": ["arn:aws:s3:::bucket-name"]
},
{
"Sid": "AllObjectActions",
"Effect": "Allow",
"Action": "s3:*Object",
"Resource": ["arn:aws:s3:::bucket-name/*"]
}
]
}

关于如何为应用开放访问 S3 的权限,请查看 AWS 的文档使用 IAM 角色向在 Amazon EC2 实例上运行的应用程序授予权限

RKE v0.2.0 之前的版本

打开命令行工具,输入rke etcd snapshot-save命令,运行后即可保存 cluster config 文件内每个 etcd 节点的快照。

运行上述命令时,RKE 会创建一个用于备份快照的容器。完成备份后,RKE 会删除该容器。

RKE 会为证书生成备份,在同一路径下将证书保存为pki.bundle.tar.gz文件。恢复集群时,会用到快照和 pki 文件。

运行以下命令,在本地创建一次性快照:

rke etcd snapshot-save --config cluster.yml --name snapshot-name

结果: RKE 会将节点快照保存在/opt/rke/etcd-snapshots路径下。

rke etcd snapshot-save 命令的可参数

参数描述
--name指定快照名称
--config指定 YAML 文件名称,如果不指定,则会使用cluster.yml文件 [$RKE_CONFIG]
--ssh-agent-auth使用 SSH_AUTH_SOCK 定义的 SSH Agent Auth
--ignore-docker-version禁用 Docker 版本检查
最后由 yzeng25更新 于