情况:我的PVC有问题。我需要使用舵图来更新我们的监控。但是我们没有分till,所以我们必须使用用于创建yaml文件的helm模板,以便我们能够使用kubectl进行部署。有时我们需要更新头盔图表,因此我们需要经常重复此过程。
问题:使用“ Kubectl delete -f FILE_WITH_YAMLS.yaml && Kubectl create -f FILE_WITH_YAMLS.yaml”,它将删除一切,甚至包括我们的PVC(+ PV)。但是我不想删除PVC。
解决方案:1.我有一个想法,应该禁止在我们的PVC上进行删除,以便我们收到删除它的警告。据此:Kubernetes: Can't delete PersistentVolumeClaim (pvc)应该可以设置
Finalizers: [kubernetes.io/pvc-protection]
但是它不起作用...
从FILE_WITH_YAMLS.yaml中删除PVC。不会再使用“ kubectl delete -f FILE_WITH_YAMLS.yaml”将其删除。但是它很容易忘记删除PVC,因此我认为它太冒险了。
???你有什么想法吗?
我的PVC表单群集看起来像这样:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
annotations:
pv.kubernetes.io/bind-completed: "yes"
pv.kubernetes.io/bound-by-controller: "yes"
volume.beta.kubernetes.io/storage-provisioner: cinder.csi.openstack.org
creationTimestamp: "2020-05-11T07:15:11Z"
finalizers:
- kubernetes.io/pvc-protection
labels:
app: prometheus
chart: prometheus-10.4.0
component: server
heritage: Tiller
release: monitoring
name: monitoring-prometheus-server
namespace: monitoring
resourceVersion: "114848084"
selfLink: /api/v1/namespaces/monitoring/persistentvolumeclaims/monitoring-prometheus-server
uid: 3430de7d-d167-41c7-92cc-eb15803cdca7
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 15Gi
storageClassName: cinder
volumeMode: Filesystem
volumeName: pvc-3430de7d-d167-41c7-92cc-eb15803cdca7
status:
accessModes:
- ReadWriteOnce
capacity:
storage: 15Gi
phase: Bound
感谢您的帮助!
我没有尝试解决方案,但可能会起作用。标记要删除的资源,例如delete = true ..etc
在删除命令之后,指定类似标签
kubectl delete -f *.yaml -l delete=true