6.3.6. ボリュームスナップショットの削除
OpenShift Container Platform によるボリュームスナップショットの削除方法を設定できます。
手順
以下の例のように、
VolumeSnapshotClassオブジェクトで必要な削除ポリシーを指定します。volumesnapshotclass.yaml ファイルの例
apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: csi-hostpath-snap driver: hostpath.csi.k8s.io deletionPolicy: Delete # ...deletionPolicy: ボリュームスナップショットの削除時にDelete値を設定すると、VolumeSnapshotContentオブジェクトと共に基礎となるスナップショットが削除されます。Retain値を設定すると、基礎となるスナップショットとVolumeSnapshotContentオブジェクトの両方が残ります。注記Retain値を設定し、対応するVolumeSnapshotContentオブジェクトを削除せずにVolumeSnapshotオブジェクトを削除すると、コンテンツは残ります。スナップショット自体はストレージバックエンドにも保持されます。
以下のコマンドを入力してボリュームスナップショットを削除します。
$ oc delete volumesnapshot _<volumesnapshot_name>_<volumesnapshot_name>は、削除するボリュームスナップショットの名前に置き換えます。出力例
volumesnapshot.snapshot.storage.k8s.io "mysnapshot" deleted
削除ポリシーが
Retainに設定されている場合は、以下のコマンドを入力してボリュームスナップショットのコンテンツを削除します。$ oc delete volumesnapshotcontent _<volumesnapshotcontent_name>_-
<volumesnapshotcontent_name>は、削除するコンテンツに置き換えます。
-
オプション:
VolumeSnapshotオブジェクトが正常に削除されていない場合は、以下のコマンドを実行して残されているリソースのファイナライザーを削除し、削除操作を続行できるようにします。重要永続ボリューム要求またはボリュームスナップショットのコンテンツのいずれかから
VolumeSnapshotオブジェクトへの既存の参照がない場合にのみファイナライザーを削除します。--forceオプションを使用する場合でも、すべてのファイナライザーが削除されるまで削除操作でスナップショットオブジェクトは削除されません。$ oc patch -n $PROJECT volumesnapshot/$NAME --type=merge -p '{"metadata": {"finalizers":null}}'出力例
volumesnapshotclass.snapshot.storage.k8s.io "csi-ocs-rbd-snapclass" deletedファイナライザーが削除され、ボリュームスナップショットが削除されます。