重新配置 StorageClass 后是否必须重新创建已绑定的 PersistentVolumes

Do I have to recreate already bound PersistentVolumes after reconfiguring StorageClass

我已经通过 PersistentColumeClaims 在 AKS 中的“azure-file”StorageClass 上创建了几个 PersistenVolume。现在,Azure 提供的 StorageClass 的挂载选项不符合我们的需求,我不得不 update/reconfigure 使用不同的 MountOptions。

我现在是否必须手动销毁绑定的 PersistentVolume 以强制进行重新创建和重新配置(不同的装载),或者由供应商负责?

强制执行此操作的最佳方式是什么?

基本上,如果您删除 PVC,则 PV 的状态将根据它的 ReclaimPolicy。 PV 可以有三种回收策略,分别命名为:RetainRecycleDelete.
对于Delete,删除respected PVC时会自动删除PV。但是请记住,如果不删除它是有界的 pvc,就不能删除 pv。同样对于动态配置,默认策略是 Delete。同样,如果当前任何 pod 正在使用 pvc,则无法删除它。

现在,事情取决于你。

@SahadatHossain 的回答是正确的,但我想用更多的细节和来源来扩展它。

了解 Lifecycle of a volume and claim 很重要。 PV 和 PVC 之间的交互遵循这样的生命周期:

回收步骤将我们带到您的实际用例中:

When a user is done with their volume, they can delete the PVC objects from the API that allows reclamation of the resource. The reclaim policy for a PersistentVolume tells the cluster what to do with the volume after it has been released of its claim. Currently, volumes can either be Retained, Recycled, or Deleted.

  • Retain - Retain 回收策略允许手动回收资源。

  • Delete - 对于支持 Delete 回收策略的卷插件,删除会从 Kubernetes 中删除 PersistentVolume 对象,以及外部基础设施中的关联存储资产.

  • Recycle - 如果基础卷插件支持,回收策略对卷执行基本清理 (rm -rf /thevolume/*) 并使其再次可用于新的宣称。 警告Recycle 回收政策已弃用。相反,推荐的方法是使用动态配置。

关于更新 Pod 规格,您可以考虑 Updating a Deployment (if possible) with a various update strategies like for example Rolling Update:

The Deployment updates Pods in a rolling update fashion when .spec.strategy.type==RollingUpdate. You can specify maxUnavailable and maxSurge to control the rolling update process.