kubernetes - 何时在 kubernetes 上删除 PersistentVolume?
问题描述
当我们在一个文件上运行时出现了这个问题kubectl delete -f
,该文件以某种方式包含整个测试部署所在的命名空间的声明。
该系统(不是我们配置的,因此对我们来说有点模糊)具有由 OpenEBS 系统提供的卷。
在已删除的命名空间中,有一些 PVC 在 OpenEBS 上提供了 PV。当命名空间被删除时,PVC 被删除,所有的 PV 也被删除。
我阅读了相当多的文档,但我还没有找到我的问题的明确答案。知道;
- PV 没有作用域,因此不属于任何命名空间
- 如果 PVC 被删除,则绑定的(如果存在)PV 只有在
reclaimPolicy
设置为时才会被删除Delete
由于命名空间删除而删除 PV 的唯一情况是命名空间包含绑定到具有reclaimPolicy: Delete
. 因此,我们系统中所有配置的 PV 都有这个问题。或者我错过了什么?
解决方案
基本上流程是这样的:
- 当一个命名空间被删除时,这个命名空间内的所有对象也将被删除
- 现在,如果已删除的命名空间中有任何 PVC,那么它将被删除
- 根据规则,如果一个 PVC 被删除,那么它的有界 PV 也将
reclaimPolicy
被删除。
注意:通常要先删除 PVC,您需要删除引用它的 pod。并且要首先删除绑定的 PV,您需要删除它各自的 PVC。删除系统就像:首先删除 pod(引用该 PVC),然后删除相应的 PVC,然后删除 PV(如果 reclainPolicy 被删除)。
推荐阅读
- c# - 使用 C# 从 url 下载 .webp 图像
- android - 在 Android 7.1 (API 25) 上,LocationManager 在 android.location.LocationListener.onStatusChanged 中崩溃并出现致命异常
- flutter - 如何在 Flutter 中启动时调用函数
- apache-spark - 使用通配符与火花过滤器访问 aws s3
- node.js - dynamodb 可以使用高精度数字字符串作为排序键吗?
- objective-c - Obj-C - 在NSString中的字符串之后获取前X个字符?
- react-native - React Native 和 FFMPEG 以不同的方式呈现文本
- python - 需要自动增量值,但为什么呢?
- c# - 在 C# 中,如何将字符串输出 x 次?
- python - 如何检查文件夹中的文件是否与 .csv 文件中指定的文件名一致?