重新配置StorageClass后,我必须重新创建已经绑定的PersistentVolumes吗? &



我已经通过persistentcolumecclaims在"azure-file"AKS中的StorageClass。现在Azure提供的StorageClass的挂载选项不符合我们的需求,我不得不用不同的挂载选项更新/重新配置它。

我现在是否必须手动销毁绑定的PersistentVolumes以强制重新创建和重新配置(不同的挂载),或者提供程序是否负责此操作?

强制执行的最佳方法是什么?

  • 删除PersistentVolume本身?
  • 删除索赔?
  • 删除卷绑定的位置(我猜没有)
  • 删除并重新创建整个StatefulSet?

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

了解卷和索赔的生命周期是很重要的。pv和pvc之间的相互作用遵循以下生命周期:

  • Provisioning—可以是静态的也可以是动态的。

  • 绑定

  • 使用
  • 回收

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

当用户完成了他们的卷,他们可以删除PVC对象从允许资源回收的API中获取。的回收持久化卷的策略告诉集群如何处理持久化卷音量后,它已释放其索赔。目前,卷可以保留、回收或删除。

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

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

  • Recycle -如果底层卷插件支持,Recycle回收策略对卷执行基本擦洗(rm -rf /thevolume/*),并使其再次可用于新的索赔。:不支持使用Recycle回收策略(源)。相反,推荐的方法是使用"Delete"策略(默认为动态配置)或"保留";如果您的数据很有价值,并且需要在pod运行之间持久化(请参阅文档)。

当涉及到更新Pod规范时,您可以考虑使用各种更新策略更新部署(如果可能的话),例如滚动更新:

部署以滚动更新的方式更新pod.spec.strategy.type==RollingUpdate。可以指定maxUnavailablemaxSurge来控制滚动更新过程。

基本上如果你删除一个PVC,那么PV的状态将根据它的ReclaimPolicy。PV有三个回收策略,分别为:RetainRecycleDelete
对于Delete,当被尊重的PVC被删除时,PV将被自动删除。但是记住pv不能被删除除非它是有界的pvc。同样,对于动态配置,默认策略是Delete。同样,如果当前有pod正在使用pvc,则不能删除它。

现在,一切都取决于你。

相关内容

  • 没有找到相关文章

最新更新