管理 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 集群附加组件
-
获取集群标识。
ibmcloud oc cluster ls
-
查看可用的附加组件版本。
ibmcloud oc cluster addon versions
-
禁用附加组件。
ibmcloud oc cluster addon disable vpc-file-csi-driver --cluster CLUSTER
-
启用较新版本的附加组件。
ibmcloud oc cluster addon enable vpc-file-csi-driver --cluster CLUSTER --version VERSION
-
通过运行以下命令来验证是否已启用附加组件。
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
在配置图中设置资源和请求限制
-
运行以下命令以编辑 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
-
根据需要编辑参数,然后保存文件。
禁用附加组件
禁用 vpc-file-csi-driver
将从工作程序节点中除去传输中的加密软件包。
-
运行以下命令禁用该插件。
ibmcloud oc cluster addon disable --addon vpc-file-csi-driver --cluster CLUSTER
-
验证是否已除去 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 和存储器实例,可避免对持久性存储器进一步收费。
开始之前:
- 确保备份了要保留的所有数据。
- 访问 Red Hat OpenShift 集群。
要清除持久数据,请执行以下操作:
-
列出集群中的 PVC,并记下 PVC 的
NAME
、STORAGECLASS
以及绑定到该 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
-
查看存储类的
ReclaimPolicy
和billingType
。oc describe storageclass <storageclass_name>
如果回收策略显示
Delete
,那么在除去 PVC 时会除去 PV 和物理存储器。 如果回收策略显示Retain
,或者所供应的存储器不具有存储类,那么在除去 PVC 时不会除去 PV 和物理存储器。 PVC、PV 和物理存储器必须分别进行除去。如果存储器按月收费,那么即使在计费周期结束之前除去了存储器,也仍需要按整月付费。
-
除去安装了 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
-
除去使用 PVC 的 pod。 如果 pod 是部署的一部分,请除去该部署。
oc delete pod <pod_name>
-
验证 pod 是否已除去。
oc get pods
-
除去 PVC。
oc delete pvc <pvc_name>
-
查看 PV 的阶段状态。 使用先前检索到的显示为
VOLUME
的 PV 的名称。 除去 PVC 时,会释放绑定到该 PVC 的 PV。 如果 PV 是自动删除的,那么该 PV 会进入Deleting
状态;如果必须手动删除 PV,那么该 PV 会进入Released
状态,具体取决于存储器的供应方式。 注:对于自动删除的 PV,在删除之前,阶段状态可能会短暂地显示为Released
。 请在几分钟后重新运行该命令以查看该 PV 是否已除去。oc get pv <pv_name>
-
如果 PV 未删除,请手动除去该 PV。
oc delete pv <pv_name>
-
验证 PV 是否已除去。
oc get pv
-
列出您的共享。
ibmcloud is shares
-
列出每个文件共享并查找关联的集群标识。
ibmcloud is share SHARE | grep CLUSTER-ID
-
删除共享。
ibmcloud is share-delete (SHARE1 SHARE2 ...)