Kubernetes防止使用“ Kubectl delete -f PVC_NAME”删除PVC。

问题描述 投票:0回答:1

情况:我的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]

但是它不起作用...

  1. 从FILE_WITH_YAMLS.yaml中删除PVC。不会再使用“ kubectl delete -f FILE_WITH_YAMLS.yaml”将其删除。但是它很容易忘记删除PVC,因此我认为它太冒险了。

  2. ???你有什么想法吗?

我的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

感谢您的帮助!

kubernetes kubernetes-helm kubectl kubernetes-pvc
1个回答
0
投票

我没有尝试解决方案,但可能会起作用。标记要删除的资源,例如delete = true ..etc

在删除命令之后,指定类似标签

kubectl delete -f *.yaml -l delete=true
© www.soinside.com 2019 - 2024. All rights reserved.