降级 Astra Trident
了解降级到早期版本的 Astra Trident 所涉及的步骤。
何时降级
您可能会考虑降级的各种原因,例如:
-
应急规划
-
立即修复因升级而发现的错误
-
依赖关系问题,升级失败和不完整
迁移到使用 CRD 的 Astra Trident 版本时,应考虑降级。由于Astra Trident使用CRD来保持状态、因此创建的所有存储实体(后端、存储类、PV和卷快照)都具有关联的CRD对象、而不是写入到中的数据 trident
PV (由早期安装的Astra Trident版本使用)。新创建的 PV ,后端和存储类均作为 CRD 对象进行维护。
请仅尝试对使用CRD运行的Astra Trident版本(19.07及更高版本)进行降级。这样可以确保在降级后可以看到对当前Astra Trident版本执行的操作。
何时不降级
您不应降级到使用的Trident版本 etcd
以保持状态(19.04及更早版本)。降级后,使用当前 Astra Trident 版本执行的所有操作都不会反映出来。在回滚到早期版本时,新创建的 PV 不可用。在迁移回早期版本时,对后端, PV ,存储类和卷快照(已创建 / 更新 / 删除)等对象所做的更改对 Astra Trident 不可见。恢复到早期版本不会中断对已使用早期版本创建的 PV 的访问,除非已对其进行升级。
使用操作员安装 Astra Trident 时的降级过程
对于使用Trident操作员完成的安装、降级过程有所不同、不需要使用 tridentctl
。
对于使用 Trident 操作符完成的安装, Astra Trident 可以降级为以下任一项:
-
使用命名空间范围的运算符( 20.07 - 20.10 )安装的版本。
-
使用集群范围运算符( 21.01 及更高版本)安装的版本。
降级为集群范围的运算符
要将 Astra Trident 降级为使用集群范围运算符的版本,请执行以下步骤。
-
"卸载 Astra Trident"。*除非要完全删除现有安装、否则请勿删除这些CRD
-
可以使用与您的Trident版本关联的操作员清单来删除Trident运算符。例如:
https://github.com/NetApp/trident/tree/stable/vXX.XX/deploy/bundle.yaml
其中:vXX.XX
是版本号(例如v22.10
)和bundle.yaml
是捆绑包YAML文件名。 -
通过安装所需版本的 Astra Trident 继续降级。按照所需版本的文档进行操作。
降级到命名空间范围的运算符
本节总结了降级到 20.07 到 20.10 范围内的 Astra Trident 版本所涉及的步骤,该版本将使用命名空间范围的运算符进行安装。
-
"卸载 Astra Trident"。* 除非要完全删除现有安装,否则请勿删除这些 CRD
确保tridentorchestrator
已删除。#Check to see if there are any tridentorchestrators present kubectl get torc NAME AGE trident 20h #Looks like there is a tridentorchestrator that needs deleting kubectl delete torc trident tridentorchestrator.trident.netapp.io "trident" deleted
-
可以使用与您的Trident版本关联的操作员清单来删除Trident运算符。例如:
https://github.com/NetApp/trident/tree/stable/vXX.XX/deploy/bundle.yaml
其中:vXX.XX
是版本号(例如v22.10
)和bundle.yaml
是捆绑包YAML文件名。 -
删除
tridentorchestrator
CRD。#Check to see if ``tridentorchestrators.trident.netapp.io`` CRD is present and delete it. kubectl get crd tridentorchestrators.trident.netapp.io NAME CREATED AT tridentorchestrators.trident.netapp.io 2021-01-21T21:11:37Z kubectl delete crd tridentorchestrators.trident.netapp.io customresourcedefinition.apiextensions.k8s.io "tridentorchestrators.trident.netapp.io" deleted
已卸载 Astra Trident 。
-
通过安装所需版本继续降级。按照所需版本的文档进行操作。
使用 Helm 降级
要降级、请使用 helm rollback
命令:请参见以下示例:
helm rollback trident [revision #]
使用安装Astra Trident时的降级过程 tridentctl
如果您使用安装了Astra Trident tridentctl
、降级过程包括以下步骤。此顺序将指导您完成从 Astra Trident 21.07 迁移到 20.07 的降级过程。
在开始降级之前、您应创建Kubernetes集群的快照 etcd 。这样,您就可以备份 Astra Trident 的 CRD 的当前状态了。
|
-
确保使用安装Trident
tridentctl
。如果您不确定如何安装 Astra Trident ,请运行以下简单测试:-
列出 Trident 命名空间中的 Pod 。
-
确定集群中运行的 Astra Trident 的版本。您可以使用
tridentctl
或者查看Trident Pod中使用的图像。 -
如果您*未看到* A
tridentOrchestrator
、(或) Atridentprovisioner
、(或)名为的Podtrident-operator-xxxxxxxxxx-xxxxx
、Astra Trident 已安装tridentctl
。
-
-
使用现有卸载Astra Trident
tridentctl
二进制文件。 在这种情况下,您将使用 21.07 二进制文件卸载。tridentctl version -n trident +----------------+----------------+ | SERVER VERSION | CLIENT VERSION | +----------------+----------------+ | 21.07.0 | 21.07.0 | +----------------+----------------+ tridentctl uninstall -n trident INFO Deleted Trident deployment. INFO Deleted Trident daemonset. INFO Deleted Trident service. INFO Deleted Trident secret. INFO Deleted cluster role binding. INFO Deleted cluster role. INFO Deleted service account. INFO Deleted pod security policy. podSecurityPolicy=tridentpods INFO The uninstaller did not delete Trident's namespace in case it is going to be reused. INFO Trident uninstallation succeeded.
-
完成此操作后,获取所需版本的 Trident 二进制文件(在此示例中为 20.07 ),并使用它安装 Astra Trident 。您可以为生成自定义 YAML "自定义安装" 如果需要,
cd 20.07/trident-installer/ ./tridentctl install -n trident-ns INFO Created installer service account. serviceaccount=trident-installer INFO Created installer cluster role. clusterrole=trident-installer INFO Created installer cluster role binding. clusterrolebinding=trident-installer INFO Created installer configmap. configmap=trident-installer ... ... INFO Deleted installer cluster role binding. INFO Deleted installer cluster role. INFO Deleted installer service account.
降级过程已完成。