問題タブ [mounted-volumes]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
kubernetes - Kubernetes のポッド内の単一コンテナーに非永続ボリュームを使用する
kubernetes ポッドに単一のコンテナーがある場合、非永続ボリュームをマウントするユースケースは何ですか?
異なるコンテナがストレージを共有する方法であるため、ポッドに複数のコンテナがある場合、非永続ボリューム(ポッドが終了すると消える)のマウントが役立つことを理解しています。
しかし、コンテナにそのファイルシステムを使用させる代わりに、単一のコンテナに非永続ボリュームをマウントしたい、またはマウントしなければならない場合はありますか?
kubernetes - マウントされたディレクトリで Kubernetes 永続ボリュームを作成する
私/mnt/
の場合、多数のハード ドライブがマウントされています (例: /mnt/hdd1/
、/mnt/hdd2/
)。/mnt
にマウントされたハード ドライブの内容を表示できるK8s 永続ボリュームを作成する方法はあります/mnt
か? でローカル永続ボリュームを作成する/mnt
と、K8s Pod はディレクトリ hdd1 と hdd2 を認識しますが、それらは空として表示されます。
以下は私がテストしたものです:
望ましくない解決策 1:
ローカル永続ボリュームをオンにする/mnt/hdd1
と、K8s ポッドは hdd1 ハード ドライブの内容を表示できるようになります。しかし、前に述べたように、ポッドにすべてのハード ドライブを認識させたいのですが、特に新しいハード ドライブを下にマウントするときに、各ハード ドライブに永続的なボリュームを作成したくありません/mnt
。
望ましくない解決策 2:
デプロイ用の yaml ファイルで/mnt/
K8s オプションを使用して、ローカル永続ボリュームをマウントできます。mountPropagation: HostToContainer
この場合、ハード ドライブを再マウントすると、ポッドはハード ドライブの内容を認識します。しかし、これは望ましくありません。ポッドが再起動した場合、ポッドがそのコンテンツを表示するには、ハード ドライブを再度マウントし直す必要があるからです。(ポッドが生きているときにハードドライブが再マウントされた場合にのみ機能します)
docker - docker-compose でマウントされたボリュームは空ですが、Docker イメージのビルド中に作成された他のボリュームは読み込まれます
空のディレクトリから始めて、これを作成しましたdocker-compose.yml
:
import
次に、コンテナーで操作する予定のデータ ファイルを含むディレクトリを追加します。
この時点で、私のディレクトリは次のようになります。
を実行するdocker-compose up -d --build
と、コンテナがビルドされます。ローカル ディレクトリは次のようになります。
、、、conf
およびディレクトリが作成されdata
ますlogs
。plugins
data
とlogs
は Neo4j イメージのビルドから取り込まれconf
、plugins
予想どおり空です。
コンテナのディレクトリ構造を確認するために使用docker exec
します。
私の問題はimport
、コンテナー内のディレクトリが空であることです。data
とlogs
ディレクトリは空ではありません。
私のローカルのdata
およびディレクトリには、 および にはないlogs
拡張属性がconf
あります。plugins
私が特定できる唯一の違いはdocker-compose
、Neo4j イメージを取得したときにデータが作成されたディレクトリがあることです。
ここで何が起こっているのかを理解している人はいますか?どうすればこれを機能させることができるか教えてください。Mac OS X 10.15 と docker-compose バージョン 1.27.4、ビルド 40524192 を使用しています。
ありがとう。