5.3. hostPath を使用した永続ストレージ
hostPath ボリュームは、ホストノードのファイルシステムから Pod にファイルまたはディレクトリーをマウントします。hostPath ボリュームは特権 Pod を必要とし、ホストノードのファイルシステムへのアクセスを許可するため、主にテストまたは開発に使用します。
5.3.1. hostPath の概要 リンクのコピーリンクがクリップボードにコピーされました!
hostPath ボリュームは、シングルノードクラスターで開発およびテストするために、ホストノードのファイルシステムからファイルまたはディレクトリーを Pod にマウントします。hostPath には特権 Pod が必要であり、静的にプロビジョニングする必要があるため、実稼働環境では推奨されません。代わりに、動的プロビジョニングを備えたネットワークストレージを使用してください。
クラスター管理者は、特権付き Pod として実行するように Pod を設定する必要があります。これにより、同じノードの Pod へのアクセスが付与されます。
ほとんどの Pod には hostPath ボリュームは必要ありませんが、アプリケーションが必要とする場合は、テスト用のクイックオプションが提供されます。
実稼働クラスターでは、hostPath を使用しません。代わりにクラスター管理者は、GCE Persistent Disk ボリューム、NFS 共有、Amazon EBS ボリュームなどのネットワークリソースをプロビジョニングします。ネットワークリソースは、ストレージクラスを使用した動的プロビジョニングの設定をサポートします。
hostPath ボリュームは静的にプロビジョニングする必要があります。
コンテナーのルート (/) や、ホストとコンテナーで同じパスにはマウントしないでください。これは、コンテナーに十分な特権が付与されている場合、ホストシステムを破壊する可能性があります。ホストをマウントするには、/host を使用するのが安全です。以下の例では、ホストの / ディレクトリーが /host でコンテナーにマウントされています。
apiVersion: v1
kind: Pod
metadata:
name: test-host-mount
spec:
containers:
- image: registry.access.redhat.com/ubi9/ubi
name: test-container
command: ['sh', '-c', 'sleep 3600']
volumeMounts:
- mountPath: /host
name: host-slash
volumes:
- name: host-slash
hostPath:
path: /
type: ''