卷快照類

本文件介紹了 Kubernetes 中 VolumeSnapshotClass 的概念。建議熟悉卷快照儲存類

介紹

正如 StorageClass 為管理員提供了一種在配置卷時描述他們所提供的儲存“類”的方式一樣,VolumeSnapshotClass 提供了一種在配置卷快照時描述儲存“類”的方式。

VolumeSnapshotClass 資源

每個 VolumeSnapshotClass 都包含 driverdeletionPolicyparameters 欄位,這些欄位在需要動態配置屬於該類的 VolumeSnapshot 時使用。

VolumeSnapshotClass 物件的名稱很重要,使用者可以透過它請求特定的類。管理員在首次建立 VolumeSnapshotClass 物件時設定類的名稱和其他引數,並且這些物件一旦建立就不能更新。

apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
  name: csi-hostpath-snapclass
driver: hostpath.csi.k8s.io
deletionPolicy: Delete
parameters:

管理員可以透過新增 snapshot.storage.kubernetes.io/is-default-class: "true" 註解,為不請求繫結任何特定類的 VolumeSnapshot 指定一個預設的 VolumeSnapshotClass。

apiVersion: snapshot.storage.k8s.io/v1
kind: VolumeSnapshotClass
metadata:
  name: csi-hostpath-snapclass
  annotations:
    snapshot.storage.kubernetes.io/is-default-class: "true"
driver: hostpath.csi.k8s.io
deletionPolicy: Delete
parameters:

如果存在多個 CSI 驅動,可以為每個驅動指定一個預設的 VolumeSnapshotClass。

VolumeSnapshotClass 依賴項

當您建立 VolumeSnapshot 而不指定 VolumeSnapshotClass 時,Kubernetes 會自動選擇一個預設的 VolumeSnapshotClass,該 VolumeSnapshotClass 的 CSI 驅動與 PVC 的 StorageClass 的 CSI 驅動匹配。

這種行為允許多個預設的 VolumeSnapshotClass 物件在叢集中並存,只要每個物件都與唯一的 CSI 驅動關聯。

請始終確保每個 CSI 驅動只有一個預設的 VolumeSnapshotClass。如果使用相同的 CSI 驅動建立了多個預設的 VolumeSnapshotClass 物件,VolumeSnapshot 的建立將失敗,因為 Kubernetes 無法確定要使用哪一個。

驅動

卷快照類有一個驅動,它決定了使用哪個 CSI 卷外掛來配置 VolumeSnapshot。此欄位必須指定。

刪除策略

卷快照類有一個刪除策略。它允許您配置當它所繫結的 VolumeSnapshot 物件要被刪除時,VolumeSnapshotContent 會發生什麼。卷快照類的 deletionPolicy 可以是 RetainDelete。此欄位必須指定。

如果 deletionPolicy 是 Delete,那麼底層的儲存快照將與 VolumeSnapshotContent 物件一起被刪除。如果 deletionPolicy 是 Retain,那麼底層的快照和 VolumeSnapshotContent 都將保留。

引數

卷快照類具有描述屬於卷快照類的卷快照的引數。根據 driver 的不同,可能會接受不同的引數。

最後修改於 2025 年 1 月 9 日太平洋標準時間晚上 8:26:更新 VolumeSnapshotClass (c0c456446e)