从群集中删除 Block Storage for VPC

虚拟私有云

在集群中设置持久存储时,有三个主要组件:请求存储的 Kubernetes 持久卷请求(PVC)、挂载到 pod 并在 PVC 中描述的 Kubernetes 持久卷(PV)以及存储实例。 所有这三个组件可能需要分别删除,具体取决于存储器的创建方式。

根据供应存储器的方式以及已除去的组件,从 IBM Cloud 帐户中除去持久性存储器的操作会有所不同。

删除群集时,我的持久存储会被删除吗?
在集群删除期间,您可以选择除去持久性存储器。 但是,根据存储器的供应方式,除去存储器时,可能不会包含所有存储组件。 如果使用设置了 reclaimPolicy: Delete 的存储类动态配置存储,则在删除群集时会自动删除 PVC、PV 和存储实例。 对于静态配置的存储或使用设置了 reclaimPolicy: Retain 的存储类配置的存储,删除群集时会移除 PVC 和 PV,但存储实例和数据会保留。 您仍将为存储器实例付费。 此外,如果删除的是状态为运行状况不佳的集群,那么即使选择除去存储器,存储器也可能会仍然存在。
当我想保留群集时,如何删除存储?
使用设置了 reclaimPolicy: Delete 的存储类动态供应存储器时,可以通过除去 PVC 来启动持久性存储器的删除过程。 这将自动除去 PVC、PV 和存储器实例。 对于静态配置的存储或使用设置了 reclaimPolicy: Retain 的存储类配置的存储,必须手动删除 PVC、PV 和存储实例,以避免进一步收费。
删除存储后,如何停止计费?
根据您删除的存储组件和删除时间,计费周期可能不会立即停止。 如果删除了 PVC 和 PV,但未删除 IBM Cloud 帐户中的存储器实例,那么该实例仍然存在,因此仍需要为此付费。

如果删除了 PVC、PV 和存储器实例,那么计费周期会停止,具体取决于在供应存储器时选择的 billingType 以及选择的存储器删除方式。

  • 从 IBM Cloud 控制台或 CLI 手动取消持久存储实例时,计费会按如下方式停止:

    • 按小时计费存储器:将立即停止计费。 取消存储器后,可能最长 72 小时内仍会在控制台中看到该存储器实例。
    • 按月计费存储器:可以选择立即取消或在周年日期取消。 在这两种情况下,将计费到当前计费周期结束,并停止对下一个计费周期的计费。 取消存储器后,可能最长 72 小时内仍会在控制台或 CLI 中看到该存储器实例。
    • 立即取消:选择此选项可立即除去存储器。 您或您的用户都无法再使用存储器,也无法恢复数据。
    • 周年日期:选择此选项可在下一个周年日期取消存储器。 存储器实例会一直保持活动状态,直到下一个周年日期为止,并且在此日期之前,您可以继续使用这些存储器实例,例如让团队有时间来备份数据。
  • 使用设置了 reclaimPolicy: Delete 的存储类动态供应存储器时,如果您选择除去 PVC,将立即除去 PV 和存储器实例。 对于按小时计费的存储器,计费会立即停止。 对于按月计费的存储器,您仍需要为该月的剩余时间付费。 除去存储器并且计费停止后,可能最长 72 小时内仍会在控制台或 CLI 中看到该存储器实例。

删除持久存储前需要注意什么?
清除持久性存储器时,将删除其中存储的所有数据。 如果您需要数据的副本,请进行备份。
我删除了我的存储实例。 为什么我还能看到我的实例?
除去持久性存储器后,除去操作可能最长需要 72 小时才能完全处理好,在此之后存储器不会再显示在 IBM Cloud 控制台或 CLI 中。

正在清除 Block Storage for VPC

删除存储实例会永久删除所有数据。 无法撤销此操作。 确保在删除存储实例前备份数据。

从 IBM Cloud 帐户中除去 PVC、PV 和存储器实例,可避免对持久性存储器进一步收费。

开始之前:

要清除持久数据,请执行以下操作:

  1. 列出集群中的 PVC,并记下 PVC 的 NAMESTORAGECLASS 以及绑定到该 PVC 并显示为 VOLUME 的 PV 的名称。

    oc get pvc
    

    示例输出

    NAME                  STATUS    VOLUME                                     CAPACITY   ACCESSMODES   STORAGECLASS            AGE
    claim1   Bound     pvc-06886b77-102b-11e8-968a-f6612bb731fb   20Gi       RWO           class       78d
    claim2     Bound     pvc-457a2b96-fafc-11e7-8ff9-b6c8f770356c   4Gi        RWX           class 105d
    claim3      Bound     pvc-1efef0ba-0c48-11e8-968a-f6612bb731fb   24Gi       RWX           class        83d
    
  2. 查看存储类的 ReclaimPolicybillingType

    oc describe storageclass <storageclass_name>
    

    如果回收策略显示 Delete,那么在除去 PVC 时会除去 PV 和物理存储器。 如果回收策略显示 Retain,或者所供应的存储器不具有存储类,那么在除去 PVC 时不会除去 PV 和物理存储器。 PVC、PV 和物理存储器必须分别进行除去。

    如果存储器按月收费,那么即使在计费周期结束之前除去了存储器,也仍需要按整月付费。

  3. 除去安装了 PVC 的所有 pod。 列出安装了 PVC 的所有 pod。 如果 CLI 输出中没有返回 pod,则说明没有 pod 使用 PVC。

    oc get pods --all-namespaces -o=jsonpath='{range .items[*]}{"\n"}{.metadata.name}{":\t"}{range .spec.volumes[*]}{.persistentVolumeClaim.claimName}{" "}{end}{end}' | grep "<pvc_name>"
    

    示例输出

    depl-12345-prz7b:    claim1
    
  4. 除去使用 PVC 的 pod。 如果 pod 是部署的一部分,请除去该部署。

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

    oc get pods
    
  6. 除去 PVC。

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

    oc get pv <pv_name>
    
  8. 如果 PV 未删除,请手动除去该 PV。

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

    oc get pv
    
  10. 列出 PV 指向的物理存储器实例,并记下物理存储器实例的 id

    ibmcloud is volumes | grep <pv_name>
    
  11. 除去物理存储器实例。

    ibmcloud is volume-delete <vpc_block_id>
    
  12. 验证物理存储器实例是否已除去。

    删除过程最长可能需要 72 小时才能完成。

    ibmcloud is volumes