Kubernetes删除Pod后的PV/PVC状态
我有一个Kubernetes集群,部署了一些吊舱(DB、前端、Redis)。我不能完全理解的一个部分是删除pod后PVC会发生什么 例如,如果我删除绑定到索赔A的POD A,我知道索赔A不会自动删除。如果我尝试重新创建POD,它会连接回同一个PVC,但所有数据都丢失了 有人能解释一下发生了什么吗?我看过官方文件,但目前没有任何意义Kubernetes删除Pod后的PV/PVC状态,kubernetes,kubernetes-pod,persistent-volumes,persistent-volume-claims,Kubernetes,Kubernetes Pod,Persistent Volumes,Persistent Volume Claims,我有一个Kubernetes集群,部署了一些吊舱(DB、前端、Redis)。我不能完全理解的一个部分是删除pod后PVC会发生什么 例如,如果我删除绑定到索赔A的POD A,我知道索赔A不会自动删除。如果我尝试重新创建POD,它会连接回同一个PVC,但所有数据都丢失了 有人能解释一下发生了什么吗?我看过官方文件,但目前没有任何意义 感谢您的帮助。PVC的寿命与POD无关。 如果仍然存在,可能是因为它已将ReceivePolicy设置为Retain,在这种情况下,即使PVC已消失,它也不会被删除
感谢您的帮助。PVC的寿命与POD无关。 如果仍然存在,可能是因为它已将ReceivePolicy设置为Retain,在这种情况下,即使PVC已消失,它也不会被删除 PersistentVolumes可以有各种回收策略,包括“保留”、“回收”和“删除”。对于动态配置的PersistentVolumes,默认回收策略为“删除”。这意味着,当用户删除相应的PersistentVolumeClaim时,将自动删除动态配置的卷。如果卷包含宝贵的数据,则此自动行为可能不合适。 请注意,回收策略是Delete(默认值),它是两个回收策略之一,另一个是Retain。(第三个策略回收已被弃用)。在删除的情况下,移除PVC时,PV将自动删除,PVC上的数据也将丢失 在这种情况下,使用“保留”策略更合适。使用“保留”策略,如果用户删除PersistentVolumeClaim,则不会删除相应的PersistentVolume。相反,它被移动到发布阶段,在该阶段,它的所有数据都可以手动恢复 当永久卷受到保护时,也可能发生这种情况。您应该能够交叉验证这一点: 命令:
$ kubectl describe pvc PVC_NAME | grep Finalizers
输出:
Finalizers: [kubernetes.io/pvc-protection]
您可以通过使用kubectl修补程序将终结器设置为null来解决此问题:
$ kubectl patch pvc PVC_NAME -p '{"metadata":{"finalizers": []}}' --type=merge
编辑:
PersistentVolume可以以资源提供程序支持的任何方式装载到主机上。每个PV都有自己的访问模式集,描述特定PV的功能
访问模式为:
- ReadWriteOnce–该卷可以由单个用户以读写方式装入 节点
- ReadOnlyMany–卷可以由多个节点以只读方式装入
- ReadWriteMany–卷可以由多个节点以读写方式装入
- RWO-ReadWriteOnce
- ROX-现成的
- RWX-ReadWriteMany
$ kubectl edit pv your_pv
您应该在PersistentVolume中更新访问模式,如下所示
accessModes:
- ReadWriteMany
那么问题是如何让pod绑定回原来的pvc?我在DigitalOcean的单个节点上使用动态块存储。目前没有ReadWriteMany功能。您可以提供配置文件吗?