kubernetesのpodは基本的には永続ボリュームを持たず、変更を加えたとしてもpodの再起動が走ったタイミングでデータは消えます。
そのため、場合によっては保持しておくための永続ボリュームが必要となります。
podの定義に直接書き込む形で接続も可能ですが、今回はマニュフェストを使い、Presistent Volumeとして登録します。
登録方法
strage.yaml
apiVersion: "v1" kind: "PersistentVolume" metadata: name: "hogehoge" spec: capacity: storage: "10Gi" #容量 accessModes: - "ReadWriteOnce" awsElasticBlockStore: fsType: "ext4" volumeID: "vol-XXXXXXXXXXXXXXXXXX" #EBSボリュームID
上記のようにマニュフェストを作成、クラスターリソースに登録します。
# kubectl apply -f strage.yaml
以下出力が出れば成功です。
persistentvolume/hogehoge created
getで確認してみます。
$ kubectl get pv NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE hogehoge 10Gi RWO Retain Available 13m
また、Kubernetes ウェブ UIにも項目があります。
永続ボリュームに登録されているのが確認できます。
マニュフェストでaccessModesをReadWriteOnceとしていますが、単一のノードからの読み込み書き込みが可能の設定です。
もし複数のノードから読み込みを行う場合にはReadOnlyManyが使用できます。
ReadWriteManyはEFSでならば使用できそうですが、EBSでは使用しないほうがよいでしょう。