重新配置 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 以强制进行重新创建和重新配置(不同的装载),或者由供应商负责?
强制执行此操作的最佳方式是什么?
- 删除 PersistentVolume 本身?
- 删除声明?
- 删除卷绑定的地方(我猜不是)
- 删除并重新创建整个 StatefulSet?
基本上,如果您删除 PVC,则 PV 的状态将根据它的 ReclaimPolicy。 PV 可以有三种回收策略,分别命名为:Retain
、Recycle
、Delete
.
对于Delete
,删除respected PVC时会自动删除PV。但是请记住,如果不删除它是有界的 pvc,就不能删除 pv。同样对于动态配置,默认策略是 Delete
。同样,如果当前任何 pod 正在使用 pvc,则无法删除它。
现在,事情取决于你。
@SahadatHossain 的回答是正确的,但我想用更多的细节和来源来扩展它。
了解 Lifecycle of a volume and claim 很重要。 PV 和 PVC 之间的交互遵循这样的生命周期:
Provisioning - which can be static or dynamic.
-
-
-
回收步骤将我们带到您的实际用例中:
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.
我已经通过 PersistentColumeClaims 在 AKS 中的“azure-file”StorageClass 上创建了几个 PersistenVolume。现在,Azure 提供的 StorageClass 的挂载选项不符合我们的需求,我不得不 update/reconfigure 使用不同的 MountOptions。
我现在是否必须手动销毁绑定的 PersistentVolume 以强制进行重新创建和重新配置(不同的装载),或者由供应商负责?
强制执行此操作的最佳方式是什么?
- 删除 PersistentVolume 本身?
- 删除声明?
- 删除卷绑定的地方(我猜不是)
- 删除并重新创建整个 StatefulSet?
基本上,如果您删除 PVC,则 PV 的状态将根据它的 ReclaimPolicy。 PV 可以有三种回收策略,分别命名为:Retain
、Recycle
、Delete
.
对于Delete
,删除respected PVC时会自动删除PV。但是请记住,如果不删除它是有界的 pvc,就不能删除 pv。同样对于动态配置,默认策略是 Delete
。同样,如果当前任何 pod 正在使用 pvc,则无法删除它。
现在,事情取决于你。
@SahadatHossain 的回答是正确的,但我想用更多的细节和来源来扩展它。
了解 Lifecycle of a volume and claim 很重要。 PV 和 PVC 之间的交互遵循这样的生命周期:
Provisioning - which can be static or dynamic.
回收步骤将我们带到您的实际用例中:
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 specifymaxUnavailable
andmaxSurge
to control the rolling update process.