永続ストレージのスナップショット
永続ストレージのスナップショットは、データのバックアップや復元を簡単に行うための機能です。 特定の時点でのボリュームのコピーを作成でき、ボリュームを以前の状態に戻すことや、新しいボリュームを作成できます。 一度作成したスナップショットは、元となったボリュームが更新されても状態が変わりません。 そのため、バックアップやバージョニング等の用途に利用できます。
このドキュメントでは、スナップショットの作成、管理、および使用方法について説明します。
ボリュームからスナップショットを作成する
既存のボリュームを元に、現時点の状態のスナップショットを作成します。
ここでは、以下のような PersistentVolumeClaim(PVC)があるとします。この PVC hello-sample-pvc
に対して、スナップショットを作成したいとします。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: hello-sample-pvc
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 20Mi
storageClassName: standard-rwo-<組織名>
volumeMode: Filesystem
- スナップショットを作成する PVC の名前を指定した VolumeSnapshot リソースのマニフェストを作成します。
apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshot
metadata:
name: hello-snapshot-v1
spec:
source:
persistentVolumeClaimName: hello-sample-pvc
このマニフェストを Kubernetes に適用することで、その瞬間のボリュームの状態が保存され、新規スナップショットが作成されます。
- スナップショットが正常に作成されたかどうかは、
kubectl get volumesnapshots
で確認できます。
$ kubectl get volumesnapshots
NAME READYTOUSE SOURCEPVC SOURCESNAPSHOTCONTENT RESTORESIZE SNAPSHOTCLASS SNAPSHOTCONTENT CREATIONTIME AGE
hello-snapshot-v1 true hello-sample-pvc ...Mi trident snapcontent-.......... ..d ..d
正常なスナップショットは READYTOUSE
の項目が true
となります。この場合 PersistentVolumeClaim からのスナップショットが成功しています。
スナップショットからボリュームを復元する
以下のように PVC のマニフェストを書くことで、スナップショットから新たなボリュームを作成できます。
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: hello-sample-pvc-restored
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 20Mi
storageClassName: standard-rwo-<組織名>
dataSource:
name: hello-snapshot-v1
kind: VolumeSnapshot
apiGroup: snapshot.storage.k8s.io