升级 Astra Trident
Astra Trident 遵循季度发布节奏,每个日历年提供四个主要版本。每个新版本都是在先前版本的基础上构建的,可提供新功能和性能增强以及错误修复和改进功能。我们建议您每年至少升级一次、以利用Astra Trident中的新功能。
升级前的注意事项
升级到最新版本的 Astra Trident 时,请考虑以下事项:
-
在给定Kubbernetes集群中的所有名空间中只应安装一个A作用 力三端实例。
-
从 Trident 20.01 开始,仅限测试版 "卷快照" 受支持。Kubernetes 管理员应注意安全地备份或将 alpha Snapshot 对象转换为测试版,以保留原有的 alpha Snapshot 。
-
从 Kubernetes 1.20 开始, CSI 卷快照现在是 GA 功能。升级之前、您应使用删除Alpha Snapshot CRD
tridentctl obliviate alpha-snapshot-crd
删除字母快照规范的CRD。 -
测试版的卷快照引入了一组经过修改的CRD和一个快照控制器、这两个组件都应在升级Astra三端存储之前进行设置。
-
有关详细信息,请参见 "升级Kubbernetes集群前需要了解的事项"。
-
-
从19.04及更早版本升级的所有版本都需要自行迁移Asta三元数据
etcd
到CRD对象。确保选中 "您的Astra Trdent版本的专用文档" 以了解升级的工作原理。 -
升级时、请务必提供
parameter.fsType
在中StorageClasses
由Astra Trident使用。您可以删除并重新创建StorageClasses
而不会中断已有卷。-
这是执行的一项 * 要求 * "安全上下文" SAN 卷。
-
sample输入目录包含https://github.com/NetApp/trident/blob/master/trident-installer/sample-input/storage-class-samples/storage-class-basic.yaml.templ等示例[
storage-class-basic.yaml.templ
)和链接:https://github.com/NetApp/trident/blob/master/trident-installer/sample-input/storage-class-samples/storage-class-bronze-default.yaml[storage-class-bronze-default.yaml
^。有关详细信息,请参见 "已知问题"。
-
第1步:选择版本
Astra Trident版本采用基于日期的版本 YY.MM
命名约定、其中"YY"是一年中的最后两位数字、"MM"是月份。DOT版本会遵循A YY.MM.X
约定、其中"X"是修补程序级别。您将根据要从中升级的版本选择要升级到的版本。
-
您可以直接升级到已安装版本的四个版本窗口中的任何目标版本。例如、您可以直接从22.04升级到23.04 (包括任何DOT版本、例如22.04.1)。
-
如果您使用的是早期版本、则应使用相应版本的文档执行多步升级、以获取具体说明。这要求您首先升级到适合您的四个版本窗口的最新版本。例如、如果您运行的是18.07、并且希望升级到20.07版本、请按照下面提供的多步升级过程进行操作:
-
首次从 18.07 升级到 19.07 。
-
然后从 19.07 升级到 20.07 。
-
在OpenShift容器平台上使用TRIDent操作程序进行升级时、应升级到TRIDent 21.01.1或更高版本。21.01.0 版发布的 Trident 运算符包含一个已知的问题描述,该 已在 21.01.1 中修复。有关详细信息,请参见 "GitHub 上的问题描述详细信息"。 |
第2步:确定原始安装方法
通常、您应使用与初始安装相同的方法进行升级、但您可以这样做 "在安装方法之间切换"。
若要确定最初安装Astra Trdent时使用的版本、请执行以下操作:
-
使用 …
kubectl get pods - trident
检查Pod。-
如果没有操作员POD、则使用安装了Asta三端盘
tridentctl
。 -
如果有操作员模块、则使用三端操作员手动或使用Helm安装了A作用 曲三端。
-
-
如果有操作员控制盒、请使用
kubectl describe tproc trident
确定是否使用Helm安装了Astra Trdent。-
如果有Helm标签、则表示Asta Trdent是使用Helm安装的。
-
如果没有Helm标签、则使用Trident操作人员手动安装A作用 于Trident。
-
第3步:选择升级方法
有两种方法可升级Asta三端到端。
何时使用操作员进行升级
您可以 "使用三端修复操作符升级" 条件:
-
您最初使用操作员或安装了Astra Trdent
tridentctl
。 -
您卸载了CSI三元数据、但安装中的元数据仍然存在。
-
您已安装基于CSI的Astra三端技术。自2007年19月7日起的所有版本均基于CSI。您可以检查三端存储命名空间中的Pod以验证您的版本。
-
23.01之前版本中的POD命名使用:
trident-csi-*
-
23.01及更高版本中的Pod命名使用:
-
trident-controller-<generated id>
控制器Pod -
trident-node-<operating system>-<generated id>
节点Pod -
trident-operator-<generated id>
对于操作舱
-
-
如果您使用的是、请勿使用运算符升级Trident `etcd`基于Trident的版本(19.04或更早版本)。 |
何时使用升级 tridentctl
您可以 如果您最初是使用`tridenctl’安装Astra三端安装的。
tridentctl
是安装Asta Trident的传统方法、为需要复杂自定义的用户提供了大多数选项。有关详细信息,请参见 "选择安装方法"。
对运算符进行了更改
21.01版的Asta三端设计引入了对运营商的架构进行的更改:
-
操作符现在为 * 集群范围 * 。以前的 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
规格用户可以指定必须使用安装/升级命名空间Tridentspec.namespace
字段。您可以查看一个示例 "此处"。