2017-11-08 5 views
0

config/statsの一部をOSパーティションのディレクトリ(たとえば/ config /)に保存するレガシーアプリケーションがあり、これをKubernetesクラスタでステートフルコンテナとして実行しようとしています。Kubernetesのコンテナのバインドマウント

私はコンテナとして実行することができますが、コンテナ固有の一時的性質のため、コンテナがダウン/破棄されると、自分のコンテナがOSパーティションディレクトリ/ config /に書き込んでいるデータは失われます。

私はKubernetesデプロイメントファイルを、同じホストまたは別のホストのいずれかで新しいインスタンスとして使用することができますが、この新しいコンテナーには書き込まれたデータにアクセスできませんコンテナの前のインスタンス

ドッキング・コンテナだった場合は、バインド・マウントを使用してこの作業を行うことができます。そのため、コンテナがOSパーティション・ディレクトリに書き込むデータはホスト・ディレクトリに保存されるため、以前のインスタンスによって書かれた。

しかし、私はKubernetesでこれのための選択肢を見つけることができませんでした。

私はホストパスプロビジョニングを使用することができましたが、ホストパスプロビジョニングは現在、単一ノードkubernetesクラスタに対してのみ機能します。

マルチノードKubernetesクラスタでこれが動作する方法はありますか?ホストパスプロビジョニング以外のオプションはありますか?私はコンテナを互いに話し合い、ノード間でデータを同期させることができますが、ホストディレクトリをコンテナにどのようにバインドマウントしますか?

ご協力いただきありがとうございます。

+0

永続ボリュームの使用を検討しましたか? – iamnat

+0

データを永続化する場合は、Persistent Volume(PV)に接続されるPVC(Persistent Volume Claim)を使用する必要があります。今すぐ展開マニフェストを書くときは、PVCを要求する必要があります。 –

+0

はい、私はPVと​​コンテナにPVをバインドするPOD定義でのPVCの使用を認識していますが、私はこのためにドッキングステーションでバインドマウントを使用できるようになりました。思考はクーベルネットにも存在するより単純な解決法であるかもしれない。 – msbl3004

答えて

0

これは、POD定義でボリュームとボリュームマウントを持つものです。 hostPathについてのあなたの指導は正しい方向ですが、クラスタ内のデータをホストするときは(自分自身と同じように)別のボリュームタイプが必要です。

サポートされているストレージバックエンドのリストについては、https://kubernetes.io/docs/concepts/storage/volumes/をご覧ください。インフラストラクチャーによっては、ニーズに合ったものが見つかるかもしれませんが、実際には、バックエンドサービス(NFSサーバー、Gluster、Cephなど)を実際に作成する必要があります。

別の抽象化レイヤーを追加して、異なる環境(クラウドプロバイダーに基づいたストレージまたは特定のニーズに応じて手動でプロビジョニングされたストレージ)で動作するユニバーサルマニフェストを作成したい場合。あなたはPVとPVC(https://kubernetes.io/docs/concepts/storage/persistent-volumes/)に精通したいと思うでしょうが、私が言ったように、彼らは基本的なボリュームよりも抽象的なものなので、とにかくその最初の問題を解く必要があります。

関連する問題