Kubernetes防止PVC被删除,并带有;Kubectl删除-f PVC“U名称”;
情况: 我的PVC有问题。 我需要使用舵图来更新我们的监控。但是我们没有舵柄,所以我们必须使用 用于创建yaml文件的helm模板,以便我们能够使用kubectl部署它。我们有时需要更新掌舵图,所以我们需要经常重复这个过程 问题: 使用“Kubectl delete-f FILE_With_YAMLS.yaml&&Kubectl create-f FILE_With_YAMLS.yaml”,它将删除 一切,甚至我们的PVC(+PV)。但我不想删除PVC 解决方案: 1.我的想法是,应该禁止删除我们的PVC,这样我们就可以得到删除它的警告。 据此: 应该可以设置Kubernetes防止PVC被删除,并带有;Kubectl删除-f PVC“U名称”;,kubernetes,kubernetes-helm,kubectl,kubernetes-pvc,Kubernetes,Kubernetes Helm,Kubectl,Kubernetes Pvc,情况: 我的PVC有问题。 我需要使用舵图来更新我们的监控。但是我们没有舵柄,所以我们必须使用 用于创建yaml文件的helm模板,以便我们能够使用kubectl部署它。我们有时需要更新掌舵图,所以我们需要经常重复这个过程 问题: 使用“Kubectl delete-f FILE_With_YAMLS.yaml&&Kubectl create-f FILE_With_YAMLS.yaml”,它将删除 一切,甚至我们的PVC(+PV)。但我不想删除PVC 解决方案: 1.我的想法是,应该禁止删除我
Finalizers: [kubernetes.io/pvc-protection]
但它不起作用
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等 之后,在delete命令中指定标签,如
kubectl delete -f *.yaml -l delete=true
你能简单描述一下你的目标吗?你的描述相当复杂。我必须删除一个包含许多部署、PVC等的大型yaml文件,。。。等等“kubectl删除-f*.yaml。pvc在文件中。因此,当执行该命令时,我的PVC将消失。我想阻止它。如果你不想删除pv和pvc,那么你可以用_YAMLS.yaml从
文件中删除这些yaml,并在可能的情况下将它们保存在另一个单独的yaml中。是的,我在第2点中指出了这一点:)但我不太喜欢这个解决方案,因为我们有时会得到一个舵手的更新,我们必须用kubectl再次部署它。而且很容易忘记从YAML中删除PVC。