IBM Cloud Docs
管理 IBM Cloud File Storage for VPC

管理 IBM Cloud File Storage for VPC

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

以下限制适用于该附加组件。

  • 建议您的集群和 VPC 属于同一资源组。 如果您的集群和 VPC 位于单独的资源组中,那么在配置文件共享之前,您必须创建自己的存储类并提供您的 VPC 资源组 ID。 有关详细信息,请参阅For more information, see 创建自己的存储类别
  • 4.11 及更高版本的群集引入了新的安全组规则。 这些规则更改意味着您必须先同步安全组,然后才能使用File Storage for VPC。 有关详细信息,请参阅For more information, see 添加File Storage for VPC到应用程序
  • 版本中添加了新的存储类别2.0的附加组件。 您无法再配置使用旧存储类别的新文件共享。 使用较旧存储类别的现有卷可以继续运行,但无法扩展使用较旧类别创建的卷。 有关详细信息,请参阅 迁移到新的存储类别

更新 File Storage for VPC 集群附加组件

访问 Red Hat OpenShift 集群

  1. 获取集群标识。

    ibmcloud oc cluster ls
    
  2. 查看可用的附加组件版本。

    ibmcloud oc cluster addon versions
    
  3. 禁用附加组件。

    ibmcloud oc cluster addon disable vpc-file-csi-driver --cluster CLUSTER
    
  4. 启用较新版本的附加组件。

    ibmcloud oc cluster addon enable vpc-file-csi-driver --cluster CLUSTER --version VERSION
    
  5. 通过运行以下命令来验证是否已启用附加组件。

    oc get deploy -n kube-system | grep file
    
    ibm-vpc-file-csi-controller   2/2     2            2           13m
    
    oc get ds -n kube-system | grep file
    
    ibm-vpc-file-csi-node    2         2         2       2            2           <none>          14m
    
    oc get pods -n kube-system  | grep file
    
    ibm-vpc-file-csi-controller-7899db784-kc29g   5/5     Running   0             14m
    ibm-vpc-file-csi-controller-7899db784-mp5jt   5/5     Running   0             14m
    ibm-vpc-file-csi-node-bfqdz                   4/4     Running   0             14m
    ibm-vpc-file-csi-node-n7jbx                   4/4     Running   0             14m
    

在配置图中设置资源和请求限制

  1. 运行以下命令以编辑 ConfigMap。

    oc edit cm addon-vpc-file-csi-driver-configmap -n kube-system
    

    示例输出。

    apiVersion: v1
    data:
      CSIBlockDriverCPULimit: 300m
      CSIBlockDriverCPURequest: 75m
      CSIBlockDriverMemoryLimit: 600Mi
      CSIBlockDriverMemoryRequest: 150Mi
      CSIDriverRegistrarCPULimit: 40m
      CSIDriverRegistrarCPURequest: 10m
      CSIDriverRegistrarMemoryLimit: 80Mi
      CSIDriverRegistrarMemoryRequest: 20Mi
      CSILivenessProbeCPULimit: 20m
      CSILivenessProbeCPURequest: 5m
      CSILivenessProbeMemoryLimit: 40Mi
      CSILivenessProbeMemoryRequest: 10Mi
      CSINodeDriverCPULimit: 120m
      CSINodeDriverCPURequest: 30m
      CSINodeDriverMemoryLimit: 300Mi
      CSINodeDriverMemoryRequest: 75Mi
      CSIProvisionerCPULimit: 80m
      CSIProvisionerCPURequest: 20m
      CSIProvisionerMemoryLimit: 160Mi
      CSIProvisionerMemoryRequest: 40Mi
      CSIResizerCPULimit: 80m
      CSIResizerCPURequest: 20m
      CSIResizerMemoryLimit: 160Mi
      CSIResizerMemoryRequest: 40Mi
      EIT_ENABLED_WORKER_POOLS: ""
      ENABLE_EIT: "false"
      SET_DEFAULT_STORAGE_CLASS: ""
      SecretSidecarCPULimit: 60m
      SecretSidecarCPURequest: 15m
      SecretSidecarMemoryLimit: 80Mi
      SecretSidecarMemoryRequest: 20Mi
    kind: ConfigMap
    metadata:
      creationTimestamp: "2025-06-19T11:23:13Z"
      labels:
        app.kubernetes.io/name: ibm-vpc-file-csi-driver
      name: addon-vpc-file-csi-driver-configmap
    
  2. 根据需要编辑参数,然后保存文件。

禁用附加组件

禁用 vpc-file-csi-driver 将从工作程序节点中除去传输中的加密软件包。

  1. 运行以下命令禁用该插件。

    ibmcloud oc cluster addon disable --addon vpc-file-csi-driver --cluster CLUSTER
    
  2. 验证是否已除去 pod。

    oc get pods -n kube-system  | grep file
    

了解存储器除去选项

在 V 1.2中不支持标记。 当使用 --force-delete-storage 选项删除集群时,这会影响文件共享的除去。 在删除集群之前,请确保清除使用该附加组件的 1.2 版本创建的所有 PVC。

根据供应存储器的方式以及已除去的组件,从 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 中。

清除持久性存储器

从 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. 列出您的共享。

    ibmcloud is shares
    
  11. 列出每个文件共享并查找关联的集群标识。

    ibmcloud is share SHARE | grep CLUSTER-ID
    
  12. 删除共享。

    ibmcloud is share-delete (SHARE1 SHARE2 ...)