Я работаю со службами Azure Kubernetes (AKS), где я настроил постоянные тома (PV) с помощью Azure FileShares. Некоторые из этих файловых ресурсов имеют функцию резервного копирования. Когда я удаляю заявку на постоянный том (PVC), я ожидаю, что связанный с ней постоянный том (PV) и FileShare также будут удалены.
Для файловых ресурсов без резервной копии процесс удаления работает должным образом. Однако для FileShares с включенным резервным копированием я столкнулся с проблемой. При попытке удалить PV, связанный с PVC, я получаю следующую ошибку:
storage.FileSharesClient#Delete: Failure sending request: StatusCode=409 --
Original Error: autorest/azure: Service returned an error. Status=<nil>
Code = "DeleteShareWhenSnapshotLeased" Message = "Unable to delete share because
one or more share snapshots have active leases. Release the share snapshot
leases or delete the share with the include-leased parameter for
x-ms-delete-snapshots."
Несмотря на успешное удаление PVC, PV остается в состоянии «Освобождено», а связанный с ним FileShare не удаляется из-за активной аренды моментальных снимков.
Я проверил, что на FileShares включено свойство обратимого удаления и нет блокировки, препятствующей редактированию группы ресурсов.
Я проверил наличие свойств «Аренда» в снимках или файлах внутри, но не нашел ни одного свойства, которое можно было бы освободить, чтобы разрешить удаление FileShare. Это сработало только после остановки процесса резервного копирования и удаления данных резервной копии (на портале Azure). PV и FileShare удалились без каких-либо дополнительных действий.
Есть ли способ автоматически (и, возможно, принудительно) удалить все снимки вместе с FileShare при удалении PV в AKS, даже если на снимках есть активная аренда?
Обновлено: версия kubernetes — 1.27.7; StorageClass использует apiVersion: Storage.k8s.io/v1; PersistentVolumeClaim и PersistentVolume используют apiVersion: v1.
В службе Azure Kubernetes, когда вы используете Azure FileShare в качестве резервного хранилища для постоянных томов и включаете резервное копирование, вы можете столкнуться с проблемами при удалении этих файловых ресурсов, если у них есть моментальные снимки из-за активной аренды. По своей конструкции Azure не удаляет автоматически снимки файлового ресурса при удалении файлового ресурса, чтобы предотвратить случайную потерю данных. Такое поведение особенно актуально, когда включены функции резервного копирования, поскольку эти резервные копии основаны на моментальных снимках.
Когда вы удаляете заявку на постоянный том (PVC), Kubernetes отправляет запрос в Azure на удаление соответствующей общей папки. Однако если имеются снимки с активной арендой, Azure заблокирует этот запрос, чтобы предотвратить потенциальную потерю данных, в результате чего PV останется в состоянии «Выпущено» без полного удаления.
Чтобы решить эту проблему, вы можете использовать Azure CLI или Azure Portal, чтобы вручную удалить снимки, прежде чем пытаться удалить PV.
az storage share delete \
--name arkoshare \
--account-name arkostore \
--snapshot <snapshot-id>
Использованная литература: