如何解决重新配置 StorageClass 后,我是否必须重新创建已绑定的 PersistentVolumes
我通过 PersistentColumeClaims 在 AKS 中的“azure-file”StorageClass 上创建了几个 PersistenVolume。现在 Azure 提供的 StorageClass 的挂载选项不符合我们的需求,我不得不使用不同的 MountOptions 更新/重新配置它。
我现在是否必须手动销毁绑定的 PersistentVolumes 以强制重新创建和重新配置(不同的安装),还是由供应商负责?
强制这样做的最佳方法是什么?
- 删除 PersistentVolume 本身?
- 删除声明?
- 删除绑定卷的位置(我猜不是)
- 删除并重新创建整个 StatefulSet?
解决方法
@SahadatHossain 的回答是对的,但我想用更多细节和来源对其进行扩展。
了解 Lifecycle of a volume and claim 很重要。 PV 和 PVC 之间的交互遵循这个生命周期:
-
Provisioning - 可以是 static 或 dynamic。
回收步骤将我们带到您的实际用例:
当用户完成他们的卷后,他们可以删除 PVC 对象 来自允许回收资源的 API。回收 PersistentVolume 的策略告诉集群如何处理 在它的索赔被释放后的数量。目前,卷可以 保留、回收或删除。
-
Retain -
Retain
回收策略允许手动回收资源。 -
Delete - 对于支持
Delete
回收策略的卷插件,删除操作会从 Kubernetes 中删除 PersistentVolume 对象,以及外部基础架构中的相关存储资产。 -
Recycle - 如果底层卷插件支持,回收回收策略对卷执行基本清理 (
rm -rf /thevolume/*
) 并使其再次可用于新的声明。 警告:Recycle
回收政策已弃用。相反,推荐的方法是使用动态配置。
在更新 Pod 规格时,您可以考虑将 Updating a Deployment(如果可能)与各种 update strategies 一起使用,例如 Rolling Update:
部署以滚动更新方式更新 Pod,当
.spec.strategy.type==RollingUpdate
。您可以指定 maxUnavailable
和 maxSurge
来控制滚动更新过程。
基本上,如果您删除了 PVC,那么 PV 的状态将根据它的 ReclaimPolicy。 PV 可以有三个回收策略,命名为:Retain
、Recycle
和 Delete
。
对于Delete
,当相关PVC被删除时,PV将被自动删除。但是请记住,如果不删除 pv,则无法删除它是有界 pvc。同样对于动态配置,默认策略是 Delete
。同样,如果当前有任何 pod 正在使用 pvc,则无法删除它。
现在,一切都取决于你。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。