简体中文版经机器翻译而成,仅供参考。如与英语版出现任何冲突,应以英语版为准。

升级 Astra Trident

贡献者

Astra Trident 遵循季度发布节奏,每个日历年提供四个主要版本。每个新版本都是在先前版本的基础上构建的,可提供新功能和性能增强以及错误修复和改进功能。我们建议您每年至少升级一次,以利用 Astra Trident 中的新功能。

备注 要升级到之前的五个版本,您需要执行多步升级。

确定要升级到的版本

  • 您可以升级到 YY.MM 从释放 YY-1.MM 版本和任何介于两者之间的版本。例如,您可以从 19.07 及更高版本直接升级到 20.07 (包括 DOT 版本,例如 19.07.1 )。

  • 如果您使用的是早期版本,则应执行多步骤升级。这要求您首先升级到适合您的四个版本窗口的最新版本。例如,如果您运行的是 18.07 ,并希望升级到 20.07 版本,请按照以下所述执行多步骤升级过程:

    • 首次从 18.07 升级到 19.07 。有关升级的具体说明,请参见相应版本的文档。

    • 然后从 19.07 升级到 20.07 。

重要说明 对于19.04及更早版本的所有升级、都需要迁移Astra Trident自己的元数据 etcd 到CRD对象。请务必查看此版本的文档,了解升级的工作原理。
警告 升级时、请务必提供 parameter.fsType 在中 StorageClasses 由Astra Trident使用。您可以删除并重新创建 StorageClasses 而不会中断已有卷。这是执行的一项 * 要求 * "安全上下文" SAN 卷。。 "输入示例:" 目录包含示例,例如[storage-class-basic.yaml.templ)和[storage-class-bronze-default.yaml。有关详细信息,请参见 "已知问题"

我应选择哪种升级路径?

您可以使用以下路径之一进行升级:

  • 使用 Trident 运算符。

  • 使用 tridentctl

警告 从 Kubernetes 1.20 开始, CSI 卷快照现在是 GA 功能。在升级 Astra Trident 时,在执行升级之前,必须删除所有先前的 alpha snapshot CRS 和 CRD (卷快照类,卷快照和卷快照内容)。请参见 "本博客" 了解将 alpha 快照迁移到测试版 /GA 规范所涉及的步骤。

如果满足以下条件,则可以使用 Trident 操作符进行升级:

  • 您正在运行 CSI Trident ( 19.07 及更高版本)。

  • 您已安装基于 CRD 的 Trident 版本( 19.07 及更高版本)。

  • 您正在执行自定义安装(使用自定义 YAML )。

警告 如果您使用的是、请勿使用运算符升级Trident `etcd`基于Trident的版本(19.04或更早版本)。

如果您不想使用此操作员、或者您的自定义安装无法由操作员支持、则可以使用进行升级 tridentctl。这是 Trident 19.04 及更早版本的首选升级方法。

对运算符进行了更改

Astra Trident 21.01 版为操作员引入了一些关键的架构变更,即:

  • 操作符现在为 * 集群范围 * 。以前的 Trident 运算符实例(版本 20.04 到 20.10 )为 * 命名空间范围 * 。集群范围内的运算符具有优势,原因如下:

    • 资源责任:操作员现在可以在集群级别管理与 Astra Trident 安装相关的资源。在安装Astra Trident过程中、操作员使用创建和维护多个资源 ownerReferences。维护 ownerReferences 在集群范围的资源上、某些Kubernetes分销商可能会引发错误、例如OpenShift。使用集群范围的运算符可缓解此问题。对于 Trident 资源的自动修复和修补,这是一项基本要求。

    • 卸载期间清理:要完全删除 Astra Trident ,需要删除所有关联的资源。命名空间范围的运算符可能会在删除集群范围的资源(例如 clusterRole , ClusterRoleBinding-and PodSecurityPolicy )时遇到问题,并导致清理不完整。集群范围的运算符可消除此问题描述。用户可以完全卸载 Astra Trident 并在需要时重新安装。

  • TridentProvisioner 现已替换为 TridentOrchestrator 作为用于安装和管理Astra Trident的自定义资源。此外、还会在中引入一个新字段 TridentOrchestrator 规格用户可以指定必须使用安装/升级命名空间Trident spec.namespace 字段。您可以查看一个示例 "此处"