【Kubernetesリソースシリーズ第七弾】PersistentVolumeとPersistentVolumeClaimについて知る!
どもです。やっと春服の出番が来そうで嬉しいsaisaiです。
本日はKubernetesリソースシリーズ第六弾ということでPersistentVolumeとPersistentVolumeClaimについて学んだことを記事にしていこうと思います。
ストレージ管理のキーとなるサービスですので、こちらもしっかり押さえていきたいと思います。
PersistentVolume・PersistentVolumeClaimとは
PersistentVolumeとはストレージへの接続情報を管理したり、ストレージそのものを抽象化するリソースです。
そしてPersistentVolumeClaimは、上記情報の要求を行います。
では、それぞれのマニフェストファイルはどのようになっているのでしょうか。
まずはPersistentVolumeのマニフェストファイルをみていきましょう。
apiVersion: v1
kind: PersistentVolume
metadata:
name: volume-01
labels:
env: study
spec:
storageClassName: slow #ストレージの種類を定義
accessModes:
- ReadWriteOnce #読み書きの権限を設定
capacity:
storage: 1Gi #ストレージ容量を定義
persistentVolumeReclaimPolicy: Retain #削除時の動作(RetainかDelete)
hostPath: #保存先(今回はhost上)
path: "/data/storage" #保存パス
type: Directory
このようにストレージに関する情報を管理、定義し実際に作成します。
ではPersistentVolumeClaimはどのようになっているのでしょうか。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: volume-claim
labels:
env: study
spec:
storageClassName: slow #ストレージの種類
accessModes:
- ReadWriteOnce #読み書きの権限
resources: #容量を定義
requests:
storage: 1Gi
上記のように指定することでPersistentVolumeで作成された永続ストレージを要求し使用することができます。
リソースの作成
それでは下記のように一纏めにしたマニフェストファイルを作成し、リソースを作成してみましょう。
apiVersion: v1
kind: PersistentVolume
metadata:
name: volume-01
labels:
env: study
spec:
storageClassName: slow
accessModes:
- ReadWriteOnce
capacity:
storage: 1Gi
persistentVolumeReclaimPolicy: Retain
hostPath:
path: "/data/storage"
type: Directory
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: volume-claim
labels:
env: study
spec:
storageClassName: slow
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
それではリソースを作成してみます。まずはホスト側のディレクトリを作成しましょう。
$ mkdir -p /data/storage
実際にリソースを作成してみます。
$ kubectl apply -f storage.yml
persistentvolume/volume-01 created
persistentvolumeclaim/volume-claim created
作成できました。一応確認しておきましょう。
$ kubectl get pv,pvc
NAME CAPACITY ACCESS MODES RECLAIM POLICY STATUS CLAIM STORAGECLASS REASON AGE
persistentvolume/volume-01 1Gi RWO Retain Bound default/volume-claim slow 3m17s
NAME STATUS VOLUME CAPACITY ACCESS MODES STORAGECLASS AGE
persistentvolumeclaim/volume-claim Bound volume-01 1Gi RWO slow 3m17s
確認も取れましたね!無事にストレージの作成及び要求を行うことができました!
ひとこと
今回は永続ストレージを扱うリソースについて記事にしてみました。
元環境ではminikubeを使用している以上シングルノードのテスト向けである HostPath
を使用したりと自由性に少し欠けましたが導入部分としては十分に機能を確認できたかと思います。
コンテナを管理する以上ストレージ管理は避けて通れない部分になってきますので、引き続きどんどん使用して柔軟に使いこなせるようになっていきたいと思います。
ここまで読んでいただきありがとうございました!
-saisai-
↓オススメ教材