本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

回滚

本页面概述了如何在升级后将Rancher回滚到先前版本。

  • This is only possible by restoring to a previous version from a backup instance. Changing versions using kubectl or Helm is not supported.

  • When rolling back, ensure the version being restored is under active support. Rolling back to versions that are end-of-life is not supported. Refer to SUSE’s Product Support Lifecycle page to verify key lifecycle dates for your given version.

在以下情况下,请遵循本页面的说明:

  • 运行中的Rancher实例在备份完成后已升级到新版本。

  • 上游(本地)集群与备份创建时的集群相同。

  • 按照以下步骤迁移Rancher

  • 如果您需要将Rancher恢复到相同版本的先前状态,请参见恢复文档

要将Rancher回滚到较低/先前版本,请使用*Rancher备份*应用程序并从备份中恢复Rancher。

回滚后,Rancher必须使用较低/先前版本启动。

恢复是通过创建恢复自定义资源来执行的。

特殊场景的替代步骤

在以下情况下,需要执行回滚的替代步骤:

  • 从v2.14.0及更高版本回滚到早期版本的v2.13.x。

在Rancher v2.13.0中,Rancher Turtles成为CAPI资源的默认管理器,取代了之前嵌入的集群API控制器,而在Rancher v2.14.0中,嵌入的集群API被完全移除。因此,如果您从Rancher v2.14.0及更高版本回滚到早期版本的Rancher v2.13.x,并且不打算继续使用Rancher Turtles管理CAPI资源,则可能需要额外的手动步骤来使用嵌入的集群API控制器。从Rancher v2.14.0开始,Rancher Turtles是CAPI资源唯一支持的管理器。

在Rancher v2.14.0中,集群API模块从v1.10.6升级到v1.12.2。集群API v1.12.2反过来将其自定义资源定义(CRD)的apiVersions从`cluster.x-k8s.io/v1beta1`升级到`cluster.x-k8s.io/v1beta2`。Rancher 备份文件包括集群 API CRD。在将备份数据从 Rancher v2.13.x 恢复到本地群集时,升级到 v2.14.0 后,Rancher 备份应用程序首先恢复 v1beta1 CRD。这失败了,因为在集群中存在 v1beta2 自定义资源时,无法从 CRD 中删除 v1beta2 版本。

重要说明:
  • 请按照此页面上的说明在与备份相同的集群上恢复 Rancher。为了将 Rancher 迁移到新集群,请按照步骤 迁移Rancher

  • 在相同设置上恢复 Rancher 时,Rancher 部署在恢复开始之前手动缩减,然后操作员将在恢复完成后将其重新扩展。因此,Rancher 及其 UI 在恢复完成之前将不可用。在 UI 不可用时,请使用原始集群的 kubeconfig 和恢复 YAML 文件:kubectl create -f restore.yaml

第 1 步:创建恢复自定义资源

  1. 单击 ☰ > 集群管理

  2. 转到本地群集并点击 探索

  3. 在左侧导航栏中,点击 Rancher 备份  恢复

如果看不到 Rancher 备份应用程序,您需要从 Apps 的 Charts 页面安装它。有关更多信息,请参阅 这里

  1. 单击*创建*。

  2. 使用表单或 YAML 创建恢复。有关使用在线表单创建恢复资源的帮助,请参阅 配置参考示例

  3. 要使用 YAML 编辑器,您可以点击 创建  从 YAML 创建。输入恢复 YAML。以下是一个示例恢复自定义资源:

     apiVersion: resources.cattle.io/v1
     kind: Restore
     metadata:
       name: restore-migration
     spec:
       backupFilename: backup-b0450532-cee1-4aa1-a881-f5f48a007b1c-2020-09-15T07-27-09Z.tar.gz
       encryptionConfigSecretName: encryptionconfig
       storageLocation:
         s3:
           credentialSecretName: s3-creds
           credentialSecretNamespace: default
           bucketName: rancher-backups
           folder: rancher
           region: us-west-2
           endpoint: s3.us-west-2.amazonaws.com

    有关配置恢复的帮助,请参阅 配置参考示例

  4. 单击*创建*。

*结果:*备份文件已创建并更新到目标存储位置。资源按以下顺序恢复:

  1. 自定义资源定义 (CRDs)

  2. 集群范围的资源

  3. 命名空间资源

要检查恢复进度,可以查看操作员的日志。请按以下步骤获取日志:

kubectl get pods -n cattle-resources-system
kubectl logs -n cattle-resources-system -f

第 2 步:回滚到先前的 Rancher 版本

可以使用 Helm CLI 回滚 Rancher。要回滚到先前的版本:

helm rollback rancher -n cattle-system

如果先前的修订不是预期目标,可以指定要回滚到的修订。要查看部署历史:

helm history rancher -n cattle-system

确定目标修订后,执行回滚。此示例将回滚到修订 3

helm rollback rancher 3 -n cattle-system