Kubernetes: ошибка PersistentVolumeClaim, Запрещено: неизменяемо после создания, за исключением ресурсов.requests для связанных утверждений

Я создал StorageClass и PersistentVolume, но когда я пытаюсь создать PersistentVolumeClaim, я получаю следующую ошибку: «PersistentVolumeClaim« esp-pv »недействителен: spec: Forbidden: неизменяем после создания, за исключением ресурсов.requests для связанных утверждений». Я попытался удалить StorageClass PersistentVolume и PersistentVolumeClaim, как предлагали другие сообщения, а затем воссоздать sc, pv и pvc, но получаю ту же ошибку.

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
   name: manual
provisioner: kubernetes.io/no-provisioner
#volumeBindingMode: WaitForFirstConsumer
volumeBindingMode: Immediate
allowVolumeExpansion: true
apiVersion: v1
kind: PersistentVolume
metadata:
   name: esp-pv-volume   # name of the pv 
   namespace: espkube    # namespace where the p vis applied
   labels:
     type: local
spec:
   storageClassName: manual
   accessModes:
     - ReadWriteMany  # esp, studio and streamviewer can all write to this space
   hostPath:
     path: "/mnt/data/"
   capacity:
     storage: 10Gi  # volume size requested
apiVersion: v1
kind: PersistentVolumeClaim 
metadata:
   name: esp-pv
   namespace: espkube
spec:
   storageClassName: manual
   accessModes:
     - ReadWriteMany # esp, studio and streamviewer can all write to this space
   resources:
     requests:
       storage: 10Gi  # volume size requested

person annette_dio    schedule 11.02.2020    source источник
comment
Вы уверены, что удалили их полностью?   -  person coderanger    schedule 11.02.2020
comment
Я использовал kubectl delete pv esp-pv-volume --grace-period = 0 --force, затем сделал kubectl get pv и kubectl describe, и обе команды вернули сообщение о том, что они не существуют. Есть ли другой способ полностью удалить их? Спасибо!   -  person annette_dio    schedule 12.02.2020
comment
Это приведет к удалению только PV, а не PVC.   -  person coderanger    schedule 12.02.2020
comment
Извините, я удалил pv, sc и не могу удалить pvc, так как он никогда не привязывается к pv. Я новичок в этом. Когда я пытаюсь удалить ПВХ, он не может, потому что его не существует?   -  person annette_dio    schedule 12.02.2020
comment
$ kubectl delete pvc esp-pv --grace-period = 0 --force warning: Немедленное удаление не требует подтверждения того, что работающий ресурс был прекращен. Ресурс может продолжать работать в кластере бесконечно. Ошибка сервера (NotFound): persistentvolumeclaims esp-pv not found $ kubectl get pvc Ресурсы не найдены в пространстве имен по умолчанию. $ kubectl describe pvc esp-pv Error from server (NotFound): persistentvolumeclaims esp-pv not found   -  person annette_dio    schedule 12.02.2020
comment
Вам нужно дать ему пространство имен kubectl delete pvc -n espkube esp-pv. Это сработало для PV, потому что они не используют пространства имен.   -  person coderanger    schedule 12.02.2020
comment
Спасибо, что решили мою проблему! Теперь я могу привязать пвх к пв.   -  person annette_dio    schedule 12.02.2020


Ответы (2)


Решено в комментариях, удаление объекта с пространством имен (а это большинство из них) требует указания пространства имен.

person coderanger    schedule 12.02.2020

Вы должны оставить комментарий ниже в PVC или PV перед их удалением, иначе они останутся в состоянии завершения.

finalizers:
  - kubernetes.io/pv-protection

to

  #finalizers:
  #- kubernetes.io/pv-protection

чтобы удалить пвх или пв

person Mr Kashyap    schedule 10.11.2020