Skip to content

Latest commit

 

History

History
158 lines (123 loc) · 9.92 KB

File metadata and controls

158 lines (123 loc) · 9.92 KB
title description keywords
创建定时快照
RKE v0.2.0 或以上的版本和 v0.2.0 之前的版本创建定时快照的方式不同,请阅读下文对应的章节获取对应信息。
rancher
rancher中文
rancher中文文档
rancher官网
rancher文档
Rancher
rancher 中文
rancher 中文文档
rancher cn
RKE
备份和恢复
创建定时快照

概述

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

RKE v0.2.0 或以上的版本

您可以启用etcd-snapshot服务,使用相关的配置参数,开启定时备份 etcd 节点快照功能。

etcd-snapshotetcd容器之外的服务容器中运行。默认设置下,etcd-snapshot服务会为每一个具有etcd角色的节点创建快照,然后将这些快照储存在本地的/opt/rke/etcd-snapshots路径下。如果您配置了 AWS S3 相关的参数,RKE 会将快照上传到 S3 Backend。

可配置的参数在下文的表格中有详细的描述。

快照服务日志

运行已经启用etcd-snapshot的集群时,您可以在命令行工具中输入docker logs etcd-rolling-snapshots,查看etcd-rolling-snapshots日志,确认集群是否已开启定时快照功能。如果集群已经开启定时快照功能,输入该命令后,返回的消息包含了每个快照的创建时间、创建信息、名称和运行时间,与下方代码示例相似。

docker logs etcd-rolling-snapshots

time="2018-05-04T18:39:16Z" level=info msg="Initializing Rolling Backups" creation=1m0s retention=24h0m0s
time="2018-05-04T18:40:16Z" level=info msg="Created backup" name="2018-05-04T18:40:16Z_etcd" runtime=108.332814ms
time="2018-05-04T18:41:16Z" level=info msg="Created backup" name="2018-05-04T18:41:16Z_etcd" runtime=92.880112ms
time="2018-05-04T18:42:16Z" level=info msg="Created backup" name="2018-05-04T18:42:16Z_etcd" runtime=83.67642ms
time="2018-05-04T18:43:16Z" level=info msg="Created backup" name="2018-05-04T18:43:16Z_etcd" runtime=86.298499ms

Etcd-Snapshot 服务的可配置参数

创建定时快照时,可配置的参数如下表所示。

参数 说明 S3 相关
interval_hours 创建快照的间隔时间。如果您使用 RKE v0.2.0 定义了creation参数,interval_hours会覆盖这个参数。如果不输入这个值,默认间隔是 5 分钟。支持输入正整数表示小时,如 1 表示间隔时间为 1 小时,每小时会创建一个快照。(默认: 12)
retention 快照的存活时间,当快照存活的时间超过这个限制后,会自动删除快照。如果在etcd.retentionetcd.backup_config.retention都配置了限制,RKE 会以etcd.backup_config.retention为准。(默认: 6)
bucket_name S3 的 桶名称(bucket name) *
folder 指定 S3 存储节点快照的文件夹(可选), RKE v0.3.0 及以上版本可用 *
access_key S3 的 accessKey *
secret_key S3 的 secretKey *
region S3 的 桶所在的区域(可选) *
endpoint 指定 S3 端点 URL 地址,默认值为 s3.amazonaws.com *
custom_ca 自定义证书认证,用于连接 S3 端点。使用私有存储时必填,RKE v0.2.5 及以上版本可用。 *

说明:

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

使用自定义 CA 证书认证 S3

备份快照可以被存储在自定义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 实例上运行的应用程序授予权限

配置快照服务的 YAML 示例

services:
  etcd:
    backup_config:
      interval_hours: 12 # 创建快照的间隔时间,单位是小时,12表示每12个小时创建一个快照
      retention: 6 # 快照的存活时间,单位是小时
      s3backupconfig:
        access_key: S3_ACCESS_KEY
        secret_key: S3_SECRET_KEY
        bucket_name: s3-bucket-name
        region: "" # 可选填
        folder: "" # 可选填,RKE v0.3.0开始可用
        endpoint: s3.amazonaws.com #默认值为:s3.amazonaws.com
        custom_ca: |-
          -----BEGIN CERTIFICATE-----
          $CERTIFICATE
          -----END CERTIFICATE-----

RKE v0.2.0 之前的版本

您可以启用etcd-snapshot服务和相关的配置参数,以开启定时备份 etcd 节点快照功能。etcd-snapshotetcd容器之外的服务容器中运行。默认设置下,etcd-snapshot服务会为每一个具有etcd角色的节点创建快照,然后将这些快照储存在本地的/opt/rke/etcd-snapshots路径下。

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

快照服务日志

运行已经启用etcd-snapshot的集群时,您可以在命令行工具中输入docker logs etcd-rolling-snapshots,查看etcd-rolling-snapshots日志,确认集群是否开启定时快照功能。输入该命令后,返回的消息包含了创建时间、创建信息、快照名称和 runtime,与下方代码示例相似。

docker logs etcd-rolling-snapshots

time="2018-05-04T18:39:16Z" level=info msg="Initializing Rolling Backups" creation=1m0s retention=24h0m0s
time="2018-05-04T18:40:16Z" level=info msg="Created backup" name="2018-05-04T18:40:16Z_etcd" runtime=108.332814ms
time="2018-05-04T18:41:16Z" level=info msg="Created backup" name="2018-05-04T18:41:16Z_etcd" runtime=92.880112ms
time="2018-05-04T18:42:16Z" level=info msg="Created backup" name="2018-05-04T18:42:16Z_etcd" runtime=83.67642ms
time="2018-05-04T18:43:16Z" level=info msg="Created backup" name="2018-05-04T18:43:16Z_etcd" runtime=86.298499ms

本地Etcd-Snapshot 的可配置参数

参数 描述
snapshot 布尔值,默认为false,不启动定时备份功能。将它设置为true时,会启动定时备份功能。
creation 创建快照的间隔时间,默认间隔是5m0s,即 5 分钟。
retention 保存快照的时间,默认值为24h,即 24 小时。当快照存活的时间超过这个限制后,会自动删除快照。

配置快照服务的 YAML 示例

services:
  etcd:
    snapshot: true # 布尔值,默认为false,不启动定时备份功能。将它设置为true时,会启动定时备份功能
    creation: 5m0s # 创建快照的间隔时间,默认间隔是 5 分钟
    retention: 24h # 保存快照的时间,默认值为`24h`,即 24 小时。当快照存活的时间超过这个限制后,会自动删除快照