首页 > 解决方案 > 使用持久卷管理 K8s 中的卷回滚

问题描述

我有一个由我计划升级的 helm 图表管理的 kubernetes 部署。该应用程序附加了 2 个持久卷,它们是 AWS 中的 EBS 卷。如果部署出错并需要回滚,我可能还需要回滚 EBS 卷。在 K8s 中如何管理它?我可以从我预先部署的快照中轻松地在 AWS 中手动创建卷,但是为了部署使用它,我需要编辑 pv yaml 文件以指向我的新卷 ID?或者我是否需要使用卷 ID 和新 PVC 创建一个新 PV,然后编辑我的部署以使用该声明名称?

标签: amazon-web-serviceskubernetesamazon-ebspersistent-volumes

解决方案


首先你需要用reclaimPolicy定义一个存储类:Delete

https://kubernetes.io/docs/concepts/storage/storage-classes/

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: standard
provisioner: kubernetes.io/aws-ebs
parameters:
  type: gp2
reclaimPolicy: Delete
allowVolumeExpansion: true
mountOptions:
  - debug
volumeBindingMode: Immediate

然后,在您的掌舵图中,您需要使用该存储类。因此,当您删除 helm chart 时,持久化声明将被删除,并且由于使用的存储类的 ReclaimPolicy=Delete,相应的持久化卷也将被删除。

不过要小心。删除 PV 后,您将无法恢复该卷的数据。没有“回收站”。


推荐阅读