amazon-web-services - 使用持久卷管理 K8s 中的卷回滚
问题描述
我有一个由我计划升级的 helm 图表管理的 kubernetes 部署。该应用程序附加了 2 个持久卷,它们是 AWS 中的 EBS 卷。如果部署出错并需要回滚,我可能还需要回滚 EBS 卷。在 K8s 中如何管理它?我可以从我预先部署的快照中轻松地在 AWS 中手动创建卷,但是为了部署使用它,我需要编辑 pv yaml 文件以指向我的新卷 ID?或者我是否需要使用卷 ID 和新 PVC 创建一个新 PV,然后编辑我的部署以使用该声明名称?
解决方案
首先你需要用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 后,您将无法恢复该卷的数据。没有“回收站”。
推荐阅读
- scala - SparkML - 创建 RandomForestRegressionModel 的 df(feature, feature_importance)
- java - 昙花一现的春云流
- laravel - 未定义的变量:toemail Laravel 邮件问题
- excel - Excel - 从多个范围过滤行
- elasticsearch - Elasticsearch - 计算子范围聚合
- javascript - 在 Postman 中将字段添加到 json
- vue.js - V-for="项目中的项目"。在计算属性中使用“项目”
- android - 如何测试共享偏好
- ajax - 未捕获的类型错误:无法设置未定义的属性“scriptsFailed”
- linux - 连接 SSH 并与另一个用户执行脚本