Фраза, которая говорит, что Pods потребляют ресурсы узла, а PVC потребляют ресурсы PV, могут быть полезны для полного понимания теории и дружбы между PV и PVC.
Я попытался полностью воспроизвести поведение, отмеченное с использованиемпредоставил файл YAML и не удалось, и он вернул ожидаемый результат.Следовательно, прежде чем предоставить какие-либо дополнительные подробности, вот краткий обзор моей репродукции.
Шаг 1: Создание PD в зоне Европа-запад1
sunny@dev-lab:~$ gcloud compute disks create --size 5Gi disk-for-rabbitmq --zone europe-west1-b
WARNING: You have selected a disk size of under [200GB]. This may result in poor I/O
performance. For more information, see:
NAME ZONE SIZE_GB TYPE STATUS
disk-for-rabbitmq europe-west1-b 5 pd-standard READY
Шаг 2: Создание PV и PVC с использованием файла проекта YAML
sunny@dev-lab:~$ kubectl apply -f pv-and-pvc.yaml
persistentvolume "pv-for-rabbitmq" created
persistentvolumeclaim "pvc-for-rabbitmq" created
Шаг 3: Список всех доступных PVC
sunny@dev-lab:~$ kubectl get pvc
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
pvc-for-rabbitmq Bound pv-for-rabbitmq 5Gi RWO standard 16s
Шаг 4: Список всех доступных PV
sunny@dev-lab:~$ kubectl get pv
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
pv-for-rabbitmq 5Gi RWO Delete Bound default/pvc-for-rabbitmq standard 28s
Шаг 5: Удалите PVC и проверьте результат
sunny@dev-lab:~$ kubectl delete pvc pvc-for-rabbitmq
persistentvolumeclaim "pvc-for-rabbitmq" deleted
sunny@dev-lab:~$ kubectl get pv
Ресурсы не найдены.
sunny@dev-lab:~$ kubectl get pvc
Ресурсы не найдены.
sunny@dev-lab:~$ kubectl describe pvc-for-rabbitmq
на сервере нет типа ресурса "pvc-for-rabbitmq"
Asна ваш вопрос
Дополнительный вопрос, просто улучшите мое понимание: почему PV все еще там, даже если для него установлена политика удаления , установленная на Delete? Разве это не то, что документы говорят о политике удаления возврата?
Вы абсолютно правы, согласно документации, когда пользователь покончит со своим томом, ониможно удалить объекты PVC из API, которыйпозволяет восстановление ресурса.Политика восстановления для PersistentVolume сообщает кластеру, что делать с томом после того, как он выпустил свою заявку.В вашем YAML было установлено:
Reclaim Policy: Delete
, что означает, что он должен был быть удален немедленно.В настоящее время тома могут быть сохранены , переработаны или удалены .
Почему его не удалили? Единственное, о чем я мог подумать, - это, может быть, о том, что PV каким-то образом все еще востребован, что, вероятно, является результатом того, что PVC не был успешно удален, поскольку его емкость показывает «0», и чтобы исправить это, вам нужно будет удалить POD.В качестве альтернативы вы можете использовать команду $ kubectl describe pvc
, чтобы узнать, почему PVC все еще находится в состоянии ожидания.
И на вопрос Как мне сделать PVC для восстановления доступа к данным в существующем PV?
Это невозможно, потому чтостатуса политики возврата, т. е. Reclaim Policy: Delete
, чтобы сделать это возможным, вместо этого вам потребуется использовать опцию «Сохранять» в соответствии с документацией
Для проверки теории, что вы можете удалить PVCи сохраните диск, выполните следующие действия:
- Измените политику восстановления на Сохранение
- Удалите PVC
- Удалите PV
А затем проверьте, был ли диск сохранен.