2017-01-26 70 views
3

我正在Azure容器服務中使用kubernetes運行bradbeck/nexus-https容器,並且針對Azure存儲帳戶文件共享掛載了/nexus-data卷。在k8s代理上,我安裝了cifs-utils來訪問文件共享。Kubernetes羣集在Azure存儲帳戶中擁有oplock(samba)文件

當pod退出時,可能不是優雅地(?),桑巴客戶端將pending delete標誌放在/nexus-data/cache/cache.lock上,並且沒有發佈它。

當我試圖啓動一個新的盒體安裝相同的文件共享,它失敗:

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

當我試圖通過在Azure門戶網站刪除它,它失敗:

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

這是一個409 error

如何打破這種鎖定/擺脫這個文件?


編輯:我試圖重新啓動K8S-劑,但即使這樣也沒有工作!幸運的是,我可以刪除整個文件共享,然後重新創建它。通過對未來的選擇可能不是:az storage share delete --name nexus-data

+0

我唯一的解決辦法,到目前爲止是刪除部署和等待鎖定到期。我不確定需要多長時間? –

+0

似乎與http://stackoverflow.com/q/26171306/297331 –

+0

似乎像鎖並不總是過期 –

回答

0

據我所知,這已經無關的Nexus本身。我也對TeamCity服務器也有同樣的感受。

正在發生的事情是,當一個容器死亡的Samba文件共享是不是在主機上卸載。我還沒有弄清楚如何計算/etc/mtab中的哪個條目屬於死容器的數據量。現在我重新啓動主機,它卸載文件系統並允許刪除指令完成。