2017-01-26 7 views
3

私はbradbeck/nexus-httpsコンテナをAzureコンテナサービスでkubernetesを使用し、ボリュームをAzureストレージアカウントファイル共有に対してマウントしています。 k8s-agentsでは、ファイル共有にアクセスするためにcifs-utilsをインストールしました。Kubernetesクラスタは、Azureストレージアカウントのファイルにoplock(samba)を持っています

ポッドが正常に終了していない(?)場合、sambaクライアントは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のどのエントリがデッドコンテナのデータ量に属しているかを考え出す方法を見つけ出していません。今のところ私はホストを再起動します。ホストはファイルシステムをアンマウントし、削除命令を完了させます。

関連する問題