Kubernetes 使用 "Kubectl delete -f PVC_NAME"防止 PVC 被删除

标签 kubernetes kubernetes-helm kubectl kubernetes-pvc

情况: 我的 PVC 有问题。 我需要使用 Helm Chart 来更新我们的监控。但我们没有耕耘机,所以我们必须使用 用于创建 yaml 文件的 helm 模板,以便我们能够使用 kubectl 进行部署。有时我们需要更新 Helm chart ,因此我们需要经常重复该过程。

问题: 使用“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
    
    

    感谢您的帮助!

    最佳答案

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

    之后在删除命令中指定标签,例如

    kubectl delete -f *.yaml -l delete=true
    

    关于Kubernetes 使用 "Kubectl delete -f PVC_NAME"防止 PVC 被删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61725577/

    相关文章:

    kubernetes - kubernetes 中环境变量的最大大小

    kubernetes - 使用 ansible 将 .kube 配置文件从 master 复制到所有节点

    kubernetes - 如何在不删除 Pod 的情况下从服务中移除 Pod

    kubernetes - 安装了 prometheus-community/helm-charts 但我无法获取 "default"命名空间的指标

    linux - 运行`Error: could not find tiller`时`helm version`

    Kubernetes - 以编程方式找出服务 ip 范围 CIDR

    kubernetes - 如何通过Kubernetes服务(如网关API)路由到特定的Pod

    kubernetes - 新 Helm !是否可以进入从稳定 repo 中提取的图表?

    kubernetes - Config not found :/etc/kubernetes/admin. conf -- 设置 kubeadm 工作节点后

    docker - 如何防止 minikube 集群在启动时运行?