2017-01-26 20 views
3

Я запускаю контейнер bradbeck/nexus-https с использованием кубернетов в Azure Container Service и монтирую тома /nexus-data против учетной записи хранилища Azure. На k8s-агентах я установил cifs-utils для доступа к файловому ресурсу.У кластера Kubernetes есть файл oplock (samba) в файле на счете хранения Azure

Когда стружка вышла, возможно, не изящно (?), Клиент samba положил флаг pending delete на и не выпустил его.

Когда я пытаюсь начать новую стручок монтажа такую ​​же долю файла, он терпит неудачу с:

File does not exist: /nexus-data/cache/cache.lock

При попытке удалить его через Azure Portal, он терпит неудачу с:

Failed to delete file 'nexus-data/cache/cache.lock'. Error: The specified resource is marked for deletion by an SMB client.

Это 409 error.

Как отключить этот замок/избавиться от этого файла?


Edit: Я попытался перезапуска K8S-агентов, но даже это не сработало! К счастью, я мог удалить весь общий ресурс файла и воссоздать его. Это может не быть опцией в будущем: az storage share delete --name nexus-data

+0

Мое единственное решение до сих пор заключается в том, чтобы удалить развертывание и дождаться окончания срока блокировки. Я не уверен, сколько времени это займет? –

+0

Похоже на http://stackoverflow.com/q/26171306/297331 –

+0

Кажется, что замки не всегда истекают –

ответ

0

Насколько я могу судить, это не имеет никакого отношения к Nexus per se. Я тоже испытал то же самое с сервером TeamCity.

Что происходит, когда контейнер умирает, общий ресурс samba не размонтируется на главной машине. Я еще не понял, как определить, какая запись в /etc/mtab принадлежит к объему данных мертвого контейнера. На данный момент я перезапускаю хост, который отключает файловую систему и позволяет завершить команду delete.