使用 tridentctl 进行升级
您可以使用 tridentctl
轻松升级现有的 Astra Trident 安装。
升级到最新版本的 Astra Trident 时,请考虑以下事项:
-
从 Trident 20.01 开始,仅限测试版 "卷快照" 受支持。Kubernetes 管理员应注意安全地备份或将 alpha Snapshot 对象转换为测试版,以保留原有的 alpha Snapshot 。
-
测试版的卷快照引入了一组经过修改的 CRD 和一个快照控制器,这两个控制器都应在安装 Astra Trident 之前进行设置。
"本博客" 讨论将 alpha 卷快照迁移到测试版格式所涉及的步骤。 |
卸载并重新安装 Astra Trident 可作为升级。卸载 Trident 时,不会删除 Astra Trident 部署所使用的永久性卷声明( PVC )和永久性卷( PV )。在 Astra Trident 脱机期间,已配置的 PV 仍可用,而 Astra Trident 将在恢复联机后为在此期间创建的任何 PVC 配置卷。
升级 Astra Trident 时,请勿中断升级过程。确保安装程序运行完毕。 |
升级后的后续步骤
要使用新 Trident 版本中提供的丰富功能(例如按需卷快照),您可以使用 tridentctl upgrade
命令升级卷。
如果存在旧卷,则应将其从 NFS/iSCSI 类型升级到 CSI 类型,以便能够使用 Astra Trident 中的一整套新功能。Trident 配置的原有 PV 支持传统功能集。
决定将卷升级到 CSI 类型时,请考虑以下事项:
-
您可能不需要升级所有卷。以前创建的卷将继续可访问并正常运行。
-
升级时, PV 可以作为部署 / 状态集的一部分挂载。不需要关闭部署 / 状态集。
-
升级时,您 * 无法 * 将 PV 连接到独立 POD 。在升级卷之前,您应关闭 POD 。
-
您只能升级绑定到 PVC 的卷。升级前,应删除和导入未绑定到 PVC 的卷。
卷升级示例
以下示例显示了如何执行卷升级。
-
运行
kubectl get pv
以列出 PV 。$ kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE default-pvc-1-a8475 1073741824 RWO Delete Bound default/pvc-1 standard 19h default-pvc-2-a8486 1073741824 RWO Delete Bound default/pvc-2 standard 19h default-pvc-3-a849e 1073741824 RWO Delete Bound default/pvc-3 standard 19h default-pvc-4-a84de 1073741824 RWO Delete Bound default/pvc-4 standard 19h trident 2Gi RWO Retain Bound trident/trident 19h
目前, Trident 20.07 使用
netapp.io/trident
配置程序创建了四个 PV 。 -
运行
kubectl describe PV
以获取 PV 的详细信息。$ kubectl describe pv default-pvc-2-a8486 Name: default-pvc-2-a8486 Labels: <none> Annotations: pv.kubernetes.io/provisioned-by: netapp.io/trident volume.beta.kubernetes.io/storage-class: standard Finalizers: [kubernetes.io/pv-protection] StorageClass: standard Status: Bound Claim: default/pvc-2 Reclaim Policy: Delete Access Modes: RWO VolumeMode: Filesystem Capacity: 1073741824 Node Affinity: <none> Message: Source: Type: NFS (an NFS mount that lasts the lifetime of a pod) Server: 10.xx.xx.xx Path: /trid_1907_alpha_default_pvc_2_a8486 ReadOnly: false
PV 是使用
netapp.io/trident
配置程序创建的,其类型为 NFS 。要支持 Astra Trident 提供的所有新功能,应将此 PV 升级到 CSI 类型。 -
运行
tridenctl upgrade volume <name-o-trident -volume>
命令将原有的 Astra Trident 卷升级到 CSI 规范。$ ./tridentctl get volumes -n trident +---------------------+---------+---------------+----------+--------------------------------------+--------+---------+ | NAME | SIZE | STORAGE CLASS | PROTOCOL | BACKEND UUID | STATE | MANAGED | +---------------------+---------+---------------+----------+--------------------------------------+--------+---------+ | default-pvc-2-a8486 | 1.0 GiB | standard | file | c5a6f6a4-b052-423b-80d4-8fb491a14a22 | online | true | | default-pvc-3-a849e | 1.0 GiB | standard | file | c5a6f6a4-b052-423b-80d4-8fb491a14a22 | online | true | | default-pvc-1-a8475 | 1.0 GiB | standard | file | c5a6f6a4-b052-423b-80d4-8fb491a14a22 | online | true | | default-pvc-4-a84de | 1.0 GiB | standard | file | c5a6f6a4-b052-423b-80d4-8fb491a14a22 | online | true | +---------------------+---------+---------------+----------+--------------------------------------+--------+---------+ $ ./tridentctl upgrade volume default-pvc-2-a8486 -n trident +---------------------+---------+---------------+----------+--------------------------------------+--------+---------+ | NAME | SIZE | STORAGE CLASS | PROTOCOL | BACKEND UUID | STATE | MANAGED | +---------------------+---------+---------------+----------+--------------------------------------+--------+---------+ | default-pvc-2-a8486 | 1.0 GiB | standard | file | c5a6f6a4-b052-423b-80d4-8fb491a14a22 | online | true | +---------------------+---------+---------------+----------+--------------------------------------+--------+---------+
-
运行
kubectl describe PV
以验证此卷是否为 CSI 卷。$ kubectl describe pv default-pvc-2-a8486 Name: default-pvc-2-a8486 Labels: <none> Annotations: pv.kubernetes.io/provisioned-by: csi.trident.netapp.io volume.beta.kubernetes.io/storage-class: standard Finalizers: [kubernetes.io/pv-protection] StorageClass: standard Status: Bound Claim: default/pvc-2 Reclaim Policy: Delete Access Modes: RWO VolumeMode: Filesystem Capacity: 1073741824 Node Affinity: <none> Message: Source: Type: CSI (a Container Storage Interface (CSI) volume source) Driver: csi.trident.netapp.io VolumeHandle: default-pvc-2-a8486 ReadOnly: false VolumeAttributes: backendUUID=c5a6f6a4-b052-423b-80d4-8fb491a14a22 internalName=trid_1907_alpha_default_pvc_2_a8486 name=default-pvc-2-a8486 protocol=file Events: <none>
通过这种方式,您可以将由 Astra Trident 创建的 NFS/iSCSI 类型的卷逐个升级到 CSI 类型。