スナップショットを操作します
永続ボリューム(PVS)のKubernetesボリュームSnapshot(ボリュームSnapshot)を作成して、Astra Tridentボリュームのポイントインタイムコピーを保持できます。また、既存のボリュームSnapshotから、_ clone__という名前の新しいボリュームを作成することもできます。ボリュームSnapshotは、でサポートされます ontap-nas
、 ontap-nas-flexgroup
、 ontap-san
、 ontap-san-economy
、 solidfire-san
、 gcp-cvs`および `azure-netapp-files
ドライバ。
外部スナップショットコントローラとカスタムリソース定義(CRD)が必要です。Kubernetesオーケストレーションツール(例:Kubeadm、GKE、OpenShift)の役割を担っています。
KubernetesディストリビューションにスナップショットコントローラとCRDが含まれていない場合は、を参照してください ボリュームSnapshotコントローラを導入する。
GKE環境でオンデマンドボリュームスナップショットを作成する場合は、スナップショットコントローラを作成しないでください。GKEでは、内蔵の非表示のスナップショットコントローラを使用します。 |
手順1:を作成します VolumeSnapshotClass
次の例は、ボリュームSnapshotクラスを作成します。
cat snap-sc.yaml apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshotClass metadata: name: csi-snapclass driver: csi.trident.netapp.io deletionPolicy: Delete
。 driver
Astra TridentのCSIドライバをポイントします。 deletionPolicy
は、です Delete
または Retain
。に設定すると Retain`を使用すると、ストレージクラスタの基盤となる物理Snapshotが、の場合でも保持されます `VolumeSnapshot
オブジェクトが削除された。
詳細については、link:./trident-reference/objects.html#Kubernetes -volumesnapshotclass-objectsを参照してください[VolumeSnapshotClass
]。
手順 2 :既存の PVC のスナップショットを作成します
次に、既存のPVCのスナップショットを作成する例を示します。
cat snap.yaml apiVersion: snapshot.storage.k8s.io/v1 kind: VolumeSnapshot metadata: name: pvc1-snap spec: volumeSnapshotClassName: csi-snapclass source: persistentVolumeClaimName: pvc1
この例では、という名前のPVCに対してスナップショットが作成されます pvc1
Snapshotの名前はに設定されます pvc1-snap
。
kubectl create -f snap.yaml volumesnapshot.snapshot.storage.k8s.io/pvc1-snap created kubectl get volumesnapshots NAME AGE pvc1-snap 50s
これでが作成されました VolumeSnapshot
オブジェクト。ボリュームSnapshotはPVCに似ており、に関連付けられています VolumeSnapshotContent
実際のスナップショットを表すオブジェクト。
を識別できます VolumeSnapshotContent
のオブジェクト pvc1-snap
ボリュームSnapshot。ボリュームSnapshotの詳細を定義します。
kubectl describe volumesnapshots pvc1-snap Name: pvc1-snap Namespace: default . . . Spec: Snapshot Class Name: pvc1-snap Snapshot Content Name: snapcontent-e8d8a0ca-9826-11e9-9807-525400f3f660 Source: API Group: Kind: PersistentVolumeClaim Name: pvc1 Status: Creation Time: 2019-06-26T15:27:29Z Ready To Use: true Restore Size: 3Gi . .
。 Snapshot Content Name
このSnapshotを提供するVolumeSnapshotContentオブジェクトを特定します。。 Ready To Use
パラメータは、Snapshotを使用して新しいPVCを作成できることを示します。
手順 3 :ボリューム Snapshot から PVC を作成します
次に、Snapshotを使用してPVCを作成する例を示します。
cat pvc-from-snap.yaml apiVersion: v1 kind: PersistentVolumeClaim metadata: name: pvc-from-snap spec: accessModes: - ReadWriteOnce storageClassName: golden resources: requests: storage: 3Gi dataSource: name: pvc1-snap kind: VolumeSnapshot apiGroup: snapshot.storage.k8s.io
dataSource
に、という名前のボリュームSnapshotを使用してPVCを作成する必要があることを示します pvc1-snap
データのソースとして。このコマンドを実行すると、 Astra Trident が Snapshot から PVC を作成するように指示します。作成された PVC は、ポッドに接続して、他の PVC と同様に使用できます。
スナップショットが関連付けられている永続ボリュームを削除すると、対応する Trident ボリュームが「削除状態」に更新されます。Astra Trident ボリュームを削除するには、ボリュームの Snapshot を削除する必要があります。 |
ボリュームSnapshotコントローラを導入する
KubernetesディストリビューションにスナップショットコントローラとCRDが含まれていない場合は、次のように導入できます。
-
ボリュームのSnapshot作成
cat snapshot-setup.sh #!/bin/bash # Create volume snapshot CRDs kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-6.1/client/config/crd/snapshot.storage.k8s.io_volumesnapshotclasses.yaml kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-6.1/client/config/crd/snapshot.storage.k8s.io_volumesnapshotcontents.yaml kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-6.1/client/config/crd/snapshot.storage.k8s.io_volumesnapshots.yaml
-
目的のネームスペースにスナップショットコントローラを作成します。以下の YAML マニフェストを編集して名前空間を変更します。
kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-6.1/deploy/kubernetes/snapshot-controller/rbac-snapshot-controller.yaml kubectl apply -f https://raw.githubusercontent.com/kubernetes-csi/external-snapshotter/release-6.1/deploy/kubernetes/snapshot-controller/setup-snapshot-controller.yaml