diff --git a/content/zh/docs/getting-started-guides/ubuntu/backups.md b/content/zh/docs/getting-started-guides/ubuntu/backups.md new file mode 100644 index 0000000000..7fa1213a5d --- /dev/null +++ b/content/zh/docs/getting-started-guides/ubuntu/backups.md @@ -0,0 +1,189 @@ +--- +title: 备份 +content_template: templates/task +--- + +{{% capture overview %}} + + +Kubernetes 集群的状态信息保存在 etcd 数据库中。 +本文将要展示如何对 Canonical 发行版的 Kubernetes 中所带有的 etcd 进行备份和恢复。 +至于如何对通常保存在持久卷上的应用数据进行备份,超出了本文的讨论范围。 + +{{% /capture %}} + +{{% capture prerequisites %}} + +本文假设您有一个 Juju 部署的集群。 +{{% /capture %}} + +{{% capture steps %}} + +## 快照 etcd 中的数据 + + + +etcd charm 的 `snapshot` 操作能够让操作员给正在运行的集群数据建立快照,快照数据可用于复制、备份或者迁移到一个新的集群中。 + + juju run-action etcd/0 snapshot + +这条命令会在 `/home/ubuntu/etcd-snapshots` 默认路径下建立一个快照。 + + +## 恢复 etcd 数据 + + + +etcd charm 能够通过 `restore` 操作从一个集群数据快照中恢复集群数据。 +这里有些注意事项,而且是恢复集群的唯一办法:集群当前只能有一个成员。 +所以最好是使用 etcd charm 来部署一个新的集群,而不必添加任何新的单元。 + +``` +juju deploy etcd new-etcd +``` + + +上面的命令将会部署一个单独的 etcd 单元,'new-etcd'。 + +``` +juju run-action etcd/0 restore target=/mnt/etcd-backups +``` + + + +当恢复操作完成后,评估一下集群的健康状态。如果集群运行良好,就可以按照您的需求来扩展应用程序规模。 + +- **参数** target: 保存现有数据的目的路径。 +- **参数** skip-backup: 不要备份任何现有的数据。 + + + + +## 迁移 etcd 集群 +通过使用上述的 `snapshot` 和 `restore` 操作,就能很容易地迁移 etcd 集群。 + + +**第一步:** 给现有的集群建立快照。这个已经封装在 `snapshot` 操作中。 + +``` +juju run-action etcd/0 snapshot +``` + + +结果: + +``` +Action queued with id: b46d5d6f-5625-4320-8cda-b611c6ae580c +``` + + +**第二步:** 检查操作状态,以便您能抓取快照并且验证校验和。 +您可以直接使用 `copy.cmd` 中的结果来下载您刚刚创建的快照数据,`copy.cmd` 中的结果可以直接复制/粘贴使用。 + + +从节点上下载刚刚创建的快照数据并且验证 sha256sum 校验和 + +``` +juju show-action-output b46d5d6f-5625-4320-8cda-b611c6ae580c +``` + + +结果: + +``` +results: + copy: + cmd: juju scp etcd/0:/home/ubuntu/etcd-snapshots/etcd-snapshot-2016-11-09-02.41.47.tar.gz + . + snapshot: + path: /home/ubuntu/etcd-snapshots/etcd-snapshot-2016-11-09-02.41.47.tar.gz + sha256: 1dea04627812397c51ee87e313433f3102f617a9cab1d1b79698323f6459953d + size: 68K +status: completed +``` + + +将数据快照拷到本地,然后检查 sha256sum。 + +``` +juju scp etcd/0:/home/ubuntu/etcd-snapshots/etcd-snapshot-2016-11-09-02.41.47.tar.gz . +sha256sum etcd-snapshot-2016-11-09-02.41.47.tar.gz +``` + + +**第三步:** 部署新的集群 leader 节点,并加载快照数据: + +``` +juju deploy etcd new-etcd --resource snapshot=./etcd-snapshot-2016-11-09-02.41.47.tar.gz +``` + + +**第四步:** 使用在第三步中的快照数据来重新初始化 master: + +``` +juju run-action new-etcd/0 restore +``` + +{{% /capture %}} + +{{% capture discussion %}} + +## 已知的局限 + + +#### 丢失 PKI 警告 + + + +如果销毁了 leader - 在状态栏通过 `*` 来标识,那么所有的 TLS pki 警告都将会丢失。 +在请求和注册证书的单元之外,将不会有 PKI 迁移发生。 + +{{< caution >}} + + +**警告:** 如果误管理这项配置,将会导致您无法从外部访问集群, +并且很可能会破坏现有的部署,出现 x509 证书验证相关的异常问题,这些都会对服务器和客户端造成影响。 + +{{< /caution >}} + + +#### 在一个已经扩展的集群上进行快照数据恢复 + + + +在一个已经扩展的集群上进行快照数据恢复,将会导致集群损坏。 +etcd 在节点启动时开始集群管理,并且将状态保存在 etcd 中。 +在快照数据的恢复阶段,会初始化一个新的集群 ID,并且丢弃其它 peer 节点以保证快照数据的恢复。 +请严格遵照上述集群迁移中的恢复操作来进行操作。 + +{{% /capture %}}