IBM Cloud Docs
除去 Portworx

除去 Portworx

如果不再需要 Portworx 卷存储节点整个 Portworx 集群,请将其除去。

从应用程序中除去 Portworx 卷

将存储器从 Portworx 集群添加到应用程序时,有三个主要组件:Kubernetes 持久卷声明 (PVC)(用于请求存储器)、Kubernetes 持久卷 (PV)(安装到 pod,并在 PVC 中进行描述)和 Portworx 卷(用于对 Portworx 集群的物理磁盘上的空间分块)。 要从应用程序中除去存储器,必须除去所有这些组件。

  1. 列出集群中的 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
    
  2. 查看存储类的 ReclaimPolicy

    oc describe storageclass <storageclass_name>
    

    如果回收策略显示为 Delete,那么在除去 PVC 时,会除去 PV 以及 Portworx 集群中物理存储器上的数据。 如果回收策略显示 Retain,或者供应的是不使用存储类的存储器,那么在除去 PVC 时不会除去 PV 和数据。 必须分别除去 PVC、PV 和数据。

  3. 除去安装了 PVC 的所有 pod。

    1. 列出安装了 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。

    2. 除去使用 PVC 的 pod。

      如果 pod 是部署的一部分,请除去该部署。

      oc delete pod <pod_name>
      
    3. 验证 pod 是否已除去。

      oc get pods
      
  4. 除去 PVC。

    oc delete pvc <pvc_name>
    
  5. 查看 PV 的阶段状态。 使用先前检索到的显示为 VOLUME 的 PV 的名称。

    oc get pv <pv_name>
    

    除去 PVC 时,会释放绑定到该 PVC 的 PV。 如果 PV 是自动删除的,那么该 PV 会进入 Deleting 状态;如果必须手动删除 PV,那么该 PV 会进入 Released 状态,具体取决于存储器的供应方式。 :对于自动删除的 PV,在删除之前,阶段状态可能会短暂地显示为 Released。 请在几分钟后重新运行该命令以查看该 PV 是否已除去。

  6. 如果 PV 未删除,请手动除去该 PV。

    oc delete pv <pv_name>
    
  7. 验证 PV 是否已除去。

    oc get pv
    
  8. 验证 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
    
  9. 如果 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 集群

  1. 克隆 ibmcloud-storage-utilities 存储库。
    git clone https://github.com/IBM/ibmcloud-storage-utilities.git
    
  2. 将目录切换到 px-utils/px_cleanup 目录。
    cd ibmcloud-storage-utilities/px-utils/px_cleanup
    
  3. 运行 px_cleanup.sh 脚本以从集群中除去 DaemonSet。
    sh ./px_cleanup.sh
    

从集群中除去 Portworx

要停止对 Portworx 计费,必须从群集中删除 Portworx 安装,并从 IBM Cloud 帐户中删除 Portworx 服务实例。

以下步骤从集群中除去 Portworx,包括所有存储卷以及这些卷上的数据。

  1. 遵循 Portworx 文档以 卸载 Portworx

  2. 清除 Portworx 卷附件,PVC 和 PV。

    1. 列出卷连接。

      kubectl get volumeattachments
      
    2. 删除 Portworx 卷附件。

      kubectl delete volumeattachments ATTACHMENT-NAME
      
    3. 删除以名称 px-do-not-delete 开头的 PVC。

      kubectl delete pvc px-do-not-delete-*** -n PORTWOX-NAMESPACE
      
    4. 删除为 Portworx 创建且处于 Released 状态的 PV。

      kubectl delete pv PV-NAME
      
  3. 从 IBM Cloud 帐户中除去 Portworx 服务实例。

    1. IBM Cloud 资源列表中,找到已创建的 Portworx 服务。
    2. 在操作菜单中,单击删除
    3. 通过单击删除,确认删除服务实例。