2017-01-26 46 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中的哪个条目属于死容器的数据量。现在我重新启动主机,它卸载文件系统并允许删除指令完成。