Windowsストレージ
このページでは、Windowsオペレーティングシステム特有のストレージの概要について説明します。
永続ストレージ
Windowsでは、レイヤードファイルシステムドライバーを使用してコンテナレイヤーをマウントし、NTFSをベースにしたコピー用のファイルシステムを作成します。
コンテナ内のすべてのファイルパスは、そのコンテナのコンテキスト内でのみ解決されます。
- Dockerでは、ボリュームマウントの対象はコンテナ内のディレクトリのみであり、個々のファイルを指定することはできません。
この制限はcontainerdには適用されません。
- ボリュームマウントでは、ファイルまたはディレクトリをホストファイルシステムへ投影(プロジェクション)することはできません。
- WindowsレジストリおよびSAMデータベースへの書き込みアクセスが常に要求されるため、読み取り専用のファイルシステムはサポートされていません。
ただし、読み取り専用のボリュームはサポートされています。
- ボリュームのユーザーマスクやアクセス権限は利用できません。
SAMはホストとコンテナの間で共有されないため、それらを対応付ける(マッピングする)ことができません。
すべてのアクセス権限は、コンテナ内のコンテキストで解決されます。
その結果、Windowsノードでは、以下のストレージ機能はサポートされません。
- ボリュームのsubPathマウント: Windowsコンテナでは、ボリューム全体のみがマウント可能
- SecretのsubPathボリュームマウント
- ホストマウントのプロジェクション
- 読み取り専用のrootファイルシステム(読み取り専用のボリュームでは引き続き
readOnlyをサポート)
- ブロックデバイスのマッピング
- メモリをストレージ媒体として使用すること(例:
emptyDir.mediumにMemoryを指定)
- uid/gidやLinuxのユーザー単位のファイルシステム権限などのファイルシステム機能
- DefaultModeによるSecretのアクセス権限の設定(UID/GIDに依存するため)
- NFSベースのストレージおよびボリュームのサポート
- マウント済みボリュームの拡張(resizefs)
Kubernetesボリュームは、データの永続化やPodのボリューム共有を必要とする複雑なアプリケーションを、Kubernetes上へデプロイできます。
特定のストレージバックエンドやプロトコルに関連付けられた永続ボリュームの管理には、さまざまな操作が含まれます。
たとえば、ボリュームのプロビジョニング・プロビジョニング解除・サイズ変更、Kubernetesノードへのアタッチ・デタッチ、データを永続化する必要があるPod内の各コンテナへのボリュームのマウント・アンマウントです。
ボリューム管理コンポーネントは、Kubernetesボリュームプラグインとして提供されています。
Windowsでは、概ね以下のKubernetesボリュームプラグインがサポートされています。
In-treeボリュームプラグイン
以下のIn-treeプラグインは、Windowsノード上で永続ストレージをサポートしています。