我已经通过在AKS中的“azure-file”存储类上的PersistentColummeClaims创建了几个持久卷。现在,Azure提供的StorageClass的挂载选项不符合我们的需求,我不得不使用不同的挂载选项更新/重新配置它。
我现在是否必须手动销毁绑定的PersistentVolumes才能强制重新创建和重新配置(不同的装载),还是由置备程序负责?
最好的办法是什么?
- 是否删除持久性卷本身?
- 是否删除索赔?
- 删除卷绑定的位置(我猜不是)
- 是否删除并重新创建整个StatefulSet?
2条答案
按热度按时间cotxawn71#
@SahadatHossain的答案是正确的,但我想用更多的细节和来源来扩展它。
了解卷和声明的生命周期非常重要。PV和PVC之间的交互遵循此生命周期:
“回收”步骤将我们带到您的实际使用情形:
当用户使用完卷后,他们可以从允许回收资源的API中删除PVC对象。PersistentVolume的回收策略告诉群集在卷的声明被释放后如何处理该卷。目前,卷可以是“保留”、“回收”或“删除”。
Retain
回收策略允许手动回收资源。Delete
回收策略的卷插件,删除操作将从Kubernetes中删除PersistentVolume对象,并删除外部基础架构中的关联存储资产。rm -rf /thevolume/*
),并使其再次可用于新的声明。警告:不赞成使用Recycle
回收策略(source)。相反,如果您的数据很有价值并且需要在两次Pod运行之间保持不变,则建议使用“Delete”(删除)策略(动态配置的默认设置)或“Retain”(保留)策略(请参见docs)。在更新Pod规格时,您可以考虑使用各种更新策略来更新部署(如果可能),例如“滚动更新”:
当
.spec.strategy.type==RollingUpdate
时,部署将以滚动更新方式更新Pod。可以指定maxUnavailable
和maxSurge
来控制滚动更新过程。30byixjq2#
基本上,如果你删除一个PVC,那么PV的状态将根据它的回收策略。PV可以有三个回收策略,分别命名为:
Retain
、Recycle
和Delete
。对于
Delete
,删除相应的PVC时,PV将自动删除。但是记住一个pv不能被删除而不被删除它是有界的pvc。此外,对于动态资源调配,默认策略是Delete
。同样,如果当前任何pod正在使用pvc,则不能删除它。现在,事情取决于你。