除去 Portworx
如果不再需要 Portworx 卷,存储节点 或 整个 Portworx 集群,请将其除去。
从应用程序中除去 Portworx 卷
将存储器从 Portworx 集群添加到应用程序时,有三个主要组件:Kubernetes 持久卷声明 (PVC)(用于请求存储器)、Kubernetes 持久卷 (PV)(安装到 pod,并在 PVC 中进行描述)和 Portworx 卷(用于对 Portworx 集群的物理磁盘上的空间分块)。 要从应用程序中除去存储器,必须除去所有这些组件。
-
列出集群中的 PVC,并记下 PVC 的 NAME,以及绑定到该 PVC 并显示为 VOLUME 的 PV 的名称。
oc get pvc
示例输出
NAME STATUS VOLUME CAPACITY ACCESSMODES STORAGECLASS AGE px-pvc Bound pvc-06886b77-102b-11e8-968a-f6612bb731fb 20Gi RWO px-high 78d
-
查看存储类的
ReclaimPolicy
。oc describe storageclass <storageclass_name>
如果回收策略显示为
Delete
,那么在除去 PVC 时,会除去 PV 以及 Portworx 集群中物理存储器上的数据。 如果回收策略显示Retain
,或者供应的是不使用存储类的存储器,那么在除去 PVC 时不会除去 PV 和数据。 必须分别除去 PVC、PV 和数据。 -
除去安装了 PVC 的所有 pod。
-
列出安装了 PVC 的所有 pod。
oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
示例输出
blockdepl-12345-prz7b: claim1-block-bronze
如果 CLI 输出中没有返回 pod,则说明没有 pod 使用 PVC。
-
除去使用 PVC 的 pod。
如果 pod 是部署的一部分,请除去该部署。
oc delete pod <pod_name>
-
验证 pod 是否已除去。
oc get pods
-
-
除去 PVC。
oc delete pvc <pvc_name>
-
查看 PV 的阶段状态。 使用先前检索到的显示为 VOLUME 的 PV 的名称。
oc get pv <pv_name>
除去 PVC 时,会释放绑定到该 PVC 的 PV。 如果 PV 是自动删除的,那么该 PV 会进入
Deleting
状态;如果必须手动删除 PV,那么该 PV 会进入Released
状态,具体取决于存储器的供应方式。 注:对于自动删除的 PV,在删除之前,阶段状态可能会短暂地显示为Released
。 请在几分钟后重新运行该命令以查看该 PV 是否已除去。 -
如果 PV 未删除,请手动除去该 PV。
oc delete pv <pv_name>
-
验证 PV 是否已除去。
oc get pv
-
验证 Portworx 卷是否已除去。 登录到集群中的其中一个 Portworx pod 以列出卷。 要查找可用的 Portworx pod,请运行
oc get pods -n kube-system | grep portworx
。oc exec <portworx-pod> -it -n kube-system -- /opt/pwx/bin/pxctl volume list
-
如果 Portworx 卷未除去,请手动除去该卷。
oc exec <portworx-pod> -it -n kube-system -- /opt/pwx/bin/pxctl volume delete <volume_ID>
从 Portworx 集群中除去工作程序节点或除去整个 Portworx 集群
如果不想再使用 Portworx,可以从 Portworx 集群中排除工作节点,或删除整个 Portworx 集群。
除去 Portworx 集群会从该 Portworx 集群中除去所有数据。 确保 为数据创建快照,并将快照保存到云端。
- **从 Portworx 集群中除去工作程序节点:**如果要除去运行 Portworx 并将数据存储在 Portworx 集群中的工作程序节点,那么必须将现有 pod 迁移到其余工作程序节点,然后从该节点卸载 Portworx。 如需了解更多信息,请参阅 Kubernetes 中的 "退役 Portworx 节点 "。
- 移除PortworxDaemonSet:移除Portworx DaemonSet, Portworx容器将从工作节点上移除。 不过,Portworx配置文件仍保留在工作节点和存储设备上,数据卷也完好无损。 如果使用相同的配置文件重新启动Portworx DaemonSet和容器,就可以再次使用数据卷。 更多信息,请参阅 移除 Portworx DaemonSet。
- 从集群中除去 Portworx: 如果要从集群中除去 Portworx 和所有数据,请执行从集群中 除去 Portworx 的步骤。
除去 Portworx DaemonSet
当您移除 Portworx DaemonSet, 时,Portworx 容器就会从工作节点上移除。 不过,Portworx配置文件仍保留在工作节点和存储设备上,数据卷也完好无损。 如果使用相同的配置文件重新启动Portworx DaemonSet和容器,就可以再次使用数据卷。
开始之前: 访问 Red Hat OpenShift 集群。
- 克隆
ibmcloud-storage-utilities
存储库。git clone https://github.com/IBM/ibmcloud-storage-utilities.git
- 将目录切换到
px-utils/px_cleanup
目录。cd ibmcloud-storage-utilities/px-utils/px_cleanup
- 运行
px_cleanup.sh
脚本以从集群中除去 DaemonSet。sh ./px_cleanup.sh
从集群中除去 Portworx
要停止对 Portworx 计费,必须从群集中删除 Portworx 安装,并从 IBM Cloud 帐户中删除 Portworx 服务实例。
以下步骤从集群中除去 Portworx,包括所有存储卷以及这些卷上的数据。
-
遵循 Portworx 文档以 卸载 Portworx。
-
清除 Portworx 卷附件,PVC 和 PV。
-
列出卷连接。
kubectl get volumeattachments
-
删除 Portworx 卷附件。
kubectl delete volumeattachments ATTACHMENT-NAME
-
删除以名称
px-do-not-delete
开头的 PVC。kubectl delete pvc px-do-not-delete-*** -n PORTWOX-NAMESPACE
-
删除为 Portworx 创建且处于
Released
状态的 PV。kubectl delete pv PV-NAME
-
-
从 IBM Cloud 帐户中除去 Portworx 服务实例。
- 在 IBM Cloud 资源列表中,找到已创建的 Portworx 服务。
- 在操作菜单中,单击删除。
- 通过单击删除,确认删除服务实例。