tot*_*oto 7 containers kubernetes persistent-volumes persistent-volume-claims
我将有状态集扩展到 4,当缩小到 1 时,我发现仍然有 4 个持久卷,索引从 0 到 3。
我还看到它们的状态都是Bound 我想这是因为我将它用作有状态集,所以它不会在缩小规模后删除卷。
我尝试手动删除其中之一(索引为 2 的那个),因为我确信它会释放我的卷,所以我使用了:
kubectl delete persistentvolume <volume>
Run Code Online (Sandbox Code Playgroud)
好吧,这没有帮助,它只是让这个卷永远处于终止状态......:/
我现在不知道如何删除这个和所有其他未使用的卷。
这是有状态集 yaml 中的卷配置。
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: ["ReadWriteOnce"]
storageClassName: "default"
resources:
requests:
storage: 7Gi
Run Code Online (Sandbox Code Playgroud)
如果我跑
kubectl get pvc --all-namespaces
Run Code Online (Sandbox Code Playgroud)
我明白了
NAMESPACE NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
default data-0 Bound pvc-23af1aec-e385-4778-b0b0-56f1d1dfdfee 7Gi RWO default 4h5m
default data-1 Bound pvc-34625107-1352-4715-b12c-2fc6ff22ed08 7Gi RWO default 4h4m
default data-2 Bound pvc-15dbdb53-d951-465d-b9c3-ebadfcc3c725 7Gi RWO default 4h3m
default data-3 Bound pvc-d317657f-194a-4f4f-8c5f-dff2843b693f 7Gi RWO default 4h3m
Run Code Online (Sandbox Code Playgroud)
如果我跑
kubectl get --no-headers persistentvolumes
Run Code Online (Sandbox Code Playgroud)
我明白了:
pvc-15dbdb53-d951-465d-b9c3-ebadfcc3c725 7Gi RWO Delete Terminating default/data-2 default 4h4m
pvc-23af1aec-e385-4778-b0b0-56f1d1dfdfee 7Gi RWO Delete Bound default/data-0 default 4h6m
pvc-34625107-1352-4715-b12c-2fc6ff22ed08 7Gi RWO Delete Bound default/data-1 default 4h5m
pvc-d317657f-194a-4f4f-8c5f-dff2843b693f 7Gi RWO Delete Bound default/data-3 default 4h3m
Run Code Online (Sandbox Code Playgroud)
在 StatefulSet 中,K8s 不会在 pod 终止后自动删除PV或自行删除,这是为了避免进一步的复杂化和数据安全。PVC这就是为什么在缩小规模后,我们需要手动进行。在PVCPod 终止后删除将根据存储类别和回收策略触发相应持久卷的删除。
请尝试删除persistent volume claim或PVC代替persistent volume。如果删除pvc它会自动删除相应的pv.
只需在 bash 中运行此命令:
kubectl delete pvc data-3
k8s v1.23 [alpha] 中引入了一个新功能来满足这一确切要求。在 STS 中查找PVC 保留策略。
删除时
配置删除 StatefulSet 时应用的卷保留行为
缩放时
配置当 StatefulSet 的副本数量减少时应用的卷保留行为;例如,缩小集合时。
对于您可以配置的每个策略,您可以将值设置为“删除”或“保留”。
像下面这样的东西对你有用。
以下来自 k8s 文档的片段:
apiVersion: apps/v1
kind: StatefulSet
...
spec:
persistentVolumeClaimRetentionPolicy:
whenDeleted: Retain
whenScaled: Delete
...
Run Code Online (Sandbox Code Playgroud)
除此之外,不要忘记设置要删除的PV 回收策略。这将确保一旦 PVC 被删除,甚至 PV 和支持卷也会被删除。
请参阅此图以更好地理解这一点。
| 归档时间: |
|
| 查看次数: |
10398 次 |
| 最近记录: |