Kubernetes集群在Azure存储帐户中存在oplock(samba)文件

时间:2017-01-26 19:20:52

标签: azure samba cifs

我在Azure容器服务中使用kubernetes运行bradbeck/nexus-https容器,并在Azure存储帐户文件共享上挂载/nexus-data卷。在k8s-agents上,我安装了cifs-utils来访问文件共享。

当pod退出时,可能不是优雅(?),samba客户端将pending delete标记放在/nexus-data/cache/cache.lock上并且尚未释放它。

当我尝试启动安装相同文件共享的新pod时,它失败并显示:

  

文件不存在:/nexus-data/cache/cache.lock

当我尝试通过Azure门户删除它时,它失败了:

  

无法删除文件'nexus-data / cache / cache.lock'。错误:SMB客户端将指定的资源标记为删除。

这是409 error

如何打破此锁定/删除此文件?

编辑:我尝试重新启动k8s-agents,但即使这样也行不通!幸运的是,我可以删除整个文件共享,并重新创建它。这可能不是将来的选项:az storage share delete --name nexus-data

1 个答案:

答案 0 :(得分:0)

据我所知,这与Nexus本身无关。我也经历过与TeamCity服务器相同的事情。

当发生容器死亡时,samba文件共享未在主机上卸载。我还没弄明白如何计算出/etc/mtab中的哪个条目属于死容器的数据量。现在我要重新启动主机,卸载文件系统并允许删除指令完成。