Skip to main content
此產品有較新版本可以使用。
本繁體中文版使用機器翻譯,譯文僅供參考,若與英文版本牴觸,應以英文版本為準。

使用快照

貢獻者

您可以建立持續磁碟區(PV)的Kubernetes Volume Snapshot(Volume Snapshot)、以維護Astra Trident磁碟區的時間點複本。此外、您也可以從現有的Volume Snapshot建立新的Volume、也稱為_clon__。支援Volume Snapshot ontap-nasontap-nas-flexgroupontap-sanontap-san-economysolidfire-sangcp-cvs`和 `azure-netapp-files 驅動程式:

開始之前

您必須擁有外部快照控制器和自訂資源定義(CRD)。這是Kubernetes Orchestrator的責任(例如:Kubeadm、GKE、OpenShift)。

如果您的Kubernetes發佈版本未包含快照控制器和CRD、請參閱 部署Volume Snapshot控制器

註 如果在 GKE 環境中建立隨需磁碟區快照、請勿建立快照控制器。GKE使用內建的隱藏式快照控制器。

步驟 1 :建立 VolumeSnapshotClass

此範例會建立Volume 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 可以 DeleteRetain。設定為時 Retain、儲存叢集上的基礎實體快照、即使在 VolumeSnapshot 物件已刪除。

如需詳細資訊、請參閱連結:../ Trident參考/ 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 快照名稱設為 pvc1-snap

kubectl create -f snap.yaml
volumesnapshot.snapshot.storage.k8s.io/pvc1-snap created

kubectl get volumesnapshots
NAME                   AGE
pvc1-snap              50s

這會建立一個 VolumeSnapshot 物件:Volume Snapshot類似於PVC、並與相關聯 VolumeSnapshotContent 代表實際快照的物件。

您可以識別 VolumeSnapshotContent 的物件 pvc1-snap 描述Volume 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 識別提供此快照的Volume SnapshotContent物件。。 Ready To Use 參數表示Snapshot可用於建立新的PVc。

步驟3:從Volume Snapshot建立PVCS

此範例使用快照建立 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 顯示必須使用名為的Volume Snapshot建立PVc pvc1-snap 做為資料來源。這會指示Astra Trident從快照建立一個永久虛擬資料。建立好永久虛擬基礎架構之後、就能將它附加到Pod上、就像使用任何其他永久虛擬基礎架構一樣使用。

警告 必須在與其相同的命名空間中建立 PVC dataSource

刪除含快照的 PV

刪除具有相關快照的持續Volume時、對應的Trident Volume會更新為「刪除狀態」。移除 Volume 快照以刪除 Astra Trident Volume 。

部署Volume Snapshot控制器

如果您的Kubernetes發佈版本未包含快照控制器和客戶需求日、您可以依照下列方式進行部署。

步驟
  1. 建立Volume 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
  2. 建立Snapshot控制器。

    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
    註 如有必要、請開啟 deploy/kubernetes/snapshot-controller/rbac-snapshot-controller.yaml 和更新 namespace 到您的命名空間。

使用快照恢復 Volume 資料

快照目錄預設為隱藏、以協助使用進行資源配置的磁碟區達到最大相容性 ontap-nasontap-nas-economy 驅動程式:啟用 .snapshot 直接從快照恢復資料的目錄。

使用 Volume Snapshot Restore ONTAP CLI 將磁碟區還原至先前快照中記錄的狀態。

cluster1::*> volume snapshot restore -vserver vs0 -volume vol3 -snapshot vol3_snap_archive
註 當您還原快照複本時、會覆寫現有的 Volume 組態。建立快照複本之後對 Volume 資料所做的變更將會遺失。