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

krugob8w  于 2023-08-03  发布在  Kubernetes
关注(0)|答案(2)|浏览(115)

我已经通过在AKS中的“azure-file”存储类上的PersistentColummeClaims创建了几个持久卷。现在,Azure提供的StorageClass的挂载选项不符合我们的需求,我不得不使用不同的挂载选项更新/重新配置它。
我现在是否必须手动销毁绑定的PersistentVolumes才能强制重新创建和重新配置(不同的装载),还是由置备程序负责?
最好的办法是什么?

  • 是否删除持久性卷本身?
  • 是否删除索赔?
  • 删除卷绑定的位置(我猜不是)
  • 是否删除并重新创建整个StatefulSet?
cotxawn7

cotxawn71#

@SahadatHossain的答案是正确的,但我想用更多的细节和来源来扩展它。
了解卷和声明的生命周期非常重要。PV和PVC之间的交互遵循此生命周期:

  • 供应-可以是静态的,也可以是动态的。
  • 装订
  • 正在使用
  • 回收

“回收”步骤将我们带到您的实际使用情形:
当用户使用完卷后,他们可以从允许回收资源的API中删除PVC对象。PersistentVolume的回收策略告诉群集在卷的声明被释放后如何处理该卷。目前,卷可以是“保留”、“回收”或“删除”。

  • Retain(保留)-Retain回收策略允许手动回收资源。
  • 删除-对于支持Delete回收策略的卷插件,删除操作将从Kubernetes中删除PersistentVolume对象,并删除外部基础架构中的关联存储资产。
  • 回收-如果基础卷插件支持,则回收回收策略会对卷执行基本清理(rm -rf /thevolume/*),并使其再次可用于新的声明。警告:不赞成使用Recycle回收策略(source)。相反,如果您的数据很有价值并且需要在两次Pod运行之间保持不变,则建议使用“Delete”(删除)策略(动态配置的默认设置)或“Retain”(保留)策略(请参见docs)。

在更新Pod规格时,您可以考虑使用各种更新策略来更新部署(如果可能),例如“滚动更新”:
.spec.strategy.type==RollingUpdate时,部署将以滚动更新方式更新Pod。可以指定maxUnavailablemaxSurge来控制滚动更新过程。

30byixjq

30byixjq2#

基本上,如果你删除一个PVC,那么PV的状态将根据它的回收策略。PV可以有三个回收策略,分别命名为:RetainRecycleDelete
对于Delete,删除相应的PVC时,PV将自动删除。但是记住一个pv不能被删除而不被删除它是有界的pvc。此外,对于动态资源调配,默认策略是Delete。同样,如果当前任何pod正在使用pvc,则不能删除它。
现在,事情取决于你。

相关问题