1. K8sのデータボリュームタイプ
コンテナとポッドの寿命が短いことは誰もが知っています。つまり、それらのライフサイクルは短く、頻繁に破壊され、作成されます。コンテナが破棄されると、コンテナの内部ファイル システムに保存されているデータがクリアされます。
コンテナーに保存されたデータを永続化するには、Kubernetes ボリュームを使用できます。ボリュームのライフサイクルはコンテナーから独立しています。ポッド内のコンテナーは破棄および再構築できますが、ボリュームは保持されます。
実際、Kubernetes ボリュームは Docker ボリュームに似たディレクトリであり、ボリュームがポッドにマウントされると、ポッド内のすべてのコンテナがボリュームにアクセスできます。Kubernetes Volume は、emptyDir、hostPath、GCE Persistent Disk、NFS、Ceph など、複数のタイプのデータ ストレージもサポートしています。
Volume はさまざまなストレージの抽象化を提供します。コンテナが Volume を使用してデータの読み書きを行う場合、データがローカル ノードのファイル システムに保存されているか、クラウド ディスクに保存されているかを気にする必要はありません。それにとって、すべての種類のボリュームは単なるディレクトリです。
2. EmptyDir型ストレージ
EmptyDir は最も基本的なタイプの Volume であり、emptyDir Volume はコンテナに対しては永続的ですが、Pod に対しては永続的ではないことに注意してください。ポッドがノードから削除されると、ボリュームの内容も削除されます。ただし、コンテナーのみが破壊され、ポッドがまだそこにある場合、ボリュームは影響を受けません。
つまり、emptyDir Volume のライフサイクルは Pod のライフサイクルと一致します。
[root@master data]# more pods.yml
apiVersion: v1
kind: Pod
metadata:
name: share-pods
spec:
containers:
- n