Как удалить снимки Azure FileShare вместе с постоянным томом в службах Azure Kubernetes?

Я работаю со службами 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.

Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack 1/2 на Azure Linux VM
Как установить LAMP Stack 1/2 на Azure Linux VM
В дополнение к нашему предыдущему сообщению о намерении Azure прекратить поддержку Azure Database для MySQL в качестве единого сервера после 16...
1
0
140
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В службе 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>

Использованная литература:

Другие вопросы по теме

Ошибка загрузки модуля Kubernetes в другой модуль
Невозможно использовать контейнеры в автономных агентах Azure Pipelines, развернутых как модули Azure K8s
Kubernetes cronjob игнорирует весь код выхода из контейнера
Dns.GetHostEntry выдает сообщение «Такой хост неизвестен» при выполнении в модуле Kubernetes
OpenShift Client Python — извлечение сведений о ресурсе
EKS — ошибка сервера (запрещено): пространства имен запрещены: пользователь «arn::x/xx» не может перечислить «пространства имен» ресурсов в группе API «» в области кластера
Как создать совпадения префиксов в Istio VirtualService для путей подстроки
HPA не может найти «нетипизированную» пользовательскую метрику из адаптера Prometheus/Stackdriver
Как проверить, подписан ли образ контейнера в Openshift?
Golang == Ошибка: не удалось создать среду выполнения OCI: невозможно запустить процесс контейнера: exec: "./bin": stat ./bin: нет такого файла или каталога: неизвестно

Похожие вопросы

Условие, указанное с помощью условных заголовков HTTP, не выполнено. Блокам данных Azure не удается прочитать файл JSON из хранилища BLOB-объектов
Используйте регистрацию приложения в качестве PAT для Azure DevOps
Устранение ошибки развертывания Azure для веб-приложения Vue.js + ASP.NET с конфигурацией CI/CD
Как написать выражение фильтра в действии копирования данных Azure
Получите разрешения пользователей в отношении репозиториев через API ADO
.NET — функция Azure не работает, журнал области
Как использовать условие фильтра и копировать файлы из одного хранилища BLOB-объектов в другое хранилище BLOB-объектов в Фабрике данных Azure?
Этот дескриптор службы имеет ключ. Ваш поставщик услуг может не поддерживать ключевые услуги
Исключение при записи в Azure UltraSSD LRS для сохранения состояния флик-ключа с помощью Rocksdb
Как добавить расширения в службу приложений Azure на базе Linux?